emacs 将多个击键和命令映射到一个键

标签 emacs

我正在尝试映射c-u m-x indent-pp-sexp到单个键,例如 F5,这样使用 Emacs 就不会侵 eclipse 我的指纹。

我使用(global-set-key (kbd "C-u M-x indent-pp-sexp") "<f5>")但我收到以下错误:

global-set-key: Key sequence C-u M-x i n d e n t - p p - s e x p starts with non-prefix key C-u

编辑

使用这个 lambda 函数 (global-set-key (kbd "<f5>") (lambda (interactive) (universal-argument) (indent-pp-sexp t)))

出现错误:

recursive-edit: Wrong type argument: commandp, (lambda (interactive) (universal-argument) (indent-pp-sexp t))

奇怪,因为 univeral-argument不带任何参数,且 indent-pp-sexp采用 bool 值

最佳答案

您的参数方式是错误的,并且您将键绑定(bind)到函数,而不是其他键序列。也许您真的在寻找named macro ;或者你可以编写一些实际的 Lisp 并将其绑定(bind)到 F5:

(global-set-key (kbd "<f5>")
                (function (lambda () (interactive) (indent-pp-sexp t) )) )

调用表单中参数的存在似乎足以选择前缀参数功能。

关于emacs 将多个击键和命令映射到一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16592192/

相关文章:

emacs - 使用交互式 Emacs Lisp 函数替换文本的帮助

emacs - 在 Emacs evil-mode 下搜索文本

emacs - 组织模式:逐字环境

unicode - 使用 US 布局在 Emacs 中快速输入 unicode

c++ - Scons:使用 Object builder 构建头文件

emacs - 组织模式下的POM(点或标记)

emacs - 如何在 emacs 组织模式中结束待办事项列表

emacs - 如何在emacs中突出显示fortran代码的百分比符号 "%"?

c++ - Emacs + C/C++ + Doxygen : Alternative to doxymacs? 使用 yasnippet?

Emacs:Bernt Hansen 的明文生活 - 示例 git repo?