到目前为止,这是我在.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([)]))
现在我不是按右箭头键或类似的东西,而是进入正确的paren,因为它位于左侧的旁边,更方便。
但是,在这样做时,paredit会换行:
if (someFunc ()
[)]
如何防止paredit这样做?
答案 0 :(得分:2)
升级到最新版本的paredit-mode
。来自评论标题here:
;;; 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或scheme。它可能不是C ++模式的最佳选择。如果您主要使用paredit插入匹配的括号而不是s-exp快捷键和导航,那么使用electric-pair-mode
可能会更好。
答案 1 :(得分:1)
您可能还想尝试在http://autopair.googlecode.com/上使用的autopair,它可以很好地与C / C ++一起使用,其中paredit可能不是最佳选择。