计算机‎ > ‎软件‎ > ‎Linux‎ > ‎

国瑞学用 emacs 续二

发布者:guo rue,发布时间:2016年3月27日 下午10:49   [ 更新时间:2016年3月27日 下午11:04 ]
插入文本
从某种重要意义上说,Emacs 是很容易的。无需进入插入模式或从任何特别命令模式中退出 ― 直接输入,您就已经在插入文本了。让我们在这里重申一件事:使用“保存缓冲区”命令尽早地经常地保存您的工作:C-x C-s。

您喜欢这样吗?这是本教程中最短最容易的一屏。现在深呼吸一次,我们将进入删除文本。

基本的删除和撤销
删除文本的方法有两种。在这屏中,我们将讲第一种:字符删除。您很可能已经习惯了单独字符的删除方式:使用 Delete 键或 Backspace 键。

在 Emacs 中,至少有一个击键和 Delete 等同:C-d 删除光标下的字符。撤销字符删除的方法是使用 C-x u 命令或真正的速写,C-_。对于多次撤销来说,后者更方便。现在练习一下这些操作从而开始您的手指在 Emacs 中的训练。

注意:我读过的有些文档指出 Delete 键应该向后删除(backspace 或和 ^H 等同的击键)而 C-d 替代了 Delete。这取决于您的操作设置和终端配置。

删除的字符被保存在缓冲区中,只是用于撤销,您只能通过撤销删除后的所有更改来得到那些修改。用于多字符区域的更“高级”形式的删除被同时保存到另一个不同的结构中,我们接下来将学习它。

Emacs 剪切和粘贴,第 1 部分
下面是您删除比较大的块时需要用的命令(它被称为“杀死”):
键绑定 操作(命令)
M-d kill-word
M-Delete backward-kill-word
M-k kill-sentence
C-x Delete backward-kill-sentence
C-k kill-line

C-k 的使用有一点窍门。使用一次后,它剪切该行的文本但不包括换行符。那需要再按一次 C-k。剪切段落的命令也有:kill-paragraph 和 backward-kill-paragraph,但它们没有键绑定。

那么您删除的东西到哪里去了?当然在剪切环(kill ring)里。多次顺序的删除(例如重复几次按 C-k)作为一块进入剪切环,这样很有用。在下一屏中,我们将学习存取那些数据。

Emacs 剪切和粘贴,第 2 部分
它被称作剪切环的原因是它存储了大于一个字符的已删除文本。还有,它能按顺序被存取,从位于最后的最新的,到编辑会话期间第一个被删除的,接着又回到最近的。所以,从拓扑结构上说,它是环。

输入 C-y,粘贴最近的块。重复按 C-y 粘贴出的还是那块。

得到更旧的“剪切”的方法是先输入 C-y,您将看到最近的块。然后,输入 M-y,一步步遍历剪切环。每一步替换前面的粘贴。现在试一下 ― 确实很有用。

通用参数
键绑定为 C-u 的命令 universal-argument 可被用作许多其它操作的前缀,包括我在前几屏中给您讲的许多删除命令。

例如,输入 C-u 6 C-k 可删除三行。是的,是三行,不是六行。别忘了那行文本和它的换行符是分开来被 kill-line 剪切的。一旦您用过几次后,您的大脑就不难适应了。

若没有数字参数,universal-argument 缺省为 4 次。

复习基本操作
下面的表格是这章讨论的所有命令和它们的键绑定。看一看它们,确认您知道它们是什么。很快地练习它们,以增加对这些操作的熟悉。在练习前,通过在主窗口中输入来插入文本。
键绑定 操作(命令)
C-g (Esc Esc Esc) keyboard-quit 用来退出已启动的命令
Backspace backward-delete-char
Delete (C-d) delete-char
C-x u (C-_) advertised-undo
M-d kill-word
M-Delete backward-kill-word
M-k kill-sentence
C-x Delete backward-kill-sentence
C-k kill-line
C-y yank 等同于粘贴
M-y 遍历剪切环,必须跟 C-y
C-u, C-u N universal-argument,在命令前加上次数前缀