转自:http://www.ibm.com/developerworks/cn/aix/lp/emacsnew.html
熟悉窗体布局,重点:模式行、迷你缓冲区(minibuffer)。
熟悉如何键入组合键:C-x代表按住Ctrl,再按下x。
常用的缺省Emacs按键前缀
C-c | 当前编辑模式特有的命令 |
C-x | 文件和缓冲区命令 |
C-h | 帮助命令 |
M-x | 函数名 |
常用的Emacs缓冲区和文件函数
C-x C-s | save-buffer | 将当前的缓冲区保存到磁盘。 |
C-x s | save-some-buffers | 要求将所有未保存的缓冲区保存到磁盘。 |
C-x C-c | save-buffers-kill-emacs | 要求将所有未保存的缓冲区保存到磁盘,并退出 Emacs。 |
C-x C-z | suspend-emacs | 挂起 Emacs 并使之成为一个后台进程。 |
C-x C-b | list-buffers | 列出所有缓冲区。 |
C-x k | kill-buffer | 杀死一个缓冲区(缺省情况下为当前的缓冲区)。 |
C-x C-q | vc-toggle-read-only | 切换当前缓冲区的可读状态(如果适用还可以执行版本控制)。 |
C-x i | insert-file | 在插入点插入某个文件的内容。 |
有用的Emacs键盘输入(移动和导航)
C-p ,UpArrow | previous-line | 将插入点向上移动到上一行。 |
C-n , DownArrow | next-line | 将插入点向下移动到下一行。 |
C-f , RightArrow | forward-char | 将插入点移动到下一个字符。 |
C-b , LeftArrow | back-char | 将插入点移动到上一个字符。 |
M-f | forward-word | 将插入点移动到下一个单词。 |
M-b | backward-word | 将插入点移动到上一个单词。 |
C-v , PgDn | scroll-up | 将文本向上滚动一屏。 |
M-v , PgUp | scroll-down | 将文本向下滚动一屏。 |
Home | beginning-of-buffer | 将插入点移到缓冲区的开始处。(在某些版本中,这个键被缺省定义为移动到当前行的开始处。) |
End | end-of-buffer | 将插入点移到缓冲区的末尾。(在某些版本中,这个键被缺省定义为移动到当前行的末尾。) |
C-a | beginning-of-line | 将插入点移到本行的开始处。 |
C-e | end-of-line | 将插入点移到本行的结尾。 |
M-a | beginning-of-sentence | 将插入点移到句子的开始处。 |
M-e | end-of-sentence | 将插入点移到句子的结尾处。 |
C-{ | beginning-of-paragraph | 将插入点移到段落的开始处。 |
C-} | end-of-paragraph | 将插入点移到段落的结尾处。 |
常用Emacs编辑命令
Ins | overwrite-mode | 切换改写模式(缺省为关闭)。 |
BackspaceDel | delete-backward-char | 删除插入点前的字符。 |
C-d | delete-char | 删除插入点处的字符。 |
M-d | kill-word | 从插入点开始向前删除字符,直到单词末尾。 |
M-Backspace ,M-Del | backward-kill-word | 从插入点开始向回删除字符,直至单词的开始处。 |
C-_ | undo | 撤消您的上一次键入或操作 |
C-q 字符 或 XXX | quoted-insert | 在插入点插入按键本身代表的字符或由八进制数字(XXX)表示的字符。 |
C-u 次数 命令 | universal-argument | 按总的次数(缺省为 4 次)连续执行命令。 |
用来标记和删除文本的Emacs函数
C-Space | set-mark-command | 在插入点设置标记。 |
C-k | kill-line | 删除从插入点到行末的所有文本。 |
C-w | kill-region | 删除区域。 |
M-w | kill-ring-save | 将区域保存在 kill ring 中,但不删除它。 |
C-y | yank | 恢复来自 kill ring 的文本。 |
Emacs中的鼠标操作
B1 | 这一命令将设置插入点位置;拖动鼠标左键以设置区域。 |
B1-B1 | 这一命令标记一个单词。 |
B1-B1-B1 | 这一命令标记一行。 |
B2 | 这一命令插入最近被杀死的内容,并把光标移动到插入内容的末尾。 |
B3 | 这一命令会设置并突出显示区域,然后无需删除就将其放在 kill 缓冲区中。如果某个区域已经被突出显示并设置,该区域的末尾将移动到您单击的位置。 |
B3-B3 | 这个命令将突出显示区域,然后删除它。如果某个区域已经被突出显示并设置,该区域的末尾将移动到您单击的位置,此后该区域将被删除。 |
熟悉不同编辑模式,C-h m获得当前模式描述。
常用的Emacs模式
Fundamental | fundamental-mode | 主要模式 | 这一模式是缺省的 Emacs 模式,拥有最少设置和绑定。 |
Text | text-mode | 主要模式 | 这一模式是编辑文本的基本模式。 |
Abbrev | abbrev-mode | 次要模式 | 这一模式用于生成和使用缩写(请参见 Abbrev 模式)。 |
Auto Fill | auto-fill-mode | 次要模式 | 这一模式用于自动文字回绕、填充较长的行和段落。 |
Overwrite | overwrite-mode | 次要模式 | 这一模式用于覆盖缓冲区中任何现有的文本,而不是在当前位置插入文本。在缺省情况下,它与 Ins 键绑定。 |
C | c-mode | 主要模式 | 这一模式用于编辑 C 程序源代码。 |
Line Number | line-number-mode | 次要模式 | 这一模式用于显示当前行号。 |
Lisp Interaction | lisp-interaction | 主要模式 | 这一模式用于编辑和编译 Lisp 代码。 |
Paragraph-Indent Text | paragraph-indent-text-mode | 主要模式 | 这一模式是 Text 模式的一种特殊变体,其中的段落移动命令可用于首行缩进的段落,而不仅仅是由空行隔开的段落。 |
TeX | tex-mode | 主要模式 | 这一模式用于编辑 TeX 文档。 |
WordStar | wordstar-mode | 主要模式 | 这一特殊模式提供了 WordStar 编辑器的键绑定。 |
Text模式键绑定
Esc | 作为 mode-specific 命令的前缀 |
Esc Tab、M-Tab | ispell-complete-word |
Esc S、M-S | center-paragraph |
Esc s、M-s | center-line |
Abbrev模式(一种次要模式)使得您可以对较长的字符串或者短语进行速记,但是您可能还会想到一些其他的使用方式。
添加缩写:C-x a i g,运行 inverse-add-global-abbrev 函数。
打开模式:M-x,abbrev-mode。
删除缩写:M-x,kill-all-abbrevs。
Emacs文本操作命令
C-x C-i 、C-x Tab | indent-rigidly | 这一命令对区域中的(或光标所在的)行进行缩进。 |
fill-region | 这一命令填充区域里的所有段落。 | |
M-q | fill-paragraph | 这一命令填充光标所在的单个段落。 |
M-\ | delete-horizontal-space | 这一命令删除光标左右的任何水平间距。 |
C-o | open-line | 这一命令以垂直间距在光标下方打开一个新行,而不移动光标。 |
C-t | transpose-chars | 这一命令调换光标左右的单个字符。 |
M-t | transpose-words | 这一命令调换光标左右的单个单词。 |
C-x C-t | transpose-lines | 这一命令调换光标所在的行与光标前面的行。 |
M-^ | delete-indentation | 这一命令将光标所在的行和前面的行连接起来。以 C-1 作为开始,以连接光标所在的行和下一 行。 |
M-u | uppercase-word | 这一命令将光标处到其所在词的词尾之间的文本转换为大写字母。 |
M-l | downcase-word | 这一命令将光标处其所在词的词尾之间的文本转换为小写字母。 |
C-x C-l | downcase-region | 这一命令将区域中的内容转换为小写字母。 |
C-x C-u | upcase-region | 这一命令将区域中的内容转换为大写字母。 |