emacs 矩形区域操作

原文出处:http://blog.tianya.cn/blogger/post_show.asp?BlogID=2253309&PostID=18666321

 您是否曾经希望能够从文档中选择文本区块,以对其进行复制、剪切或者粘贴?您的确可以这样做。在 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 在光标处,粘贴上一次剪切的矩形区块的内容,将所有的现有文本移动到右边。

 

ps: 我自己一直给emacs高亮骗了,以为操作是普通选择,其实已经选择的是矩形区域了。如图:

 

 

 

你可能感兴趣的:(复制,emacs,粘帖,矩形区域)