2012-01-27 6 views
2

を閉じた後に改行を入れて:セットアップpareditと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))) 

だから、私は新しいC++ファイルにいくつかのコードを入力して起動します(ここで、 []の代わりに右矢印キーまたは類似した何かを押すとそれがすぐ隣の左の括弧に位置し、多くの方が便利ですので、

if (someFunc([)])) 

さて、私は通常、右括弧で入力)カーソルを表します。

しかし、それを行うときに、pareditは改行を行います

if (someFunc() 
      [)] 

私はこれをやってからpareditを防ぐにはどうすればよいですか?

答えて

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は、lispやschemeのようなs-expベースの言語で動作するように設計されています。これはC++モードのための最良の選択ではないかもしれません。主にpareditを使用して、s-expのショートカットやナビゲーションではなく、マッチするかっこを挿入する場合は、electric-pair-modeを使うほうが良いでしょう。

+0

Ahaありがとう!私は電気のペアを試しましたが、空のブレースを自動的に削除しません。今私は最新のpareditを持っています。閉じた括弧の上にカーソルを置いて、もう一度それを動かすことはありません。古い機能に戻すにはどうすればよいですか? – wrongusername

1

http://autopair.googlecode.com/でautopairを利用することもできます。これは、pareditが最適ではないC/C++でうまく動作します。

関連する問題