内部命令
内部命令
C-h k
后,回显区提示
Describe key (or click or menu item):
接着 C-x h
,您会发现,缓冲区被水平分割为两个。另一个名为 *help* 缓冲区中显示的内容为
C-x h runs the command mark-whole-buffer which is an interactive compiled Lisp function in `simple.el'. It is bound to C-x h, <menu-bar> <edit> <mark-whole-buffer>. (mark-whole-buffer) Put point at beginning and mark at end of buffer. You probably should not use this function in Lisp programs; it is usually a mistake for a Lisp function to use any subroutine that uses or sets the mark. [back]
第一行说明了 C-x h
运行的命令为 mark-whole-buffer
第二行说明了该命令由 simple.el
这个扩展提供,绑定到 C-x h
、 菜单栏-编辑-标记全部缓冲区 、 和命令 mark-whole-buffer
第三行介绍了这个命令的行为: 在文档末尾设置一个标记,并把光标点[“文件管理”一节
45]之间的部分将被选中。
标记的位置为 M-x set-mark-command 时,光标点[45]所处的位置。
M-x set-mark-command 是设置标记的内部命令,默认绑定在 C-SPC
键上。
如果使用输入法,这个键位多半是切换输入法的快捷键。键盘指令会先被输入法拦截下来,而无法发送到 Emacs。
当然也可以使用 M-@
来设定标记。不过 M-@
原绑定为 M-x mark-word ,虽然差不太多,但有时并不好用;况且对于一个常用的命令来讲, M-@
键位的难度太高了
Emacs 的键位中,几乎没有默认绑定在 WIN 键上的命令,不妨利用一下
在 Emacs 的用户配置文件 ~/.emacs
中添加如下内容:
;; WIN+Space 设置标记 (global-set-key (kbd "s-SPC") 'set-mark-command)
在某些类型的终端中,WIN键 不起作用,建议使用命令。或者绑定到 C-t
[46]
;; (在注释里说明原命令和绑定,是一个良好的习惯) ;; C-t 设置标记 (global-set-key (kbd "C-t") 'set-mark-command)
重要 | |
---|---|
重启 Emacs,或者在 ~/.emacs 文件的缓冲区中执行命令 M-x eval-buffer ,便可以使配置文件立即生效 |
中止执行
如果想放弃一个命令,可以使用 C-g
(M-x keyboard-quit)打断。
建议您使用快捷键 C-g ,因为在需要中止执行的情况下, M-x 通常是无法使用的
ESC ESC ESC
(M-x keyboard-escape-quit)可以从一些交互命令中退出。
例如从 "询问替换 M-x query-replace" 中退出。
当 C-g 不能搞定,您可以尝试连按三次 ESC
[45] 光标点假定光标为插入式(竖线),位置在覆盖式光标(方块)的左侧。
事实上,Emacs 中的相关判定以光标点为准!方块形光标只是为了减少视觉疲劳
[46] 这是一个让人头痛不已的地方。因为无论绑到哪,似乎都不太方便:
使用 WIN键 倒是挺好,但是在字符界面下,WIN键 通常不起作用;同样,C-; 这样使用标点的组合键在字符界面下也不行;
C-m、C-i 是两个不错的组合,但是 Emacs 认为 C-m 和 RET、C-i 和 TAB 是一个键,这样绑定,你的回车或者 TAB 就成了设置标记;
最后,C-t 这个键默认绑定的命令几乎没什么用,只是这个键位不是很好按,但这样也有好处──无论你用左手或者右手来按 t键,距离都差不多