原文出處: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