当接受本地文件词典单词时,Emacs ispell 出错。

4

在每个 .tex 文件中,当我键入 A (Shift+A)以接受新单词时,我会在迷你缓冲区或消息缓冲区中收到错误信息 Wrong type argument: sequencep, 1

ispell-add-per-file-word-list: Wrong type argument: sequencep, 1

如果我在文件底部添加下面类似的一行代码:
% LocalWords:  hello

我只能接受有限数量的单词,通常最多达到50个新单词,即到行尾。然后我再次收到相同的错误提示。如果我添加另一行与前面类似的内容,则会出现以下情况:

% LocalWords:  hello <words added by ispell ...>
% LocalWords:  again 

我可以一直走到行末,但之后错误再次出现。

至于我的init文件,我有以下看似无害的几行:

(setenv "DICPATH" (concat exec-directory "../hunspell/dict"))
(setq-default ispell-program-name
  (concat exec-directory "../hunspell/hunspell.exe"))
(setq ispell-extra-args '("-t"))
(setq ispell-local-dictionary-alist
      '(
        (nil       "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-d" "en_US") nil utf-8)
        ("english" "[A-Za-z]" "[^A-Za-z]" "['.]"    nil ("-d" "en_GB") nil utf-8)

        ("italian"
"[A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
 "[^A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
        "[-.]" nil ("-d" "it_IT") nil iso-8859-1)

        ))

总之,当需要开始本地文件字典的新一行时,ispell-add-per-file-word-list就会出现问题。


你可以尝试使用Aspell,看看是否会遇到更少的问题?(setq-default ispell-program-name "c:/Program Files/Aspell/bin/aspell.exe") -- http://aspell.net/win32/ -- 基础应用程序是 Aspell-0-50-3-3-Setup.exe,英语词典是 Aspell-en-0.50-2-3.exe,意大利语词典是 aspell-it-0.50-2-3.exe - lawlist
这是一个链接,指向我用来动态更改Aspell词典的示例函数:http://stackoverflow.com/a/22190123/2112489 - lawlist
1个回答

3

这个提出的解决办法 对我来说解决了问题。为了后世留存,我将其摘录如下。解决方法是将以下内容添加到您的Emacs启动代码中:

(add-hook 'TeX-mode-hook #'(lambda ()
                             (setq-local comment-padding " ")))

问题的根本原因是 Emacs 的一个 bug,该 bug 后来已经被修复。因此,在 Emacs 24.4 或更高版本中,这个问题应该完全解决了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接