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

时间:2012-01-25 15:44:38

标签: emacs ispell

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

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

我知道解决方案规定在文件的第一行使用-*- ispell-dictionary: "english" -*-来设置该特定文件的字典(在EmacsWiki.org中描述)。我想防止必须将这一行放在我制作的每个新文件的顶部。

1 个答案:

答案 0 :(得分:4)

你可以使用类似的东西(但是当你想为给定文件制作复杂的东西时,这种方法更有用):

(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)

或者您可以按照Emacs Manual中的说明在.dir-locals.el中指定它 - 我认为,这比第一种方法更简单,例如:

((tex-mode . ((ispell-local-dictionary . "english"))))

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

((nil . ((ispell-local-dictionary . "english"))))

所有文件