简介

Emacs是著名的集成开发环境和文本编辑器,被誉为‘神的编辑器’,公认为是最受专业程序员喜爱的代码编辑器之一,另外一款便是vim。

基本命令

C-h t           //进入tutorial教程,新手推荐看一遍教程

C-g             //取消当前操作指令
C-h k <key>     //查看当前按键绑定的指令及介绍
M-x <cmd>       //输入指令执行

C-z             //最小化界面
C-x C-c         //退出emacs

M-x shell       //打开终端

文件

C-x C-f                 //打开或新建文件,当文件名以/结果即为新建文件夹
C-x C-s                 //保存文件
C-x d                   //查看文件目录,类似目录树
M-x make-directory      //使用指令新建文件或文件夹
M-x delete-directory    //使用指令删除文件夹
C-x C-q                 //解除文件只读模式

文件窗口下

g       //刷新
d       //加上待删除标记
u       //取消待删除标记,其实也可取消其他标记
x       //删除标记的所有文件

+       //创建目录
D       //删除文件
R       //重命名或移动
C       //拷贝copy
Z       //压缩

^       //访问上级目录

buffer

基本操作

巧记:C-x是标配,b:buffer, k:kill

C-x 0           //删除当前窗口
C-x 1           //最大化当前缓冲,关闭其它
C-x 2/3         //垂直/水平创建新缓冲区 2上下划分 3水平划分
C-x o           //切换窗口
C-x left        //切换到上一个buffer
C-x right       //切换到下一个buffer
C-x C-b         //列出所有缓冲区(buffer)
C-x b           //提示输入缓冲区名称,切换当前窗口的缓冲区
C-x k           //删除缓冲区
C-x C--/C-=         //缩小buffer窗口
C-x C-=             //放大buffer窗口
C-x ^               //增加buffer高度

C-x {/}             //减小或增加buffer宽度

默认的增加缩小步长为1,于是我自定义按钮并增加为步长为10。

下面是我的设置的自定义按键,将绑定到f与b上与光标移动f与b相对于,容易记忆。

(global-set-key (kbd "C-c f") (kbd "C-u - 1 0 C-x {"))
(global-set-key (kbd "C-c b") (kbd "C-u - 1 0 C-x }"))

光标移动

巧记:C的作用效果比M谨慎

C-f             //向前移动一个字节 Forward one character
C-b             //向后移动一个字节 Back one character
C-p             //向上移动一行 Previous line
C-n             //向下移动一行 Next line

C-a             //移到行前 Beginning of line
C-e             //移到行尾 End of line

M-f             //向前一个单词 Forward one word
M-b             //向后一个单词 Back one word

M-a             //向前到句头 Previous sentence
M-e             //向后到句尾 Next sentence

M-v             //向上翻页 Previous screen
C-v             //向下翻页 Next screen

M-i             //tab

M-< (C+Shift+,) //回到buffer头 Start of buffer
M-> (C+Shift+.) //回到buffer尾 End of buffer

内容编辑

Back(delete)/C-d    //删除 前、后字符

C-/                 //撤销undo
C-?                 //反撤销redo

M-;                 //注释/反注释  如果没有选中,则在行末尾注释
C-spac              //标记/取消标记,当标记完移动光标即为选中文本

M-w                 //复制,如果未选则复制该行
C-w                 //剪切,如果未选中则剪切该行
C-y                 //粘贴
C-x h               //全选

C-k                 //删除光标到行末尾的内容并复制删除内容
C-j                 //换行回车并缩进

代码折叠

C-c @ C-M-s         //显示所有的代码
C-c @ C-s           //显示当前代码区

C-c @ C-M-h         //折叠所有的代码
C-c @ C-h           //折叠当前代码区

C-c @ C-c           //折叠/显示当前代码区

或者使用M-x指令

hs-show-all         //显示所有的代码
hs-show-block       //显示当前代码区

hs-hide-all         //折叠所有的代码
hs-hide-block       //折叠当前代码区

搜索查找

M-g g           //根据提示输入所需跳转行号
C-s             //查找
C-s下C-s         //查找下一个
C-s下C-r         //查找上一下
C-s下C-g         //一次返回,二次结束查找
C-s下Enter       //停止到当前查找到的内容

总结

虽然Emacs的快捷键不只这些,还有很多,但是其实真正常用的也就十几个。最重要的在于,当你敲得多了,即使你记不住,你手指也会帮。join in !