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

时间:2009-10-22 01:39:26

标签: emacs elisp

我正在试图找出Elisp,我遇到了障碍。

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

我想将它合并到一个按键中,但无法弄清楚如何在函数中执行 C-x h

由于

2 个答案:

答案 0 :(得分:22)

要查找Emacs在调用某个组合键时将执行的操作,请在其前面加上: C-h k 。在您的情况下,您输入:

C-h k C-x h

产生

  

C-x h运行命令   mark-whole-buffer,这是一个   交互式编译的Lisp函数   `simple.el”。

     

它与C-x h绑定,    。   (标记全缓冲液)

     

点开头,结束标记   缓冲区。你可能不应该使用   这个函数在Lisp程序中;它是   通常是Lisp函数的错误   使用任何使用或的子程序   设定标记。

注意:你也可以使用 Ch K (注意 K 是大写的),它会跳转到命令的文档

答案 1 :(得分: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)))。)