Emacs ставит новую строку после закрывающей скобки
Пока это все, что у меня есть в моем.emacs:
(when
(load
(expand-file-name "~/.emacs.d/elpa/package.el"))
(package-initialize))
(require 'paredit)
(add-hook 'c++-mode-hook '(lambda () (paredit-mode 1)))
И так с установкой paredit я начинаю вводить некоторый код в новый файл C++: (где [] представляет курсор)
if (someFunc([)]))
Теперь вместо нажатия клавиши со стрелкой вправо или чего-то подобного, я обычно вхожу в правую часть, так как она расположена рядом с левой и намного удобнее.
Однако, после этого, paredit делает новую строку:
if (someFunc ()
[)]
Как мне помешать Паредиту сделать это?
2 ответа
Обновить до последней версии paredit-mode
, Из заголовка комментария здесь:
;;; The key bindings are designed so that when typing new code in
;;; Paredit Mode, you can generally use exactly the same keystrokes as
;;; you would have used without Paredit Mode. Earlier versions of
;;; paredit.el did not conform to this, because Paredit Mode bound `)'
;;; to a command that would insert a newline. Now `)' is bound to a
;;; command that does not insert a newline, and `M-)' is bound to the
;;; command that inserts a newline.
ELPA может быть устаревшим. Последняя версия - 22, она доступна по http://marmalade-repo.org/.
Также обратите внимание, что paredit-mode
предназначен для работы с языками на основе s-exp, такими как lisp или схема. Это может быть не лучшим выбором для режима C++. Если вы используете paredit в основном для вставки совпадающих скобок, а не для ярлыков s-exp и навигации, вам лучше воспользоваться electric-pair-mode
,
Возможно, вы также захотите попробовать автопару, доступную по адресу http://autopair.googlecode.com/ которая прекрасно работает с C/C++, где paredit может быть не лучшим выбором.