当我在文本模式下使用flyspell-mode时尝试加载“german8”拼写字典时收到此错误消息:
Error in post-command-hook (flyspell-post-command-hook): (error "Error: The file "/usr/lib/aspell/deutsch\" can not be opened for reading.")
我已经检查过,没有/ usr / lib / aspell / deutsch。 Ubuntu synaptic包管理器为我提供了“aspell-de”,并没有明确它。
这是我的.emacs中的代码,它引发了麻烦:
;;switch dictionaries between German and English with F8 key
(defun fd-switch-dictionary()
(interactive)
(let* ((dic ispell-current-dictionary)
(change (if (string= dic "deutsch8") "english" "deutsch8")))
(ispell-change-dictionary change)
(message "Dictionary switched from %s to %s" dic change)
))
(global-set-key (kbd "<f8>") 'fd-switch-dictionary)
我可以通过简单地启动flyspell-mode然后尝试执行ispell-change-dictionary来重复同样的错误。提供了german8,但消息再次出现:
Error enabling Flyspell mode:
(Error: The file "/usr/lib/aspell/german" can not be opened for reading.)
答案 0 :(得分:6)
我遇到了完全相同的问题,但我找到了一个非常简单的解决方法。我假设
您的Emacs拼写检查设置为aspell,即(setq-default ispell-program-name "aspell")
安装了相应的aspell字典,例如apt-get install aspell-de
。
由于某些原因,字典列表中似乎存在一个错误,即“看到”,即执行ispell-change-dictionary
时可用的字典列表。选择“deutsch”时,它会尝试加载"/usr/lib/aspell/deutsch\"
。但是,似乎aspell字典名称已更改,因为aspell-de
现在包含名为de_DE*
的字典。我想@Daniel Ralston的回答是为了解决这个问题,但这对我不起作用。我还尝试将实际的字典名称传递给ispell-change-dictionary
,但不知怎的,它坚持从自己的列表中获取字典,我从不能说服我的字典确实是正确的。
虽然是一个简单的符号链接修复,但对我有用的是什么。起初我不确定我应该用什么符号链接,因为错误看起来像是试图从名为“deutsch”的目录加载字典。但事实证明它实际上正在寻找一个典型的aspell .alias
文件。所以通过使用这个符号链接
sudo ln -s /usr/lib/aspell/de_DE.alias /usr/lib/aspell/deutsch.alias
我现在可以在ispell-change-dictionary
中选择“deutsch”。
答案 1 :(得分:1)
最近,一些旧的和经常使用的字典别名似乎已从德语aspell包中删除。这使得emacs的德语字典定义过时了。尝试将其添加到.emacs
:
(eval-after-load "ispell"
'(add-to-list 'ispell-dictionary-alist
'("deutsch8"
"[a-zA-ZäöüßÄÖÜ]" "[^a-zA-ZäöüßÄÖÜ]" "[']" t
("-C" "-d" "de_DE-neu.multi")
"~latin1" iso-8859-1)))
答案 2 :(得分:1)
我在Arch Linux
上遇到了同样的问题:安装了aspell-ru
字典,但是当我在emacs中ispell-change-dictionary russian
(russian
是字典的建议名称)时,它与
Error: The file \"/usr/lib/aspell-0.60/russian\" can not be opened for reading.
所以我做了pacman -Ql aspell-ru
,结果是ru
是字典的名称,而不是russian
。所以,ispell-change-dictionary ru
工作正常。
检查字典文件的实际名称。
答案 3 :(得分:0)
相同的问题在基本操作系统相同的解决方案安装包aspell-es和aspell-eu-es:
sudo apt-get install aspell-es aspell-eu-es
一切正常。