2010-01-22 55 views
4

我正在使用最新版本的NTEmacs。 我写了一个名为“.dir-locals.el”的文件,如下所示。emacs目录 - 局部变量问题

((nil . ((tab-width . 8) 
     (fill-column . 70))) 
(c-mode . ((c-file-style . "GNU")))) 

,我在子目录打开一个C文件,我得到一个错误信息:

Directory-local variables error: (wrong-type-argument listp message)

我无法找出什么是错的代码。

回答

5

表达的第二部分是变量的列表,所以你需要更多的括号

((nil . 
    ((tag-width . 8) 
    (fill-column . 70))) 
(c-mode . 
((c-file-style . "GNU")))) 

这为我工作。为了让它工作,我在开头添加了一个引号,并对表达式进行了评估,然后从那里对其进行了跟踪。

然后在工作时删除报价。

+0

我试着用括号代码,但它仍然说相同。 – kjshim 2010-01-22 08:08:55

+0

您可能错过了我的编辑几分钟前,因为第一次尝试是错误粘贴。 – justinhj 2010-01-22 08:25:42

+4

HaHa。告诉别人写lisp最好的事情是:“......你需要更多的括号。” – kjfletch 2010-01-22 08:41:18

1

我有一个非常类似的问题:emacs在具有类似内容的.dir-locals.el文件中抱怨同样的错误。在我的情况下,我发现问题出现在文件中的不可见空白字符中。 (我注意到Skype聊天有时会在文本中引入奇怪的空格字符)。一旦我删除了所有额外的空格,它就起作用了。