在emacs中定义键绑定

eff*_*iss 4 emacs keyboard-shortcuts

我想将emacs中的命令映射到键绑定.我希望该命令Control-lAlt-x goto-line返回的命令具有相同的效果(因为该命令首先需要返回被调用,然后是行号).

我修改了init文件,如下所示:

(define-key (M-x goto-line) '\C-l)

但那没用.错误是define-key给出了超过1个参数.

有谁知道如何重置emacs中的键绑定?

谢谢!

car*_*rji 11

M-g g是默认的快捷方式goto-line.你可能想尝试一下.

要重新定义C-l使用:

(global-set-key (kbd "C-l") 'goto-line)
Run Code Online (Sandbox Code Playgroud)

  • @HemalPandya goto-line的默认值是`Mg g`或`Mg Mg`,因为Mg是前缀命令.你可能会在.emacs的某个地方反弹. (2认同)

Mir*_*lov 5

自定义大量键绑定的最简单方法是安装 John Wiegley 的 bind-key 模块,它是use-package Lisp 包的一部分。您的解决方案init.el

(require 'bind-key)
(bind-key "C-l" 'goto-line)
Run Code Online (Sandbox Code Playgroud)

次要模式键通常会覆盖全局键,因此如果您不想要这种行为,请改用函数bind-key*。该包在 MELPA 上,如果您不知道它是什么,请快速了解Emacs 包管理(应该需要 2 分钟将 MELPA 设置为您的存储库)。

Emacs 中键绑定的主要问题是次要模式键通常会覆盖您的自定义键。在 vanilla Emacs 中,人们通过为自己的键绑定创建次要模式来解决。如果您真的想了解 Emacs 键的工作原理,请仔细阅读Key Bindings @ Emacs 手册Keymaps @ Elisp 手册