如何在 emacs 中定义新命令

sli*_*cki 3 emacs

我一直忘记全选的 emacs 术语,所以我想添加一个新的 emacs 命令,以便我可以键入 Mx select-all RET 并让它运行 mark-whole-buffer。

我尝试将其添加到我的 .emacs 文件中:

(defun select-all() (mark-whole-buffer))

或这个:

(defun select-all() (interactive) (mark-whole-buffer))

但是这些似乎没有将名称放在正确的“命名空间”中以通过 Mx 访问,我如何将它们放入正确的命名空间?

谢谢,-肖恩

Gil*_*il' 11

(interactive)告诉 Emacs 该函数是一个命令,即该函数可以绑定到一个键并使用M-x. 所以(defun select-all () (interactive) (mark-whole-buffer))应该工作(但(defun select-all () (mark-whole-buffer))不会)。您是否重新启动了 Emacs 或使用C-M-x( eval-defun)评估了定义?是什么C-h f select-all RET节目?(帮助缓冲区应以“全选是交互式”开头。)

在这里,一个更简单的选择是

(defalias 'select-all 'mark-whole-buffer)
Run Code Online (Sandbox Code Playgroud)


Tre*_*son 6

嗯,这已经内置了:

M-x mark-whole-buffer
Run Code Online (Sandbox Code Playgroud)

势必

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

但是,为了通过编写一些东西来获得你想要的东西,你的第二个实现对我来说很好,我可以通过输入M-x.