2012-10-21 11 views
6

Tôi có dòng sau trong tệp init emacs của tôi.Làm cách nào để tự động nhận được paredit trong phiên nacpl emacs?

(setq auto-mode-alist (cons `("\*nrepl\*" . paredit-mode) auto-mode-alist)) 

Tôi kiểm tra xem thao tác này có hoạt động không bằng cách tạo bộ đệm mới có tên * nrepl * Ctrl-x-f *nrepl*. Có, bộ đệm * nrepl * có Paredit đang hoạt động, chế độ paredit được bật.

Tôi đóng bộ đệm * nrepl * mà không lưu.

Tôi bắt đầu phiên nrepl bằng cách nhập M-x nrepl-jack-in. Máy chủ nrepl khởi động và tôi được trình bày với nrepl repl. Nrepl repl cũng được gọi là * nrepl *, tuy nhiên Paredit là không được kích hoạt.

Tôi đang làm gì sai?

Trả lời

6

Bạn đang gây nhầm lẫn bộ đệm và tệp: auto-mode-alist khớp tên tệp với regexps để quyết định nên sử dụng chế độ nào khi chỉnh sửa các tệp đó. Nhưng * nrepl * là một bộ đệm không chứa tệp, vì vậy auto-mode-alist không có hiệu lực cho nó. Thay vào đó, bạn có thể muốn tìm ra chế độ chính * nrepl * nào sử dụng và sau đó sử dụng (add-hook '<the-major-mode>-hook 'paredit-mode).

+0

của "nrepl-connected" dường như thực hiện thủ thuật. Để có tổng cộng: (chế độ paredit-thêm-móc 'nrepl-connected-hook') –

5

Nói một cách đơn giản - bạn cần đoạn mã sau:

(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 

Đó là tương đương với hình thức còn:

(add-hook 'nrepl-mode-hook (lambda() (paredit-mode +1))) 
2
(add-hook 'nrepl-mode-hook 'paredit-mode) 

là họ đề nghị những gì trên nrepl github page

Các vấn đề liên quan