Table of Contents
1 Emacs简介
Emacs编辑器是由Richard Stallman 和 Guy Steele于1975年合作开发的,它是在20世纪60年代末的文本编辑器TECO的基础上,扩展了其中的一系列命令和宏发展而成的。Emacs不仅仅是一个文本编辑器,它还可以利用lisp编程语言的优势对Emacs进行定制和扩展。这也是emacs和其它编辑器的最大区别,但这种“便利”只有lisp高手才能尽情享用。一般用户只能使用已经绑定好的命令或者由某个“高手”编写好的配置文件,但这基本上已经够用了。如果你喜欢折腾的话也可以自己试着写,这样当你在学emacs的同时还能学会lisp,这也算是一剑双雕了。。
2 基本命令
下面这些是emacs默认的绑定键。如果你刚刚开始使用lisp配置你自己的emacs,请尽量不要自己修改这些默认的key-bindings,否则容易出错。(C对应Ctrl,M对应Alt,S对应Shift)
2.1 基本文件操作
下面这些主要涉及了文件的基本操作,包括打开,新建,保存,另存为以及退出Emacs等比较常用的命令。
C-x C-f | 打开/新建一个文件 |
---|---|
C-x C-s | 保存文件 |
C-x C-w | 另存为文件 |
C-x C-v | 关闭当前缓冲区文件并打开新文件 |
C-x i | 在当前光标处插入文件 |
C-x b | 新建/切换缓冲区 |
C-x C-b | 显示缓冲区列表 |
C-x k | 关闭当前缓冲区 |
C-x C-c | 关闭emacs |
2.2 光标移动
这里边最方便的就是句首句尾和行首行尾,因为我的是笔记本键盘,上下左右主要是用方向键,如果要是标准键盘的话,最好常用绑定键。
C-f | 后一个字符 |
---|---|
C-b | 前一个字符 |
C-p | 上一行 |
C-n | 下一行 |
M-f | 后一个单词 |
M-b | 前一个单词 |
C-a | 行首 |
C-e | 行尾 |
C-v | 向下翻一页 |
M-v | 向上翻一页 |
M-< | 到文件开头 |
M-> | 到文件末尾 |
2.3 文本编辑
这里面包括了复制粘贴剪切删除等常用的操作命令。注意,在这里,移除包括了剪切和删除两个概念,要区分清楚。
M-n/C-u n | 重复执行后一个命令n次 |
---|---|
C-d | 删除后一个字符 |
M-d | 删除后一个单词 |
Del | 删除前一个字符 |
M-Del | 删除前一个单词 |
C-k | 移除一行 |
C-@ | 设定标志位(主要是为了粘贴剪切以及删除使用) |
C-w | 移除标记区域的内容(剪切) |
M-w | 复制标记区域的内容(复制) |
C-y | 召回(yank)复制/移除的区域/行(粘贴) |
M-y | 召回更早的内容 (在kill缓冲区内循环) |
C-t | 交换两个字符的位置 |
M-t | 交换两个单词的位置 |
C-x C-t | 交换两行的位置 |
M-u | 使从光标位置到单词结尾处的字母变成大写 |
M-l | 与M-u相反 |
M-c | 使从光标位置开始的单词的首字母变为大写 |
2.4 一些重要的命令
C-g | 停止当前运行/输入的命令 |
---|---|
C-x u/C-_ | 撤销前一个命令(undo) |
M-x revert-buffer | 撤销上次存盘后所有改动 |
M-x recover-file | 从自动存盘文件恢复 |
M-x recover-session | 如果你编辑了几个文件, 用这个恢复 |
2.5 搜索
C-s | 向后搜索 |
---|---|
C-r | 向前搜索 |
2.6 窗口命令
窗口命令比较常用,尤其是编辑多个文件的时候,你可以打开多个窗口,可以提高编辑效率。
C-x 2 | 水平分割窗格 |
---|---|
C-x 3 | 垂直分割窗格 |
C-x o | 切换至其他窗格 |
C-x 0 | 关闭窗格 |
C-x 1 | 关闭除了光标所在窗格外所有窗格 |
M C-v | 滚动其他窗格内容 |
C-x 4 f | 在其他窗格中打开文件 |
C-x 4 0 | 关闭当前缓冲区和窗格 |
C-x 5 2 | 新建窗口(frame) |
C-x 5 f | 在新窗口中打开文件 |
C-x 5 o | 切换至其他窗口 |
C-x 5 0 | 关闭当前窗口 |
2.7 C/C++/java编程
这些就是光标的移动,比较有用。
M-a | 移动光标到声明的开始处 |
---|---|
M-e | 移动光标到声明的结尾处 |
M C-a | 移动光标到函数的开始处 |
M C-e | 移动光标到函数的结尾处 |
2.8 帮助
C-h c | 显示快捷键绑定的命令 |
---|---|
C-h k | 显示快捷键绑定的命令和它的作用 |
C-h f | 显示函数的功能 |
C-h b | 显示当前缓冲区所有可用的快捷键 |
C-h t | 打开emacs教程 |
C-h i | 打开所有模式的帮助文档 |
2.9 其它
C-x C-e | 在lisp语句后可以执行那条语句 |
---|---|
M-x eval-buffer | 可以执行当前buffer内的Elisp代码 |
M-x eval-region | 执行这个region内的代码 |