我正在试图找出Elisp,我遇到了障碍。
我想要一个缩进整个文件的函数。现在,我正在选择整个文件( C-x h ),然后执行 M-x indent-region (它有一个快捷键)。
我想将它合并到一个按键中,但无法弄清楚如何在函数中执行 C-x h 。
由于
答案 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)))
。)