如何为特定目录下的所有文件设置ispell词典

Wer*_*ner 5 emacs ispell

ispell-change-dictionary对于特定目录下的每个文件,我如何(自动)(例如通过自动调用)将字典设置为特定语言?

示例:我希望我的标准目录语言是美式英语(例如,通过(setq ispell-dictionary "en_US-wo_accents").emacs文件中进行设置),但是我想对目录下(或目录下)的所有文件使用英式英语/home/werner/dissertation/。也许是荷兰语下的所有文件/home/werner/letters/

我知道有一种解决方案,该解决方案规定-*- ispell-dictionary: "english" -*-在文件的第一行使用该解决方案为该特定文件设置字典(在EmacsWiki.org中进行了介绍)。我想避免将这一行放在我制作的每个新文件的顶部。

Ale*_*Ott 5

您可以使用类似的方法(但是当您想使给定文件复杂一些时,这种方法会更有用):

(defun set-dictionary-hook ()
  (when (and (stringp buffer-file-name)
     (string-match "/dissertation/" buffer-file-name))
    (setq ispell-local-dictionary "ru")))
(add-hook 'find-file-hook 'set-dictionary-hook)
Run Code Online (Sandbox Code Playgroud)

或者您可以.dir-locals.el按照《Emacs手册》中的描述进行指定-我认为这比第一种方法更简单,例如:

((tex-mode . ((ispell-local-dictionary . "english"))))
Run Code Online (Sandbox Code Playgroud)

对于具有特定模式的文件,或

((nil . ((ispell-local-dictionary . "english"))))
Run Code Online (Sandbox Code Playgroud)

对于所有文件