.dir-locals.el根据子目录设置编码系统

时间:2013-10-22 14:09:48

标签: emacs elisp

这是我的目录布局。

 projects/   
   portal/   
   project1/   
   project2/

我希望“portal”子目录将buffer-file-coding-system设置为utf-8-unix。而对于其他子目录,我希望buffer-file-coding-system设置为utf-8-dos。 .dir-locals.el文件看起来像这样,并放在项目目录的根目录中。

((nil
  (buffer-file-coding-system . utf-8-dos))
 ("portal"
  (buffer-file-coding-system . utf-8-unix)))

当我从任何文件夹打开任何文件时,文件编码系统设置为utf-8-dos,即使它是来自“portal”子目录的文件。我做错了什么?

1 个答案:

答案 0 :(得分:3)

"portal"下的条目不应包含变量绑定列表,而应包含模式和变量绑定列表的列表 - 就像.dir-locals.el的顶层一样。这似乎有效:

((nil
  (buffer-file-coding-system . utf-8-dos))
 ("portal"
  . ((nil (buffer-file-coding-system . utf-8-unix)))))