Rất có thể, bạn không thực sự muốn kích hoạt flyspell-mode
cho tất cả các chế độ, nhưng thay vào đó kích hoạt chế độ lập trình (C/C++, Java) Ruby, Lisp, v.v.) Sự khác biệt giữa hai chế độ là lần đầu tiên kiểm tra tất cả các từ, trong khi flyspell-prog-mode
chỉ kiểm tra các từ trong nhận xét và chuỗi (do đó tránh kiểm tra mã, thường không phải là từ).
Dù bằng cách nào, không có nơi duy nhất để kích hoạt flyspell trong tất cả các tệp/bộ đệm vì nó đã được viết để luôn luôn là bộ đệm cục bộ. Một xấp xỉ gần sẽ
(defun turn-on-flyspell() (flyspell-mode 1))
(add-hook 'find-file-hooks 'turn-on-flyspell)
Đó không bao gồm bộ đệm mà không có file có liên quan, và tôi không khuyên sử dụng nó bởi vì nó không phân biệt giữa các phương thức lập trình và phương thức phi lập trình - mà tôi nghĩ là hữu ích.
Bởi vì không có cách nào để biết liệu phương thức nhất định được lập trình chế độ hay không, bạn cần phải tự thêm các tùy chỉnh cho tất cả các phương thức lập trình mà bạn quan tâm, với một cái gì đó như:
(mapcar (lambda (mode-hook) (add-hook mode-hook 'flyspell-prog-mode))
'(c-mode-common-hook tcl-mode-hook emacs-lisp-mode-hook
ruby-mode-hook java-mode-hook))
Lưu ý: hai các đoạn mã có thể không chơi tốt với nhau.
Và, về XML, flyspell đã có các tùy chỉnh cho sgml-mode
, html-mode
và nxml-mode
để không đánh vần kiểm tra các thẻ (như của Emacs 23.2). Nếu bạn đang sử dụng phiên bản cũ hơn của Emacs (quay lại 21.1), bạn sẽ có thể thêm nó vào.emacs để có được sự hỗ trợ cho nxml-mode
:
(put 'nxml-mode 'flyspell-mode-predicate 'sgml-mode-flyspell-verify)
Nguồn
2011-07-28 15:02:46
Tôi đang sử dụng chế độ nXml. Vì vậy, nếu tôi muốn, ví dụ, flyspell được tự động bật cho tất cả các tập tin markdown, tôi có thể sử dụng một cái gì đó như thế này? (add-hook 'markdown-mode-hook' chế độ flyspell) – mart1n
@ mart1n Tôi đã thêm nhiều thông tin hơn về xử lý XML, bạn có thể cần dòng cập nhật cuối cùng nếu bạn đang sử dụng phiên bản cũ hơn của Emacs (21 hoặc 22). –
Trong phiên bản flyspell đi kèm với Emacs 24, dòng sau được bao gồm để vô hiệu hóa việc kiểm tra thẻ xml ở chế độ nxml: (đặt 'nxml-mode' flyspell-mode-predicate 'sgml-mode-flyspell-verify) – zev