在spacemacs中使用flyspell的时候打开文档总是遇到
Error enabling Flyspell mode:
(Error: No word lists can be found for the language "zh_CN".)
后来谷歌了一下用了解决方法是:
;; use aspell as ispell backend
(setq-default ispell-program-name "aspell")
;; use American English as ispell default dictionary
(ispell-change-dictionary "american" t)
但是第一次打开文本的时候还是会遇到上述问题,不知道大家有没有什么建议呢?谢谢
2 个赞
Aspell 根据你的 Locale 选择语言和对应的词典,想要在中文环境(zh_CN
)下检测英文,你需要明确地告诉 Aspell,通过命令行选项或者配置文件,Aspell 的文档里有解释,要是用命令行选项的话,可以把它丢到 ispell 的 ispell-extra-args
中去,估计像这样:
(setq ispell-extra-args '("--lang=en_US"))
不了解词典,我没作修改、用默认的也没遇到问题。
试试放在 user-config 中
如果还是不行的话在声明layer的地方用 :variables 声明。(相当于 在加载layer 之前 setq)
顺带ispell-change-dictionary用C-h f 查看源码的话会发现它只是设了一个变量。所以可以用:variables 赋值。
因为用手机所以不是很方便具体说明,先提供思路。
(spell-checking :variables
ispell-program-name "aspell"
ispell-dictionary "american"
spell-checking-enable-by-default nil)
2 个赞
我在自己的package里面加了flyspell correct
然后下面是代码(你可以试试,我是抄的别人的):
(defun lxeg0429/post-init-flyspell-correct ()
(use-package flyspell-correct
:config
(progn
(setq ispell-program-name “aspell”)
(setq exec-path '("~/Aspell/bin/"))
(setq ispell-personal-dictionary “~/Aspell/en.pws”)
(setq ispell-process-directory “~/Aspell/”)
(setq ispell-alternate-dictionary “~/Aspell/english-words.txt”)
(with-eval-after-load 'flyspell
(define-key flyspell-mode-map (kbd “C-;”) 'flyspell-correct-previous-word-generic))
(setq flyspell-correct-interface 'flyspell-correct-ivy))))
对,我在layer中加了(spell-checking :variables spell-checking-enable-by-default nil),然后再手动开启就不会报那个错误了,并且打开文件的速度加快了一些,谢谢哈!
只需要再把默认spell-checking先关闭就可以了
Loading c:/Users/chang/.spacemacs…done
Wrote c:/Users/chang/.emacs.d/recentf
Error enabling Flyspell mode:
(Hunspell error (is $LANG unset?): Can’t open affix or dictionary files for dictionary named “default”.)
Spacemacs is ready.
Starting new Ispell process hunspell with default dictionary…done
Error enabling Flyspell mode:
(Can’t open affix or dictionary files for dictionary named “default”.)
大家好!这个怎么解决呢?要另外安装一个字典吗?