Emacs的常用快捷键功能对照表

Emacs的功能非常多而且复杂,在的shell下使用的时候,如果不能够灵活使用快捷键,很多操作不可能顺利完成,正因为这一点,本文罗列了一些在Emacs下常用的快捷键组合。这样可以让Emacs的初学者——比如MitchellChu,可以比较快速的上手Emacs。

这篇文章中的快捷键提取自的帮助文档中,因此,在不方便联网的时候,你也可以通过帮助文档来获取同样的信息。

本文中出现的键值简写说明:

  1. Ctrl,CTL,C均表示为同一个功能键(普通键盘中的CTRL键);
  2. META,EDIT,ALT,M均表示为同一个键(常用键盘中的ALT键);
  3. SHITF,S均表示同一个键(键盘中的Shift键);
  4. ESC表示键盘中的ESC键;
  5. SPC表示键盘中的Space键(键盘中最长的那根空格键);
  6. Deletespace,Backspace意为同一个键(Backspace键);
  7. RET,ENTER表示同一个键(回车)。

本文中出现的组合键说明:

  1. [C-x]类型,短横线分隔表示同时按下。表示按下CTRL键之后,在不松开CTRL的前提下,按下x键。
  2. [C-x,o]类型,逗号分隔表示依次按下。按下CTRL键后,再按下x键(同上),之后松开所有键,再按o键;

快捷键类型说明:

  1. C-x是字符扩展:C-x之后输入一个另一个字符或者组合键,来达到执行新的命令的目的。
    如:C-x,C-c,这个就是接组合键的扩展,作用是退出Emacs
  2. M-x是命令名扩展:M-x之后输入的是一个命令名称。
    如:M-x customize-variable 则属于命令扩展, M-x replace-string 也属于命令扩展

 Emacs常用

快捷键 快捷键备注
M-w Save the region as if killed, but don't kill it.复制选中内容
C-w Kill ("cut") text between point and mark.剪切选中内容,见C-@
C-y Reinsert ("paste") the last stretch of killed text.粘贴内容
C-x,C-c 退出Emacs
C-v 下一屏
M-v 上一屏
C-l 重新定位光标位置,C-L可以将光标轮流切换为屏幕中部,屏幕顶部,和屏幕尾部三个位置.[C-u,0,C-l] 将光标位置至于顶行
C-p 光标上移一行(同向上方向键),p = previous
C-b 光标左移(同左方向键),b = backward
C-f 光标右移,f = forward
C-n 光标下移,n = next
M-f 向前移动一个词的位置,注意:在英文中,是以单词为跳跃跨度,在中文则是以标点符号(含空格)为跳跃跨度。
M-b 向后移动一个词的位置,注意:同上
C-a 移动到行首
C-e 移动到行尾
M-a 移动到句首,注意:一行可能存在多个句子,一句也可以跨越多行。
M-e 移动到句尾
M-< 移动到所有文本的最开头(本例在一般的键盘下可能是用[ALT+SHIFT+,]完成)
M-> 移动到所有文本的最末端
C-h Emacs的帮助文档命令,如果在有的主机上这个命令被改变意义,没有办法正常调用出帮助文档,可以尝试F1,[M-x,help]来尝试查看帮助文档
C-h,m 查看Emacs各个模式的说明,并可参看各个模式的异同
C-h,i 阅读联机手册(通常讲的Info),Emacs Info是使用Emacs的主要参考文档,如果不清楚如何使用,可以进入后按"?",Emacs的使用手册是m emacs.
C-h,C-h 帮助命令的帮助,关于C-h命令的用法
C-h,k,C-f 关于C-f的命令帮助信息
C-u,num C-u命令之后,输入数值,而后再输入命令,Emacs将会自动把数值传递到后面的命令,改变后面命令的行为,比如:[C-u,8,C-f]将能实现将贯标向右移动8个位置,相当于按了8次C-f。[C-u,8,C-v]不是向后移动了8屏,而是向后移动了8行,还有其他命令也会有可能有不同的功能。[C-u,8,*]将重复输入8个*.
ESC,ESC,ESC 取消ESC,多次ESC有的时候也可以用作取消(退出)当前命令执行。比如:在递归编辑中,C-g命令并不能一次完成取消(可能无效),此时多次按ESC就可用于快速退出递归编辑。
C-g 可用来取消Emacs长时间无响应的命令,或者输入到一半的命令。Esc之后,按C-g也能取消,但此时相当于按了[C-M-g],没有这个命令.
C-x,C-l 为防止初学者错误使用命令,Emacs禁用了一些命令,其中这个即是被禁用的命令,当按下之后,Emacs会提示是否启用,有可用的选项[y,n,!,SPC],y表示启动,并且以后使用这个命令不再询问;n表示取消本次调用;!执行本次命令,并且在当前会话内取消所有禁用的命令;SPC(空格)执行此命令,之后后,此命令依然被禁用,下次调用同样需要询问。
C-x,num 只保留num个窗口,如:C-x,1只保留一个窗口,该窗口为光标所在的窗口,并将窗口扩展到整个Emacs屏幕
Delback Backspace键,在编辑文本的时候,这个是删除光标前的一个字符
C-d 删除光标后的一个字符
M-Delback 移除光标前的一个词,注意:中文的词是用标点符号作为分隔
M-d 移除光标后的一个词
C-k 移除从光标到"行尾"间的所有字符,第一次操作不包含换行符,如果使用[C-u,2,C-k]的话,则自动会将换行符移除,和两次按C-k的效果不一样。k=kill。
M-k 移除从光标到"句尾"的字符,注意:移除(kill)可以被召回(yanking),但是删除(delete)就不可能被召回。但同时也请注意,召回和Undo(撤消)不一样。见下面C-y。
C-@/C-SPC 标记起始位置,两个组合键是同样的功能,但在中文环境中,C-SPC通常用来切换输入法,所以建议使用C-@。标记完成后,可以将光标移动到其他位置(使用移动光标的快捷键),之后输入C-w,即可完成C-@到结束位置的内容删除操作。
C-y,[M-y] 召回移除的内容,如果仅按C-y则是召回最后一次移除的内容,如果C-y后,按M-y,则是召回倒数第二次的内容,每多按一次M-y,则召回的内容是之前召回内容的前一条移除内容。注意:M-y是循环显示可召回的内容,因此到达第一条被移除的内容时再按M-y则显示最后一条移除内容。
C-x,u 撤消,撤消上一次命令所造成的改变。多次使用可依次撤消多次以前执行的命令。注意:没改变文字的命令不再撤消之列;键盘输入的字符此命令会自动以20个字符进行分组处理,不单个字符进行撤消。这个命令还可以使用[C-_]或则[C-/]来操作——主要以方便操作为原则,效果一样。可用[C-u,num,C-x,u]表示撤消操作次数。
C-x,C-f 寻找一个文件,命令输入完后,Emacs会提示输入文件名(屏幕最底端一行,此行也被称为小缓冲minibuffer),输入文件名后,回车即可打开文件。如果查找的文件不存在,则创建新文件(在保存的时候创建)
C-x,C-f 当打开多个文件之后,要进行文件间进行切换,可以使用此命令来进行——相当于再次打开(但此时在缓冲区内),也可以参见[C-x,b]。
C-x,C-b 列出缓冲区缓冲的文件列表,[C-x,C-f]每寻找到一个文件,Emacs就会在内部开辟一个缓冲区。
C-x,b 切换回某个缓冲区,此命令后面必须跟缓冲区名称。假设,myfile已经存在于Emacs的缓冲区内,则[C-x,b,myfile]是切换到myfile的缓冲区,此时界面上应该是现实myfile的内容。
C-x,s 保存缓冲区内的所有缓冲文件,Emacs会找出缓冲区内已修改但未保存的文件,然后逐个向你询问是否需要存盘。
C-x,C-s 存盘,存储当前操作的文件。
C-x,k Kill(关闭)一个缓冲区,这时候会要求输入名称,输入要关闭的文件名称即可关闭文件
C-x,C-v Kill当前缓冲并打开另外一个文件
C-x,i 插入一个文件到缓冲区
C-x,C-w 将缓冲另存为其他文件.
C-z 挂起Emacs,在Shell中,可以通过fg或者[%emacs]命令再次回到Emacs中。如果系统没有提供挂起功能,则Emacs会创建一个子shell,让你运行其他程序,这时可以通过在shell中exit来从子shell中返回Emacs。
M-x,replace-string 替换编辑区内的字符串,这个是命令扩展,后继会需要输入要被替换的原字符串,和要替换的目标串。
M-x, recover file 恢复自动保存的文件,Emacs会自动保存编辑中的文件(文件名是以#号开头并以#号结束),在某些非正常情况下退出Emacs后,可以再次进入Emacs,通过此命令恢复编辑中的文件。
M-x,text mode 将主模式切换成text模式, M-x fundamental-model切换到Fundamental模式。主模式都是可以通过M-x启动的扩展命令。不同的模式,同样的命令可能会有不同的执行效果。
M-x auto fill mode 启动自动折行模式——在字符超过一行边界时自动换行,这种模式为辅模式。如果当前已经启动了自动折行模式,则使用这个命令是关闭自动折行模式。换行的前提是有空格(中文不必)。
C-x f 传递参数(数字)来设置行边界,也可以通过[C-u,70,C-x,f]来达到同样的效果。
*M-q 在启用自动折行模式后,可以手动折叠重新折叠行。
C-s/C-r 搜索词,C-s是从当前位置向前搜索, C-r是向后搜索。Enter结束搜索,C-g取消搜索。当在找到搜索词的时候,再次按下搜索组合键,是查找下一个匹配词。C-g之后,光标在原位置,Enter后,光标是在搜索结果上。
C-x,o 在多窗口间切换光标。
C-M-v 向下滚动其他窗口屏幕(多个窗口时,只有其中一个会滚动)
C-M-S-v 向上滚动其他窗口屏幕
C-h,v,a-variable,RET 获得变量的帮助信息,如:[C-h,v,color-name-rgb-alist,RET]此时显示的是color-name-rgb-alist变量的信息
C-h,f,a-variable,RET 获得函数的帮助信息,如:[C-h,f,add-to-list,RET],此时Emacs显示add-to-list函数的帮助信息
C-h,i,m,elisp,RET 打开整个Emacs Manual后,进入Elisp的Manual

 

Monday, May 12, 2014 | 其他技术

文章评论

No comments posted yet.

发表评论

Please add 6 and 6 and type the answer here:

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。