我想对一个大项目/存储库中的几个文件进行拼写检查,并使用与我自己不同的私人字典。这样我就可以改用项目字典,然后可以将其上传以供其他用户使用。
问问题
2818 次
3 回答
5
克里斯的回答是正确的。这只是我用来在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."))) ))
于 2014-12-18T17:02:52.057 回答
4
在 Emacs 中,该变量ispell-personal-dictionary
可用于选择您的个人字典文件:
您的个人拼写词典的文件名,或无。如果为 nil,则使用默认的个人词典(“~/.ispell_DICTNAME”表示 ispell 或“~/.aspell.LANG.pws”表示 aspell),其中 DICTNAME 是您的默认词典的名称,LANG 是两个字母的语言代码.
在现代系统上,Emacs 的ispell-
函数通常使用GNUaspell
,一个
一个免费和开源的拼写检查器,旨在最终取代 Ispell
从您的问题中不清楚是否每个人都会通过 Emacs 进行拼写检查。幸运的是,aspell
它支持一个类似工作的命令行选项:
--personal=<file>, -p <file>
Personal word list file name.
于 2014-12-18T16:39:26.937 回答
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)
于 2017-08-26T02:56:47.960 回答