(original) (raw)
内部命令
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, . (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 命令行
由于 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)" 的形式写到配置文件中
Emacs 终端
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 文件管理器
C-x d
进入 Dired 列表模式
C-x C-d
获取文件列表(简洁)
**C-x C-f
**打开文件,输入路径为打开目录
详细介绍见 “文件管理”一节
区块选择
很多时候,我们需要选中缓冲区中的某一部分内容。和大多数程序一样,您可以在被选择区块的起始点按下左键,移动鼠标,在结束点释放左键,这部分区块便被选中。
这种方式效率并不高,而且一些场合并没有鼠标支持,例如控制台或者远程登录。
事实上,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