emacs学习笔记

鉴于2015年icpc北京站没有cb等ide,来学习emacs。由于本人之前比较习惯使用vim,因此这里将部分地和vim进行对比。不过后来发现有尿壶geany(虽然我觉得很难用,关键是RE直接退出),和eclipse cdt(虽然eclipse我很讨厌但总比没有强吧),所以我决定不学了(VS大法好)。

基本操作

在bash on windows下运行sudo apt-get emacs。安装完毕后运行emacs filename可以打开/创建一个新文件。使用Ctrl+X Ctrl+C可以退出emacs,类似vim的:q

命令说明

和vim不同,emacs比较依赖Ctrl,Meta键。Ctrl键是比较寻常的,Meta键有三种作用方式:

  1. Alt + X
  2. Esc X (先按Esc松开后按X)
  3. Ctrl+[ X

注意vim命令常可带数字前缀,例如3fa可以表示当前行第三个a,4yy表示复制四行。

光标跳转

操作 emacs(不使用光标控制键) vim(默认Normal模式) 光标控制键 备注
光标左移 Ctrl+B H
光标右移 Ctrl+F L
光标上移 Ctrl+P K
光标下移 Ctrl+N J
上一词首 Alt+B b / vim不会忽略标点符号
上一词尾 ge /
下一词首 w /
下一词尾 Alt+F e / emacs实际移到插入位置,类似vim按a进入插入模式
光标到顶行 H
光标到中行 M
光标到底行 L
上半页 Ctrl+D
下半页 Ctrl+U
上一页 Alt+V Ctrl+B Page Up
下一页 Ctrl+V Ctrl+F Page Down
逐行下滚 Ctrl+E
逐行上滚 Ctrl+Y
行首 Ctrl+A 0 Home
行首(忽略前导空白) ^
行末 Ctrl+E $ End
行末(忽略尾部空白) g_
句首 Alt+A ( 句子以空行和句号分隔
句末 Alt+E )
段首 Ctrl+{ { 段以空行分隔
段末 Ctrl+} }
首行 1G, gg
末行 G
置顶当前行 zt
置底当前行 zb
到本行下一个char字符处 f+char
到本行下一个char字符前 t+char
到本行前一个char字符处 F+char
到本行前一个char字符前 T+char
括号匹配 %

插改增删复制黏贴

删除

删除指令可以主要以d开头,可以在d后面指定重复次数,也可以在d前面指定重复次数。

操作 emacs vim vim(插入模式)或gedit 备注
删除当前字符 x, d+→ del
删除前一个字符 X, d+← backspace
删除当前单词 dw
删到行首 do
删到行尾 d$
删到一行 dd

复制和粘贴

操作 emacs vim vim(插入模式)或gedit 备注
与下行合并 J

查找

emacs概念