1. 程式人生 > >vim複製和貼上內容

vim複製和貼上內容

vi 編輯器可以在編輯模式和命令模式下複製文字。常用的複製文字的命令如表 1 所示。

表1:命令模式下常用的文字複製命令
文字複製命令 命令的意義 文字複製命令 命令的意義
yy 複製游標所在的整行 y{ 複製到上一段的開始
Y 或 y$ 複製從游標所在處開始到行尾的內容 y} 複製到下一段的開始
y0 複製從游標前一個字元開始到行首的內容 y<CR> 複製包括當前行在內的兩行內容
y( 複製到上一句的開始 yw 複製一個單詞
y) 複製到下一句的開始    
  • yy 命令:複製游標所在的整行。在 yy 前可加一個數字 n,表示複製當前行及其後 n-1 行的內容,例如:複製此行和以下2行的內容,輸入3yy
  • Y 或 y$ 命令:兩命令功能一樣,都是複製從游標所在處開始到行尾的內容。
  • yw 命令:複製一個單詞。若游標處在某個詞的中間,則從游標所在位置開始複製至詞尾。同 yy 命令一樣,可在 yw 之前加一個數字 n,表示複製 n 個指定的單詞。
  • y) 命令:複製到下一句幵始的所有字元。
  • y} 命令:複製到下一段開始的所有字元。
  • y<CR> 命令(<CR> 表示回車):複製包括當前行在內的兩行內容。


與文字複製有關的命令分為兩類。

1. 文字貼上命令

  • p 命令:貼上命令,貼上當前緩衝區中的內容。

2. 文字選擇命令

  • v 命令:在命令模式下進行文字選擇。在需要選擇的文字的起始處按下 v 鍵進入塊選擇模式,然後移動游標到塊尾處。這之間的部分被高亮顯示,表示被選中。
  • 選中後,再按下v,可以複製,然後到需要貼上的地方,按下p則可以貼上。
  • V 命令:在命令模式下按行進行文字選擇。在需要選擇的文字的第一行按下 V 鍵,然後移動游標到塊的最後一行。這之間的所有行被高亮顯示,表示被選中。


vi 編輯器支援最近編輯內容的恢復,但是由於 vi 編輯器使用暫存器存放最近內容,所以恢復能力有限。vi 編輯器使用 9 個暫存器,可以存放已經刪除的 9 個最近內容,這些內容可以被恢復。下面例項簡述了這種機制。

#include <stdio.h>
int main(void)
{
    int i, j;
    printf("please input a number: \n");
    scanf(" % d ", &i);
    j = i + 100;
    printf("\nj = %d\n", j);
    return 0;
}

現在對其進行如下操作。

1) 將游標移至檔案第 1 行,輸入 dd 命令,此時檔案第 1 行的內容被刪除,且被刪除的內容儲存在暫存器 1 中。這行的內容是#indude <stdio.h>,被儲存在暫存器 1 中。

2) 將游標下移至第 1 個 printf 語句行,輸入 dd 命令將該行刪除,此時暫存器 1 中將儲存剛剛被刪除的內容。也就是說#indude <stdio.h>被儲存到了暫存器 2 中,而printf("please input a number: \n");這一行的內容被儲存在了暫存器 1 中。