[英]How do I automatically get paredit in a emacs nrepl session?
我的emacs init文件中有以下行。
(setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist))
我通過創建一個名為* nrepl * Ctrl-xf *nrepl*
的新緩沖區來檢查這是否有效。 是的,* nrepl *緩沖區已啟用Paredit,啟用了paredit-mode。
我關閉* nrepl *緩沖區而不保存它。
我輸入Mx nrepl-jack-in
啟動nrepl會話。 nrepl服務器啟動,我看到nrepl repl。 nrepl repl也稱為* nrepl *,但Paredit 未啟用。
我究竟做錯了什么?
您將緩沖區和文件混淆: auto-mode-alist
將文件名與auto-mode-alist
匹配,以決定在編輯這些文件時使用哪種模式。 但是* 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
這相當於較長的形式:
(add-hook 'nrepl-mode-hook (lambda () (paredit-mode +1)))
(add-hook 'nrepl-mode-hook 'paredit-mode)
是他們在nrepl github頁面上的建議
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.