Emacs被人称之为“神的编辑器”,Emacs 可以完全键盘操作,你可以完整的操作Emacs而不需要去碰鼠标。当你进行命令行操作的时候,这是很重要的。正如其他Emacs、Vim的使用者说的,频繁的去用鼠标会降低你的编辑速度。
很多人觉得 Emacs 的快捷键很难记,其实他们是很有规律的,从 Emacs 键绑定的格局里面可以看到一些约定,只要你熟悉了这些约定,有很多快 捷键你甚至可以自己猜出来。而且即使你不知道快捷键,而是通过其他方式,比 如 M-x 再输入函数名称的形式来执行了某个其实是绑定到一个很方便的快捷键上 面的命令,Emacs 也会提醒你,说你可以通过什么什么快捷键来达到这个目的。 即使你不知道确切的函数名,你也可以通过 M-x apropos 等方式来查找函数以及 其文档。
**********Emacs模式**********
M-x 语言名-mode :切换到“语言名”模式下。如果Emacs没有内置你想要的语言,则用搜索“Emacs 语言 mode”即可。
M-x TAB TAB :显示所有可执行的命令
*********光标、编辑***********
所有被删除的内容会进入一个称为删除环的地方,按C-y就可以把它粘贴到光标所在的位置,如果想要取再前一次的删除数据,就在C-y之后(不要做其它操作)继续按M-y,重复按M-y可以遍历整个删除环。
C-l :光标移到屏幕中间
M-< :光标移到文档首
M-> :光标移到文档末
C-u n cmd,M-n :执行cmd n次
C-g :取消当前命令的执行
C-d :删除光标下的字符
M-d :删除光标后的单词
C-k :剪切光标至行末
M-k :剪切光标至句末
C-@ :make a mark
C-x u,C-/ :undo
C-x C-f :find file
C-x C-v :打开文件并替换掉当前buffer中的文件
C-x i :插入文件
C-← :pervious word
C-→ :next word
C-↑ :backward-paragraph
C-↓ :forward-paragraph
C-v :page down
M-v :page up
C-p :previous line
C-n :next line
C-f :forward char
C-b :backward char
M-f :forward word
M-b :backward word
C-a :move beginning of line
C-e :move end of line
M-a :backward sentence
M-e :forward sentence
C-M-@, C-M-SPC :mark up
C-w :cut
M-w :copy
C-y :yank
M-x :execute extended command
C-g :keyboard quit
F10 :打开菜单
M-g g :跳到指定的行
M-x d :打开文件目录
ESC ESC ESC :关闭mini-buffer
SHIFT+方向键 :选取文本
**********搜索**********
C-s input :向前搜索
C-s :搜索下一个
C-r input :反向搜索
C-s C-w :搜索光标所在位置的字
C-s C-s :重复上次搜索
C-r C-r :重复上次反向搜索
C-r 在进入查找/替换模式后,该命令进入迭代编辑模式
C-M-x 退出迭代编辑模式,返回到查找/替换模式
C-M-s 向前正则搜索
C-M-r 向后正则搜索
C-M-% 正则交互替换
**********C-mode**********
M-x c-set-style :设置当前缓冲区使用的style
M-; :加注释
C-c C-c :选中代码然后执行此命令,注释之
Emacs可以使用C预处理器处理其代码的一部分,以便让程序员检测宏、条件编译以及include语句的效果。操作如下:
1、在顶层窗口输入看到的代码。
2、高亮显示一个区域。
3、按C-c C-e调用宏扩展。也可以从菜单C中选择 Macro Expand Region。
Emacs将创建窗口,显示宏扩展的结果。
C-c C-a :开启自动模式,自动格式化输入的代码。此命令是开关命令。
编译程序 :从菜单中选择Compile时,Emacs要求输入编译命令。如果有一个Make文件,可以接受默认设置。否则,程序员必须为正确编译程序而填写编译命令行。
编译程序 :M-x compile
调用GDB :在Emacs中使用GDB时,程序员能获得GDB的全部标准特性。在Tools菜单中选择GDB,会出现系统提示,要求输入可运行文件以便进行调试。当输入了名字后,GDB被调用。最初将看到一个和标准GDB一样的窗口。在程序的适当地方设置断点后运行程序,源代码窗口将会有=>标记指向断点位置并高亮显示。在GDB窗口中可以输入GDB的所有命令。
调用GDB :M-x GDB
标记功能 :在命令行中运行etags程序创建TAGS文件。例如:$etags *.c。然后在Tools菜单中使用Tags选项,对文件进行操作。可以使用Find Tag(M-.)找到一个函数,并且将光标定位于该函数的第一行;如果该函数在一个以上的文件中出现,就可以使用(M-,)继续搜索其他的文件。
M-! :运行Shell Command
M-x shell :打开shell
C-M-f :向前匹配括号
C-M-b :向后匹配括号
M-/ :代码自动完成
C-M-\ :对当前选区重排
*********窗口***********
C-x 1 :最大化当前窗口
C-x o :光标移到其他窗口
C-x 2 :对窗口水平分割
C-x 3 :对窗口垂直分割
C-x 0 :关闭当前窗口
*********缓冲区***********
C-x C-f :打开或创建文件
C-x C-b :显示buffer列表,可以用方向键选择
C-x C-w :另存为
C-x b :switch-to-buffer
C-x k :kill buffer
C-x C-s :save buffer
C-x C-c :save buffer and kill terminal
C-x ← :pervious buffer
C-x → :next buffer
********Emacs帮助************
C-h ? :得到关于帮助的完整列表
M-x apropos :想做一件事情,但是不知道如何去做。可以用上面的命令,然后关键字甚至是正则表达式, Emacs就会搜索帮助中一切相关的信息。会得到一个列表,每一项都有超链接和简要的说明。
C-h k :别人告诉我一个快捷键,我想知道它具体是怎么回事。可以用上面的命令,然后把那个键按一遍,Emacs就会告诉你是怎么回事了。
C-h f :上面的命令,然后输入你要查询的命令(即按下M-x然后能输入的那些命令)
C-h v :上面的命令,然后输入变更名,可以查看变更的说明和光前值。
C-h m :可以得到当前所有mode的一个总体说明。
C-h b :查看当前buffer所有可用的快捷键
C-h t :打开学习向导
C-h w :查看某命令对应的快捷键
<快捷键序列> C-h :查看当前buffer中以<快捷键序列>开头的所有快捷键列表。例如想看所有以C-x开头的快捷键就输入C-x C-h就可以了。
find-function :查看Emacs函数的代码。M-x find-function。
find-variable :查看变量的代码。
describe-face :查看face的文档
find-face-definition :查看face的代码