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

如何在emacs nrepl会话中自动获取paredit?,emacs,clojurescript,Emacs,Clojurescript,我的emacs init文件中有以下行 (setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist)) 我通过创建一个名为*nrepl*Ctrl-x-f*nrepl*的新缓冲区来检查这是否有效。是,*nrepl*缓冲区已激活Paredit,已启用Paredit模式 我关闭*nrepl*缓冲区而不保存它 我通过在中键入M-x nrepl jack启动nrepl会话。nrepl服务器启动,我看到了nrepl r

我的emacs init文件中有以下行

(setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist))
我通过创建一个名为*nrepl*
Ctrl-x-f*nrepl*
的新缓冲区来检查这是否有效。是,*nrepl*缓冲区已激活Paredit,已启用Paredit模式

我关闭*nrepl*缓冲区而不保存它

我通过在中键入
M-x nrepl jack启动nrepl会话。nrepl服务器启动,我看到了nrepl repl。nrepl repl也称为*nrepl*,但是Paredit未启用


我做错了什么?

您混淆了缓冲区和文件:
自动模式列表
将文件名与regexp匹配,以决定编辑这些文件时使用哪种模式。但是*nrepl*是一个不包含文件的缓冲区,因此
auto-mode-alist
对它没有影响。
相反,您可能想找出*nrepl*使用的主要模式,然后使用
(添加hook'-hook'paredit模式)

简单地说,您需要以下代码:

(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
他们在

中提出的“nrepl连接”似乎起到了作用。总计为:(添加钩子'nrepl connected钩子'paredit模式)
(add-hook 'nrepl-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'nrepl-mode-hook 'paredit-mode)