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]移动到文档起始。
注意 | |
---|---|
Emacs 使用命令进行处理,快捷键只是一种发送命令的方法! |
一般情况下,我们用不到这么详细的说明,而且英文看起来也比较吃力。您可以使用 C-h c
以简洁模式查看说明。 只在回显区显示键位和它执行的命令:
C-x h runs the command mark-whole-buffer
通常这就足够了。
如果您知道一个命令,而不知道它绑定到什么键上,您可以使用 C-h w
,也就是命令 Where-is
由于 Emacs 太过强大,内部命令恒河沙数,根本不可能有同样数量的快捷键位来绑定它们!
对于没有绑定的命令,可以使用命令执行!
M-x
(Alt+x) 开启命令行,回显区显示为 M-x ,然后输入 newline
这个命令默认绑定在回车键,所以它和回车键的作用一样为 换行
C-h w newline 结果是: newline is on RET
提示 | |
---|---|
命令行中,可以使用 TAB 补全,使用 M-p 上翻, M-n 下翻
|
在后面的部分中,统一使用 M-x command
来表示 内部命令 command ;内部命令以 "(command)" 的形式写到配置文件中
M-x shell
激活 Emacs 终端。可以在 Emacs 终端中使用外部命令。
需要注意的是,Emacs 终端是哑终端,某些类型的输出不能够正确显示。
在 Emacs 终端中使用 exit
命令退出。
M-!
(Alt+Shift+1)临时执行一条外部命令,并输出在名为 *Shell Command Output* 的缓冲区中 (M-x shell-command)
C-u M-!
(Ctrl+u Alt+Shift+1)临时执行一条外部命令,并输出到光标位置。
很多时候,我们需要选中缓冲区中的某一部分内容。和大多数程序一样,您可以在被选择区块的起始点按下左键,移动鼠标,在结束点释放左键,这部分区块便被选中。
这种方式效率并不高,而且一些场合并没有鼠标支持,例如控制台或者远程登录。
事实上,Emacs 进行区块选择的方法,是设置一个标记,标记到光标点[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键,距离都差不多