我想hunspell
在 ubuntu 13.04-box 上使用 emacs24 和德语词典。
为此,我安装了以下内容hunspell
并将hunspell-de
其添加到我的.emacs
文件中:
(setq ispell-program-name "hunspell")
(setq ispell-dictionary "deutsch8")
当我在 emacs 中打开一个文件并启动时,flyspell-buffer
我得到了,Starting new Ispell process [[hunspell::deutsch8]]
但它阻塞了 emacs 缓冲区(鼠标变成一个旋转磁盘,指示等待)并且无限工作而不显示任何结果。所以我的配置肯定有问题。
没有第二行它可以工作,但仅适用于英文文本。
hunspell
那么在 ubuntu 13.04 上设置emacs24
德语词典的最佳方法是什么?是否存在任何可能的陷阱?
答案1
从 Emacs 24.4 开始,ispell 包支持 Hunspell 及其开箱即用的词典。因此,将以下两行添加到 init 文件中应该足以将 Hunspell 设置为默认拼写检查程序,将德语设置为默认拼写检查语言。
(setq ispell-program-name "hunspell"
ispell-dictionary "de_DE")
对于 24.4 之前的 Emacs 版本,请继续执行以下操作。
要检查字典是否在路径中列出,请运行hunspell -D
.它应该输出类似这样的内容:
...
/usr/share/hunspell/en_US
/usr/share/hunspell/de_BE
/usr/share/hunspell/de_LU
/usr/share/hunspell/de_DE
...
接下来,将您喜欢的词典添加到您的文件ispell-local-dictionary-alist
中.emacs
(add-to-list 'ispell-local-dictionary-alist '("deutsch-hunspell"
"[[:alpha:]]"
"[^[:alpha:]]"
"[']"
t
("-d" "de_DE"); Dictionary file name
nil
iso-8859-1))
(add-to-list 'ispell-local-dictionary-alist '("english-hunspell"
"[[:alpha:]]"
"[^[:alpha:]]"
"[']"
t
("-d" "en_US")
nil
iso-8859-1))
(setq ispell-program-name "hunspell" ; Use hunspell to correct mistakes
ispell-dictionary "deutsch-hunspell") ; Default dictionary to use
除此之外,您还可以定义一个函数来在德语和英语词典之间切换并将其绑定到C-c d
例如
(defun switch-dictionary-de-en ()
"Switch german and english dictionaries."
(interactive)
(let* ((dict ispell-current-dictionary)
(new (if (string= dict "deutsch-hunspell") "english-hunspell"
"deutsch-hunspell")))
(ispell-change-dictionary new)
(message "Switched dictionary from %s to %s" dict new)))
(global-set-key (kbd "C-c d") 'switch-dictionary-de-en)
答案2
从https://passingcuriosity.com/2017/emacs-hunspell-and-dictionaries/
添加
;; Set $DICPATH to "$HOME/Library/Spelling" for hunspell. (setenv "DICPATH" "/path/to/hunspell/dictionary") ;; Tell ispell-mode to use hunspell. (setq ispell-program-name "hunspell")
进入你的
~/.emacs
.
我的词典文件位于/usr/share/hunspell
.