gpt4 book ai didi

Emacs .dir-locals.el - 设置键绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 02:20:29 24 4
gpt4 key购买 nike

我不确定这是否可行,但我想使用 .dir-locals.el 设置一些项目特定的键绑定(bind)

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

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

有什么方法可以注入(inject) lambda 来运行任意代码或通过其他方式在 .dir-locals.el 中设置键绑定(bind)?

最佳答案

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

例如https://stackoverflow.com/a/7340962/324105

参见EmacsWiki了解更多详情。

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

话虽这么说...

一个相当简单的形式是 ((nil . ((eval . (progn BODY))))) ,其中 BODY 是要计算的表达式。当然,如果BODY只是单个表达式,则不需要progn

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

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

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

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

关于Emacs .dir-locals.el - 设置键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19738195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com