Emacs - 在函数中使用"全选"(如何查找绑定到键的函数)

Mat*_*ger 16 emacs elisp

我试图找出Elisp,我遇到了障碍.

我想要一个缩进整个文件的函数.现在,我正在选择整个文件(C-x h)然后再做M-x indent-region(它有一个快捷键).

我想把它组合成一个按键,但无法弄清楚如何C-x h在一个函数中做.

谢谢

Tre*_*son 22

要查找Emacs在调用某个组合键时将执行的操作,请使用以下内容作为前缀:C-h k.在你的情况下,你输入:

C-h k C-x h
Run Code Online (Sandbox Code Playgroud)

产量

Cx h运行命令mark-whole-buffer,它是`simple.el'中的交互式编译Lisp函数.

它与Cx h绑定.(标记全缓冲液)

将点放在开头并在缓冲区末尾标记.您可能不应该在Lisp程序中使用此函数; Lisp函数通常使用任何使用或设置标记的子例程都是错误的.

注意:您也可以使用C-h K(注意K大写),这将跳转到命令的文档.


jro*_*way 12

值得注意的是,您不希望使用标记并指向非交互式代码; 你想要的(indent-region (point-min) (point-max)),不是(save-excursion (mark-whole-buffer) (call-interactively indent-region)),即使效果相似.

(不要破坏你的乐趣,但整个序列看起来像(global-set-key (kbd "C-M-r") (lambda () (interactive) (indent-region (point-min) (point-max))).)