第一部分:启动emacs
直接在命令行输入emacs.
第一部分:emacs快捷键
说明:C代表Ctrl,M代表Alt。
基本光标控制
C-v:向前移动一屏
M-v: 向后移动一屏
C-l: 重绘屏幕,并将光标置于屏幕中央
上一行 C-p
:
:
向左移 C-b .... 目前光标位置 .... 向右移 C-f
:
:
下一行 C-n
M-f: 将光标移动到下一个标点符号(包括字母)
M-b: 与M-f相反,是往后移
【注:Alt用来操作“由语言定义的单位”(比如词、句子、段落),而Ctrl用来操作“与语言无关的基本单位”(比如字符、行等等)】
C-a 和 C-e 可以将光标移动到“一行”的头部和尾部;
M-a 和 M-e 则将光标移动到“一句”的头部和尾部。
M-< (meta 小于号)可以将光标移动到所有文字的最开头;
M-> (meta 大于号)可以将光标移动到所有文字的最末尾。
C-u 8 C-f 会向前移动 8 个字符,其他类似。
如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g
也可以终止一条执行过久的命令。C-g 还可以取消数字参数和只输入到一半的命令。
取消<ESC> 的正确做法是再连按两次<ESC>。
窗格
C-x 1 只保留一个窗格(也就是关掉其它所有窗格)。
C-u 0 C-l可以将光标所在行移到第一行。
插入与删除
<Delback> 删除光标前的一个字符
C-d 删除光标后的一个字符
M-<Delback> 移除光标前的一个词
M-d 移除光标后的一个词
C-k 移除从光标到“行尾”间的字符
M-k 移除从光标到“句尾”间的字符
删除指定的一段:首先把光标移动到你想要移除的区域的一端,然后按 C-@,然后将光标移动到另一端,再按 C-w 就可以把位于这两点之间的所有文字移除了。
单独的 C-k(移除一行) 会把一行的内容移除,而第二个 C-k 则会移除换行符,并使
其后所有的行都向上移动。
召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。如果你一次连按了好几下 C-k,那么所有被移除的行会被存储在一起,只要一个C-y 就可以把它们都召回。
在用 C-y 召回最近移除的文字之后,紧接着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上一次的……
撤销
通常 C-x u 会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用
C-x u,你会把以前的命令也依次撤销。
但是有两个例外:
1) 没有改变文字的命令不算(包括光标移动命令和滚动命令)
2) 从键盘输入的字符以组为单位――每组 20 个字符――来进行处理。
(这是为了减少你在撤销“插入文字”动作时需要输入 C-x u 的次数)
文件
在你输入这条命令之后:
C-x C-f 寻找一个文件
Emacs 会提示你输入文件名。你输入的文件名会出现在屏幕最底端的一行,这一
行被称为小缓冲(minibuffer),在小缓冲里你可以使用通常的 Emacs 编辑命令
来编辑文件名。
在小缓冲里输入文件名(其实输入其它东西也一样)时可以用 C-g 取消。
存盘用这条命令:C-xC-s 储存这个文件
关掉文件备份可以用如下命令:
M-xcustomize-variable <Return> make-backup-files <Return>
寻找一个不存在的文件,是Emacs 创建新文件的方法。
缓冲区
可以用 C-x C-f 找到并打开第二个文件,但第一个文件仍然在 Emacs 中。要
切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中同
时打开多个文件。
用下面的命令可以列出当前
所有的缓冲区:C-xC-b 列出缓冲区,输入 C-x 1 离开缓冲区列表。
如果你想编辑其它的缓冲区,就必须“切换”过去。上面讲过,用
C-x C-f 是一种办法。不过还有一个更简单的办法,那就是用 C-x b。用这条命
令,你必须输入缓冲区的名称。
C-x s 保存多个缓冲区
命令集扩展
扩展命令有两种风格:
C-x 字符扩展。 C-x 之后输入另一个字符或者组合键。
M-x 命令名扩展。M-x 之后输入一个命令名。
退出 Emacs 用的 C-x C-c 也是扩展命令。
控制台下,C-z 可以暂时离开 Emacs。在允许 C-z 的系统中,C-z 会把 Emacs“挂起”,也就是说,它会回到 shell但不退出 Emacs。在常用的 shell 中,通常可以用“fg”或者“%emacs”命令再次回到 Emacs 中。在没有提供挂起功能的系统中,C-z 会在 Emacs 之下创建一个子 shell 来让你运行其它程序,通常用 shell 命令“exit”从子 shell 回到 Emacs。
C-x 的扩展命令有很多,下面列出的是你已经学过的:
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 repl s<TAB>(TAB会自动补齐replace-string)<return>changed<return>altered<return>
自动保存
Emacs 会定期将正在编辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个“#”字符,比如你正在编辑的文件叫“hello.c”,那么它的自动保存文件就叫
“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。
假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保
存文件)然后输入 M-xrecover file<Return> 来恢复你的自动保存文件。在提示确认的时候,输入yes<Return>。
状态
Emacs 的主模式林林总总。有用来编辑程序代码的――比如 Lisp 模式;也有用
来编辑各种自然语言文本的――比如 Text 模式。任何情况下只能应用一个主模
式,其名称会显示在状态栏上,也就是现在显示“Fundamental”的地方。
主模式都是可以用 M-x 启动的扩展命令,M-x fundamental-mode 就可以切换到Fundamental模式。
用 C-h m 可以查看当前主模式的文档。
用 C-u C-v 将本行带到屏幕的最上方。
用 M-x autofill mode<Return> 启动自动折行模式。再用一次这条命令,自动折行模式会被关闭。
行边界通常被设定为 70 个字符【这里指英文字符】,你可以用 C-x f 命令配合
数字参数来重新设定它。例如:输入 C-x f 并传递参数 20: C-u 2 0 C-x f。【输入空格对英文来说是必须的,而对中文则不必。】
搜索
C-s 是向前搜索,C-r 是向后搜索。在整个过程中,都可以用 C-g 来终止搜索,回到原来光标位置。
注意:在某些终端下,输入 C-x C-s 会冻结屏幕【屏幕没有任何输出】,使你看不到 Emacs 的任何变化。其原因是操作系统的“流量控制”功能拦截了 C-s 并冻结了屏幕。用 C-q 可以解除屏幕冻结。
另外,如果你在搜索的时候输入了 ConTROL 或者 meta 组合键的话,搜索可能会结束。(也有例外,比如 C-s 和 M-r 这些用于搜索的命令。)
多窗格
C-u 0 C-l可将光标所在行移到最上面。
输入 C-x 2,它会将屏幕划分成两个窗格。
C-M-v 滚动下方的窗格。向上滚动是 C-M-S-v,也就是同时按住 CONTROL、meta 和 SHIFT 再按 v。
C-x o(“o”指的是“其它(other)”),将光标转移到下方的窗格。再输入 C-x o 将光标移回到上方的窗格里。连续使用 C-x o 可以遍历所有窗格。
C-M-v 是很有用的命令。你可以始终处于编辑窗格中,然后用 C-M-v 命令滚动另外一个窗格。
(在上方窗格里)输入 C-x 1 关掉下方窗格。如果你在下方的窗格里输入 C-x 1,那么就会关掉上方的窗格。
递归编辑
比如在用 M-% 进行交互式替换的时候你又用了 C-s 进行搜索,这时替换模式并没有结束,但你又进入了搜索模式,这就是所谓的递归编辑。
离开递归编辑可以用 ESC ESCESC。
获得更多帮助
Emacs 提供了一些命令来查看 Emacs 的命令文档,这些命令都以 CONTROL-h 开头,这个字符也因此被称为“帮助(Help)字符”。可用C-g取消。
最基本的帮助功能是 C-h c。输入 C-h c 之后再输入一个组合键,Emacs 会给出这个命令的简要说明。C-hk 的命令会新打开一个 Emacs 窗格以显示函数的名称及其文档。
C-h f 解释一个函数。需要输入函数名。
C-h v 用来显示 Emacs 变量的文档。Emacs 变量可以被用来“定制 Emacs 的行
为”。同样,你需要输入变量的名称。
C-h a 相关命令搜索(Command Apropos)。
输入一个关键词然后 Emacs 会列出所有命令名中包含此关键词
的命令。这些命令全都可以用 M-x 来启动。对于某些命令来说,
相关命令搜索还会列出一两个组合键。
C-h i 阅读联机手册(也就是通常讲的 Info)。
这个命令会打开一个称为“*info*”的特殊缓冲区,在那里,
你可以阅读安装在系统里的软件包使用手册。要读 Emacs 的使
用手册,按 m emacs <Return> 就可以了。如果你之前从没用
过 Info 系统,那么请按“?”,Emacs 会带你进入 Info 的使
用指南。在看完本快速指南之后,Emacs Info 会成为你的主要
参考文档。
总结
要退出 Emacs 请用 C-x C-c。要暂时切换到 shell 并且稍后再回到
Emacs 里来,请用 C-z。【切换到 shell 仅对控制台下的 Emacs 有效】
下面列出主要术语的译词对照,并给出注释说明: