Emacs .dir-locals.el - 设置键绑定

时间:2013-11-02 02:02:40

标签: emacs elisp emacs24

我不确定这是否可行,但我想使用.dir-locals.el

设置一些项目特定的键绑定

当然.dir-locals.el必须包含一个特殊的设置列表,所以我不能这样做:

(global-set-key [24 down] 'move-text-down)

有没有办法可以注入lambda来运行任意代码或其他一些方法来设置.dir-locals.el中的键绑定?

1 个答案:

答案 0 :(得分:9)

使用eval伪变量,您可以使用局部变量指定任意elisp进行评估。

e.g。 https://stackoverflow.com/a/7340962/324105

有关详细信息,请参阅EmacsWiki

请注意,这不是一种特别有用的设置键绑定的机制,因为使用相关键映射的每个缓冲区都会受到影响。您可能最好使用dir-local配置来启用具有该项目的特定键映射的次要模式。或者,您可以调整this approach to file-local bindings(但是次要模式会更好)。

有人说......

一个相当小的形式是((nil . ((eval . (progn BODY)))))BODY是要评估的表达式。当然,如果BODY只是一个表达式,则不需要progn

因此,当您访问任何文件(在相关目录下)时,以下内容会显示一条消息:

((nil . ((eval . (message "hello")))))

dir-locals表单中每个列表的汽车通常是主要模式符号,或nil(如上例所示),在这种情况下,设置适用于任何专业模式。

汽车还可以指定一个子目录字符串,在这种情况下,cdr是另一个dir-locals表单,其中的设置适用于该子目录。

相关问题