我不确定这是否可行,但我想通过使用设置一些项目特定的键绑定.dir-locals.el
当然.dir-locals.el
必须包含一个特殊的设置列表,所以我不能这样做:
(global-set-key [24 down] 'move-text-down)
有什么方法可以注入 lambda 来运行任意代码或其他方式来设置键绑定.dir-locals.el
?
The eval
伪变量使您能够指定任意 elisp 以使用局部变量进行评估。
e.g. https://stackoverflow.com/a/7340962/324105 https://stackoverflow.com/a/7340962/324105
See Emacs维基 http://www.emacswiki.org/emacs/DirectoryVariables更多细节。
请注意,这对于设置键绑定来说并不是特别有用的机制,因为使用相关键映射的每个缓冲区都会受到影响。您可能最好使用 dir-local 配置来启用具有该项目的特定键盘映射的次要模式。或者,您可以适应这种文件本地绑定的方法 https://stackoverflow.com/a/21493693/324105(但小模式会更好)。
话虽如此...
一个相当最小的形式是((nil . ((eval . (progn BODY)))))
with BODY
是要评估的表达式。当然,如果BODY
只是一个单一的表达,你不需要progn
.
因此,当您访问任何文件(在相关目录下)时,以下内容会显示一条消息:
((nil . ((eval . (message "hello")))))
dir-locals 形式中每个列表的 car 通常是一个主要模式符号,或者nil
(如上例)在这种情况下,设置适用于any主要模式。
汽车还可以指定子目录字符串,在这种情况下,cdr 是另一种 dir-locals 形式,其设置适用于该子目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)