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

2024-03-02

我不确定这是否可行,但我想通过使用设置一些项目特定的键绑定.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(使用前将#替换为@)

Emacs .dir-locals.el - 设置键绑定 的相关文章

  • 如何在 emacs 中禁用 vc-git?

    我使用 emacs 而不是 sshfs 和 git 存储库 我喜欢使用 git 命令行 因此对于这个项目我不需要启用 vc git 如何防止 vc git 加载 emacs命令 从 vc mode 处理的后端列表中删除 git delete
  • 在 post-command-hook 中,这个用于kill-word的命令已经以某种方式变成了kill-region

    In my post command hook回调 当我这样做时kill word the this command var is kill region 并不是kill word正如预期的那样 我想那是因为kill word uses k
  • Windows 7 上的 emacs 24,tramp 找不到 plink 程序

    我正在尝试在 Windows 7 上使用 Emacs 24 2 和 Tramp 来远程编辑 Linux 服务器上的文件 我安装了Putty套装程序和OpenSSH 我还将putty套装中的plink exe放入emacs 24文件夹下的bi
  • 符号的函数定义为 void:declare-function

    emacs 新手 OSX 上的 GNU Emacs 22 1 1 按照说明安装了邪恶 我得到 Symbol s function definition is void declare function emacs debug init gi
  • 如果文件有自动保存数据,emacs-daemon 启动会冻结

    我设置了桌面 el这样 emacs 在启动时会自动重新打开上次我杀死 emacs 时保持打开状态的所有文件 现在 当我将 emacs 作为守护进程启动并且重新打开的文件之一具有自动保存数据时 守护进程会显示通常的自动保存数据消息 file
  • 如何配置 Firefox 在某些链接上运行 emacsclientw?

    我有一个 Perl 脚本 它会在一堆日志文件中查找 有趣 的行 以获取一些有趣的定义 它生成一个 HTML 文件 其中包含一个表 该表的列是时间戳 文件名 行号引用和 有趣 位 我想做的是让文件名 行号成为一个实际的链接 它将在 emacs
  • Emacs 退出终端

    在 Emacs 中运行终端模式时使用M x term using C x C o我无法切换到另一个缓冲区来继续处理事情 我知道这是可能的M x shell但使用此命令时 shell 的某些方面不起作用 less more 手册页等 我想知道
  • Emacs:调试Python的方法

    我把这个贴在程序员 stackexchange com https softwareengineering stackexchange com questions 29844 emacs methods for debugging pyth
  • Emacs:当光标位于右括号时匹配括号

    之前有人问过 Emacs 当光标位于其上时突出显示匹配的括号 而不是其后 https stackoverflow com questions 16399530 emacs highlight matching paren when curs
  • Emacs/Swank/Paredit for Clojure 的温和教程

    我要转向 Emacs 来工作Clojure http en wikipedia org wiki Clojure Lisp 为了能够执行以下操作 我需要在 Emacs 上设置哪些信息 自动匹配 生成相应的右括号 自动缩进 Lisp Cloj
  • Emacs-Lisp:如何将emacs-lisp程序打包为PC应用程序?

    只是想知道是否可以将 emacs 和 Lisp 程序打包和部署为 PC 应用程序 这样一旦下载并运行 setup exe 某种程度 用户就可以启动应用程序以使 emacs 运行特定的 Lisp 程序 就像应用程序已实现一样通过其他语言和平台
  • emacs 临时文件的 .gitignore 正则表达式

    我正在尝试 gitignore emacs 临时 自动保存文件 我在用着 在我的 gitignore 中 But git add A在子文件夹中运行仍然给我 new file make collections py new file nor
  • 如何使用 Emacs 通过 HTTP 打开远程文件?

    大多数开源软件都通过某些 HTTP 服务公开其代码 我想从 Emacs 打开并浏览此类代码 但 AFAICS trapmp 只允许ssh and ftp 因此 我的第一个问题是如何打开 HTTP URL 以便在 Emacs 中进行读取 然后
  • 将剪贴板上的图像粘贴到 Emacs Org 模式文件而不保存它

    由于我使用 Emacs Org 模式作为研究日志 有时我想通过屏幕截图来跟踪某些内容 但我绝对不想保存它们 所以我想知道是否有任何方法可以将这些数字插入到我的组织模式文件中 就像使用 word 从剪贴板复制它们一样 您想要的确切功能目前尚未
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有
  • 如何让 clangd 转向 c++20

    当没有其他信息时 如何让 clangd 回退到 c 20 例如 在第一次构建之前 cmake 可以生成一个 这是在带有最新 LLVM 的 Arch Linux 上 这是通过 Emacs LSP 运行的 但这应该没有什么区别 你可以加 Com
  • Emacs 行编号性能

    我试过了linum and nlinum 两者对于超过 100k 行的文件的性能都很糟糕 for x in 1 100000 do echo x done gt 100k txt emacs q 100k txt M x load libr
  • 从一个文件重新归档到另一文件

    我正在尝试基于 emacs 实现 GTDhttp members optusnet com au charles57 GTD gtd workflow html http members optusnet com au charles57
  • 在 Emacs 中,如何根据缓冲区名称自动启用次要模式?

    我有一个 Emacs 扩展 它创建一个名为 erl output 该缓冲区仅由以下内容创建fundamental mode默认情况下 有什么办法可以自动启用compilation minor mode在那个缓冲区上 要自动更改主要模式 您可
  • elisp:从内部函数捕获变量

    我可爱的功能 defun f x lambda y x y 然后 我期望这样 funcall f 2 2 返回 4 但是可惜 我得到了这个 Debugger entered Lisp error void variable x 那么如何从内

随机推荐