3

これまでのところ、これが私の.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 ()
             [)]

pareditがこれを行わないようにするにはどうすればよいですか?

4

2 に答える 2

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また、lispやschemeなどのs-expベースの言語で動作するように設計されていることにも注意してください。C++モードには最適ではない可能性があります。s-expショートカットやナビゲーションではなく、主に一致する括弧を挿入するために括弧を使用している場合は、を使用した方がよい場合がありますelectric-pair-mode

于 2012-01-27T23:24:59.483 に答える
1

また、 http: //autopair.googlecode.com/で入手可能な自動ペアリングを試してみることもできます。これはC / C ++でうまく機能しますが、pareditは最良の選択ではない可能性があります。

于 2012-01-30T12:25:53.887 に答える