簡體   English   中英

如何在emacs nrepl會話中自動獲取paredit?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM