2012-10-21 8 views
6

emacsのinitファイルに次の行があります。emacs nreplセッションでpareditを自動的に取得するにはどうすればよいですか?

(setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist)) 

私は、これは* nrepl * Ctrl-x-f *nrepl*と呼ばれる新しいバッファを作成することによって動作することを確認してください。はい、* nrepl *バッファはPareditを有効にしていますが、paredit-modeは有効になっています。

* nrepl *バッファを保存せずに閉じます。

M-x nrepl-jack-inと入力してnreplセッションを開始します。 nreplサーバーが起動し、nrepl replが表示されます。 nrepl replは* nrepl *とも呼ばれますが、Pareditはではなくが有効です。

私は間違っていますか?

答えて

6

バッファとファイルが混乱しています:auto-mode-alistは、ファイル名をregexpsと照合して、これらのファイルを編集するときにどのモードを使用するかを決定します。しかし、* nrepl *はファイルを含んでいないバッファなので、auto-mode-alistは効果がありません。 代わりに、どのメジャーモード* nrepl *が使用されているか把握し、(add-hook '<the-major-mode>-hook 'paredit-mode)を使用したいと思うでしょう。簡単に言えば

+0

に示唆するものです"nrepl-connected"のはやっているようです。総計: (add-hook 'nrepl-connected-hook' paredit-mode)の場合、 –

5

- あなたは以下のコードが必要です

(add-hook 'nrepl-mode-hook 'paredit-mode) ; for nrepl.el <= 0.1.8 
(add-hook 'nrepl-repl-mode-hook 'paredit-mode) ; for nrepl.el > 0.1.8 

長い形と同等です:

(add-hook 'nrepl-mode-hook (lambda() (paredit-mode +1))) 
関連する問題