原文出处:http://blog.tianya.cn/blogger/post_show.asp?BlogID=2253309&PostID=18666321ide
您是否曾经但愿可以从文档中选择文本区块,以对其进行复制、剪切或者粘贴?您的确能够这样作。在 Emacs 中,咱们将经过文本的四个角中任何两个相对的角所指定的文本选择称为矩形区块;接下来的部分将向您介绍如何有效地使用矩形区块。
标记一个矩形区块
要指定一个矩形区块,您只须要对矩形区块的四个假想的角中的任何一个设置标记,而后将光标移动到与该角相对的角。当您完成以上操做时,选定的两个角所包围的虚构文本块就是当前矩形区块。
当您运行下面的矩形区块命令之一时,将针对您所选择的文本执行相应的操做。Emacs 全部的矩形区块命令都是以 C-x r 开头的,本文在接下来的部分中对它们进行了说明。
删除一个矩形区块
有几种方法能够删除标注为矩形区块的文本。尽管这里描述的全部功能都适用于删除当前矩形区块,但其中每个都具备不一样的效果。
剪切一个矩形区块
使用 kill-rectangle 功能,C-x r k,能够剪切当前矩形区块。它与您所熟悉的常规 kill-line 功能类似:它删除该矩形区块中的全部字符,而且不用任何其余的字符来替换它们。位于该矩形区块右边的字符将自动地向左移动。
这一功能能够将矩形区块的内容保存到某个特殊的矩形区块剪切区域中,而不是保存到通常的剪切环中(请参见使用剪切环)。
如今,请尝试下面的操做:
将光标移动到以 What the hammer 开始的节的开头,并键入 C-space 以设置标记。
移动光标,使其刚好位于单词 terrors 以前,以指定一个包含四行的矩形区块(顺便提一下,该区块中每行包括三个单词)。
剪切您选择的矩形区块:键入 C-x r k。
您所选择的矩形区块已经不存在了。请注意,该矩形区块右边的全部文本是如何进行移动,以填充该矩形区块所在位置的。
删除一个矩形区块
要删除 您所标记的矩形区块中的字符,而不保存它们,能够使用 delete-rectangle,它绑定到了 C-x r d。这一命令用于删除矩形区块的区域,所以其效果看起来与剪切的矩形区块的效果相同(正如刚刚描述的);它们的区别在于,在执行该命令后,您没法再粘贴回所剪切的文本。
(然而,正如您在第一部分教程中所了解到的,您始终能够撤消 刚执行的操做。若是您在刚刚删除或者剪切了一个矩形区块以后键入 C-_,那么将恢复该矩形区块的原始文本。)
清除一个矩形区块
刚介绍的这两个用于删除矩形区块的命令都会删除该矩形区块所占据的整个空间。可是,您还能够清除 它,经过运行 clear-rectangle 功能,用空格字符替换整个区域,该功能与 C-x r c 进行了绑定。
尝试下面的操做:
移动光标,使其刚好位于行 On what wings dare he aspire? 中的单词 dare 以前,并经过键入 C-space 来设置标记。
要指定由两行中的单词 dare 组成的小的矩形区块,能够移动光标,使其刚好位于下面一行的单词 dare 以后。
键入 C-x r c 以清除您刚刚定义的矩形区块。
请注意,光标移动到该矩形区块的左下角。
打开一个矩形区块
最后,您能够打开 一个矩形区块,使用该矩形区块以指定一个将要添加空格的区域。要完成这项操做,能够标记一个矩形区块,而后运行 open-rectangle 功能,C-x r o。执行以上的操做,将使用空格字符填充整个矩形区块,并将原矩形区块中的全部文本向右移动。
如今,请尝试下面的操做:
将光标移动到缓冲区顶部,并经过键入 C-space 设置标记。
移动光标,使其刚好位于底部节中 Could 中的 Co 的后面。
经过键入 C-x r o 打开该矩形区块。
粘贴一个矩形区块
要在光标处粘贴上一次剪切的矩形区块的内容,能够运行 yank-rectangle,该操做与 C-x r y 进行了绑定。这一命令用于在光标处插入上一次剪切的矩形区块。在执行插入操做时,将该矩形区块中全部行的全部现有文本移动到右边。
尝试下面的操做:
将光标移动到文本中包含 what the chain 的节的开头:键入 M-< M-1 M-5 C-n M-2 C-f。
键入 C-x r y 以粘贴该矩形区块。
请注意,您刚刚清除的小矩形区块并非被粘贴的那个区块;当您清除 一个矩形区块时,并无对其进行保存,仅保存那些剪切 的矩形区块,而且您只可以粘贴上一次剪切的矩形区块。
另外请注意,光标移动到该矩形区块右下角的后面,而且迷你缓冲区报告已经设置了标记。当您粘贴一个矩形区块时,标记设置到您所粘贴的矩形区块的左上角。
要使用空白字符替换一个矩形区块,但须要保存它的原始内容,以便您稍后能够对其进行粘贴,那么能够首先剪切它,再粘贴它,而后清除它:
经过键入 M-< M-2 M-2 C-n M-2 C-f C-space,在倒数第二节中的第一个 Did he 以前设置标记。
键入 M-6 C-f C-n 以移动光标,使其刚好位于下一行中的 he 以后。
键入 C-x r k 以剪切矩形区块。
键入 C-p 将光标移动到您刚刚剪切的矩形区块的左上角。
使用 C-x r y 粘贴它。
使用 C-x r c 清除它。
此时,您能够将这个矩形区块粘贴到其余地方。矩形区块的原始位置如今已经填满了空白字符。
尝试下面的操做:
经过键入 M-1 M-6 C-p M-1 M-4 C-f 移动光标,使其刚好位于单词 wings 以后。
使用 C-x r y 粘贴该矩形区块。
请注意,光标移动到您刚刚粘贴的矩形区块的右下角。已经将标记设置到该矩形区块的左上角,正如迷你缓冲区中所报告的。
矩形区块的命令表
表 1 列出了您刚刚了解的各类 Emacs 矩形区块命令,给出它们的功能名称,并描述它们的含义。
表 1. 使用矩形区块的 Emacs 命令
键盘输入 功能 描述
C-space set-mark-command 标记矩形区块的一个角(光标标记其相对的角)。
C-x r k kill-rectangle 剪切当前的矩形区块,并将其保存在一个特殊的矩形区块缓冲区中。
C-x r d delete-rectangle 删除当前的矩形区块,并不为粘贴而保存它。
C-x r c clear-rectangle 清除当前的矩形区块,使用空白字符替换整个区域。
C-x r o open-rectangle 打开当前的矩形区块,使用空白字符填充整个区域,并将该矩形区块的全部文本移动到右边。
C-x r y yank-rectangle 在光标处,粘贴上一次剪切的矩形区块的内容,将全部的现有文本移动到右边。post
ps: 我本身一直给emacs高亮骗了,觉得操做是普通选择,其实已经选择的是矩形区域了。如图:spa