2013-03-11 70 views
7

我收到此错误信息,而在文本模式下使用flyspell模式,当我尝试加载“german8”拼写字典:Emacs和ispell的:错误加载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 /德语。 Ubuntu突触式软件包管理器给我提供了“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模式则试图做的ispell变化词典重复同样的错误。 german8被提供,但再次出现的消息:

Error enabling Flyspell mode: 
(Error: The file "/usr/lib/aspell/german" can not be opened for reading.) 

回答

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))) 
+0

感谢您的帮助,但它不是真的工作。我仍然得到'code'“启动新的ispell过程[在/ usr/bin中/中的aspell ::默认] ... 的ispell过程杀死 当地的ispell字典设置为deutsch8 词典从零切换到deutsch8 开始新的ispell工艺[/ usr/lib/aspell :: deutsch8] ... post-command-hook(flyspell-post-command-hook)错误:(error“Error:The file \”/ usr/lib/aspell/deutsch \“can不能打开阅读。“)”'代码' – user2054900 2013-03-14 19:07:39

+0

.../usr/lib/aspell/deutsch不存在。我需要一个sym链接到某个东西吗? – user2054900 2013-03-14 19:21:11

+0

我的错误。您正尝试使用“deutsch8”字典,但是我的定义改为定义了“german8”。我的答案应该现在解决。 – 2013-03-15 18:03:43

1

我遇到了同样的问题上Arch Linux:安装aspell-ru字典,而是当我做在Emacs ispell-change-dictionary russianrussian是用于字典建议的名称),它与

返回
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工作正常。

检查字典文件的实际名称。

4

我有完全相同的问题,但我找到了一个非常简单的解决方法。我认为

  • 您的Emacs拼写检查由apt-get install aspell-de设置中的aspell,即(setq-default ispell-program-name "aspell")

  • 适当的aspell词典安装,例如。

出于某种原因,人们似乎在ispell的字典列表中的错误“看见”,即当您执行ispell-change-dictionary可用字典列表。选择“deutsch”时,它会尝试加载"/usr/lib/aspell/deutsch\"。然而,它看起来像aspell词典名称已更改,因为aspell-de现在包含称为de_DE*的词典。我猜@丹尼尔·拉尔斯顿的答案是想解决这个问题,但这对我并不适用。我也尝试将实际的字典名称传递给ispell-change-dictionary,但不知怎的,它坚持要从自己的列表中获取字典,我永远无法说服我的字典确实是正确的。

什么是我工作虽然是一个简单的符号链接修复。起初我不确定我应该怎样符号链接,因为这个错误看起来像是试图从名为“deutsch”的目录加载字典。但事实证明,它实际上是在寻找一个典型的aspell .alias文件。因此,通过使用这个符号链接

sudo ln -s /usr/lib/aspell/de_DE.alias /usr/lib/aspell/deutsch.alias 

我现在可以简单地在ispell-change-dictionary选择“德语”。在小学OS相同的解决方案

+0

符号链接是一个简单的修复,立即为我工作。 – 2015-09-03 17:55:30

+0

对我来说,这个工作:我安装了'aspell-de'(通过apt,不在Emacs里),重新启动了Emacs,并选择了一个德语字典。没有符号链接需要。也不是自动创建的。 – 2016-12-08 19:00:43

0

同样的问题安装包aspell-ES和的aspell-EU-ES:

sudo apt-get install aspell-es aspell-eu-es 

所有工作的罚款。