如何在emacs nrepl会话中自动获取paredit?

时间:2012-10-21 21:42:02

标签: emacs clojurescript

我的emacs init文件中有以下行。

(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 启用。

我做错了什么?

3 个答案:

答案 0 :(得分:6)

您会混淆缓冲区和文件:auto-mode-alist将文件名与regexp匹配,以决定在编辑这些文件时使用哪种模式。但是* nrepl *是一个不包含文件的缓冲区,因此auto-mode-alist对它没有任何影响。 相反,您可能想要确定哪个主要模式* nrepl *使用,然后使用(add-hook '<the-major-mode>-hook 'paredit-mode)

答案 1 :(得分: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)))

答案 2 :(得分:2)

(add-hook 'nrepl-mode-hook 'paredit-mode)

是他们在nrepl github page

上的建议