Ste*_*gle 6 emacs clojurescript
我的emacs init文件中有以下行.
(setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)
我通过创建一个名为*nrepl*的新缓冲区来检查这是否有效Ctrl-x-f *nrepl*
.是的,*nrepl*缓冲区已启用Paredit,启用了paredit-mode.
我关闭*nrepl*缓冲区而不保存它.
我打字开始一个nrepl会话M-x nrepl-jack-in
.nrepl服务器启动,我看到nrepl repl.nrepl repl也称为*nrepl*,但Paredit 未启用.
我究竟做错了什么?
您会混淆缓冲区和文件:auto-mode-alist
将文件名与regexp匹配,以决定在编辑这些文件时使用哪种模式.但是*nrepl*是一个不包含文件的缓冲区,因此auto-mode-alist
对它没有任何影响.相反,您可能想要确定哪个主模式*nrepl*使用然后使用(add-hook '<the-major-mode>-hook 'paredit-mode)
.
简单地说 - 你需要以下代码:
(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
Run Code Online (Sandbox Code Playgroud)
这相当于较长的形式:
(add-hook 'nrepl-mode-hook (lambda () (paredit-mode +1)))
Run Code Online (Sandbox Code Playgroud)