我想对大项目/存储库中的几个文件进行拼写检查,并使用与我自己不同的私有字典。这样我就可以使用项目字典,以后可以将其上传给其他用户使用。
答案 0 :(得分:4)
克里斯的回答是正确的。以下是我用于在aspell
个人词典和aspell
语言之间切换的示例。我同时使用flyspell
和ispell
。个人词典的路径需要根据用户规范进行调整。
(defface ispell-alpha-num-choice-face
'((t (:background "black" :foreground "red")))
"Face for `ispell-alpha-num-choice-face`."
:group 'ispell)
(defface ispell-text-choice-face
'((t (:background "black" :foreground "forestgreen")))
"Face for `ispell-text-choice-face`."
:group 'ispell)
(defun my-ispell-change-dictionaries ()
"Switch between language dictionaries."
(interactive)
(let ((choice (read-char-exclusive (concat
"["
(propertize "E" 'face 'ispell-alpha-num-choice-face)
"]"
(propertize "nglish" 'face 'ispell-text-choice-face)
" | ["
(propertize "S" 'face 'ispell-alpha-num-choice-face)
"]"
(propertize "panish" 'face 'ispell-text-choice-face)))))
(cond
((eq choice ?E)
(setq flyspell-default-dictionary "english")
(setq ispell-dictionary "english")
(setq ispell-personal-dictionary "/Users/HOME/.0.data/.0.emacs/.aspell.en.pws")
(ispell-kill-ispell)
(message "English"))
((eq choice ?S)
(setq flyspell-default-dictionary "spanish")
(setq ispell-dictionary "spanish")
(setq ispell-personal-dictionary "/Users/HOME/.0.data/.0.emacs/.aspell.es.pws")
(ispell-kill-ispell)
(message "Español"))
(t (message "No changes have been made."))) ))
答案 1 :(得分:3)
从Emacs,变量ispell-personal-dictionary
可用于选择您的个人词典文件:
您的个人拼写字典的文件名,或者为零。如果没有,那么 默认的个人字典,("〜/。ispell_DICTNAME"用于ispell或 "〜/ .aspell.LANG.pws"使用aspell),其中DICTNAME是名称 您的默认字典和LANG是两个字母的语言代码。
在现代系统上,Emacs' ispell-
个函数通常使用GNU aspell
,
一个免费和开源的拼写检查器,旨在最终取代Ispell
从您的问题中不清楚是否所有人都将通过Emacs进行拼写检查。幸运的是,aspell
支持一个类似的命令行选项:
--personal=<file>, -p <file>
Personal word list file name.
答案 2 :(得分:1)
我的init.el文件中有这个,这对我很有用 (见http://www.emacswiki.org/emacs/FlySpell)
(setq ispell-program-name "aspell")
(setq ispell-list-command "list")
(let ((langs '("spanish" "british" "french")))
(setq lang-ring (make-ring (length langs)))
(dolist (elem langs) (ring-insert lang-ring elem)))
(defun cycle-ispell-languages ()
(interactive)
(let ((lang (ring-ref lang-ring -1)))
(ring-insert lang-ring lang)
(ispell-change-dictionary lang)))
我已经设置了一个键组合,可以从一个字典循环到另一个字典
(global-set-key [M-f6] 'cycle-ispell-languages)