emacs快捷键约定
- C- 表示当输入字符时按住CONTROL键。因此C-f 就表示:按住CONTROL键再输入f。
- M- 表示当输入字符时按住META(或EDITH或ALT键)。如果你没有METE、EDIT或ALT键,可以先按下ESC然后放开,再输入,如ESC-f = M-f。
- 提示:C-x C-c:退出emacs;C-g:退出正在运行的命令或取消数字参数和只输入到一半的命令。
emacs快捷键
- C-v:向前移动一屏;
M-v:向后移动一屏。
C-l(字母不是数字1):重绘屏幕,第一次 将光标所在位置至于屏幕中央,第二次是将附近的文字移到屏幕的顶部,最后一次移到底部,再按一次的情况如第一次的效果。 - 基本光标控制
C-f:向右移动一个字符;
C-b:向左移动一个字符;
M-f:向右移动一个词【对中文是移动到下一个标点符号】;
M-b:向左移动一个词【对中文是移动到上一个标点符号】;
C-n: 移动到下一行;
C-p:移动到上一行;
C-a: 移动到行首;
C-e: 移动到行尾;
M-a:移动到句首;
M-e:移动到句尾;
M-<:(META 小于号)可以将光标移动到所有文字的最开头;
M->:(META 大于号)可以将光标移动到所有文字的最末尾;
- 高级指令:
- 一个命令指定数字参数(也就是重复次数)的方法:输入 C-u,然后输入数字作为参数,最后再输入命令(或者按住META不放再输入数字,最后输入命令),比如:C-u 8 C-f 会向前移动 8 个字符;
- 对于emacs一些被禁用的一些命令,在执行的时候输入空格使用这条命令或使用“n”来不使用。如:C-x C-l。
- 高级指令:
- 窗格
C-x 1:只保留光标所在位置的窗格;
C-u 0 C-l:将光标所在位置重新绘制屏幕到距离顶部0行的位置,0可以是n;
C-u 8 *:重复插入字符,这将会插入8个”*”。 - 文本插入和修改
<del>:删除光标前的一个字符;
C-d:删除光标后的一个字符;
M-<del>:移除光标前的一个词;
M-d:移除光标后的一个词;
C-k:移除从光标到“行尾”间的字符,第二次C-k才会移除换行符;
M-k:移除从光标到“句尾”间的字符。
- 注:
- 移除(kill或又叫剪切)和删除(delect)的区别,移除是可以被召回(yank)的,而删除是不能被召回的,但可被撤销操作。
- C-k 处理数字参数的方式很特别,它会把参数指定的那么多行连同其后的换行符一起移除。比如 C-u 2 C-k 会把两行以及它们的换行符移除;
- 召回前几次移除的内容(C-y,C-u n m-y):在用 C-y 召回最近移除的文字之后,紧接着再按 m-y 就可以召回再前一次被移除的内容,再按一次 m-y 又可以召回再上一次的……连续使用 m-y 直到找到你想要召回的东西或者带参数。
- 注:
- 撤销
C-/ 、 C-_ 和 C-x u:数字参数对于 C-/ 、 C-_ 和 C-x u 的意义是执行撤销的重复次数。 - 文件
C-x C-f :寻找一个文件,用 结束文件名的输入;
C-x C-s :储存文件;
M-x: customize-variable make-backup-files :关掉文件备份。 - 缓冲区
C-x C-b:列出缓冲区;
C-x b:切换缓冲区为当前缓冲区。用这条命令,你必须输入缓冲区的名称;
C-x C-s:对当前缓冲区存盘;
C-x s:保存多个缓冲区; - 命令集扩展
C-x:字符扩展,C-x 之后输入另一个字符或者组合键;
M-x:命令名扩展,M-x 之后输入一个命令名;
C-z:挂起emacs,可以fg”或者“%emacs”命令再次回到 emacs;
C-x C-f:寻找文件;
C-x C-s:保存文件;
C-x C-b:列出缓冲区;
C-x C-c:离开 emacs;
C-x 1:关掉其它所有窗格,只保留一个;
C-x u:撤销。 - 自动保存
M-x recover file 来恢复你的自动保存文件。 - 回显区
如果 emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区”的地方给你提示。回显区位于屏幕的最下面一行。 - 状态栏
- 位于回显区正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如:-:**- TUTORIAL.cn 63% L749 (Fundamental)状态栏显示了 Emacs 的状态和你正在编辑的文字的一些信息。
- -NN%– 显示的是光标在全文中的位置。如果位于文件的开头,那么就显示 –Top– 而不是 –00%–;如果位于文件的末尾,就显示 –Bot–。如果文件很小,一屏就足以显示全部内容,那么状态栏会显示 –All–。
- “L” 和其后的数字给出了光标所在行的行号。
- 最开头的星号(*)表示你已经对文字做过改动。刚刚打开的文件肯定没有被改动过,所以状态栏上显示的不是星号而是短线(-)。
- 状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是
Fundamental,就是你现在正在使用的这个。它是一种“主模式”。 - Emacs 的主模式林林总总。有用来编辑程序代码的――比如 Lisp 模式;也有用来编辑各种自然语言文本的――比如 Text 模式。任何情况下只能应用一个主模
式,其名称会显示在状态栏上,也就是现在显示“Fundamental”的地方。 - 主模式通常会改变一些命令的行为。比方说,不管编辑什么语言的程序代码,你都可以用一个相同的命令来添加注释。但是在不同的语言中注释的语法往往是不同的,这时不同的主模式就会用各自不同的语法规则来添加注释。主模式都是可以用 M-x 启动的扩展命令,M-x fundamental-mode 就可以切换到Fundamental模式。
- 编辑自然语言文本――比如现在――应该用 Text 模式。
- 搜索
C-s:向前搜索,return后停留在搜索的位置,而C-g回到搜索开始的位置;
C-r:向后搜索,return 后停留在搜索的位置,而C-g回到搜索开始的位置;
- 注:在渐式搜索中,按<del>键会撤回最近一次搜索命中的位置;
- 多窗格
C-x 2:将屏幕分成两个窗格,光标停留在上方的窗格里;
C-M-V: 向下滚动另外窗格的文字,而光标不会离开所在的窗格,可以用于翻译校对等;
C-M-S-v:向上滚动另外窗格的文字,而光标不会离开所在的窗格;
C-x o (o is ‘other’):转移光标到下方的窗格,光标会闪烁;
C-x 4 C-f:在新开的窗格里打开文件,同时光标也跳到那里。输入C-x o 回到上的窗格,然后用C-x 1关闭下方窗格。 - 多窗口
emacs可以创建多个窗口,窗口由许多窗格和菜单、滚动条、回显区等组成。在图形界面下,多个窗口可以同时显示出来,在文本的终端中,只能同时显示一个窗口。
M-x:make-frame:创建新的窗口;
M-x:delete-frame:关闭选中的窗口。若关闭最后一个窗口,emacs则会退出。 - 递归编辑
递归编辑状态由位于状态栏的方括号所指示,其中包含了用小括号来致命的模式名称。比如说有时你可能看到[(Fundamental)], 而不是(Fundamental)。【比如说在用M-%进行交互式替换的时候你又用C-s进行搜索,这时替换的模式并没有结束,但你又进入了搜索模式,这就是所谓的递归编辑。】
离开递归编辑 用ESC ESC ESC。这是最通用的“离开”命令,你甚至可以用它关闭多余的空格或离开缓冲区。而你不能用C-g退出递归编辑,因为 C-g的作用是 取消“本层递归编辑之内”的命令和 其参数。用法:输入 M-x 进入小缓冲;然后输入 ESC ESC ESC 离开。 - 术语说明
command:命令
cursor:光标
scrolling:滚动
numeric argument: 数字参数
window:窗格
insert:插入
delete:删除
kill:移除
yank:召回
undo:撤销
file:文件
buffer:缓冲区
minibuffer:小缓冲
echo area: 回显区
mode line:状态栏
search:搜索
incremental search:渐进式搜索