第四課 基本的複製、粘貼操作
剪下和粘貼
當用命令 d 或 x 刪除了一段文字後,被刪除的文字就自動被 vim 儲存到了一個特殊的剪下板中。之後可以用 p 命令(put)將其粘貼到游標所在的位置的後面。
大家可以試試依次輸入下面兩條命令:
dd
p
這兩條命令執行下來相當於將兩行內容調換了位置,類似下面的命令
x
p
將兩個字母顛倒了位置。
p 命令同樣可以在前面加上個數字,表示重複粘貼 n 次。 文本中加入標籤
有時,我們要刪除一個大的文字區塊,直接用d命令很難描述這個文字區塊的開始和結束。這時可以用 m 命令(mark)在文本中做個標記。還是舉個具體的例子。比如有如下的文本:
int main(void)
{
double x = 1e-2;
double y[5];
y[0] = gsl_log1p(x);
y[1] = log1p(x);
y[2] = log1p2(x);
y[3] = log1p3(x);
y[4] = log(1+x);
printf("gsl_log1p = %.15e\n", y[0]);
printf("log1p = %.15e\n", y[1]);
printf("log1p2 = %.15e\n", y[2]);
printf("log1p3 = %.15e\n", y[3]);
printf("log(1+x) = %.15e\n", y[4]);
return 0;
}
想要將幾條printf 語句都刪除掉。先將游標移動到第一個printf語句的第一個字元p處。執行命令 ma 。其中的 a 是給這個標籤命的名字,命名的規則與 q 命令相同。然後將游標移動到 return 語句的 第一個字元 r。輸入命令 d`a。可以看到幾行 printf 語句都被刪除了。
`a 表示做標記的位置
‘a 表示標記所在的行的開始位置
當我們在一篇文章中做了多個標記後,可能我們自己都記不清那些標記都放到了哪裡。這時可以用下面的命令顯示出所有的標記。
:marks
可以看到,除了我們定義的標記,還多了許多系統自訂的標記。他們的含義以後在介紹。 複製命令
Vim 中稱複製操作為 yank。對應的命令是 y。
y 命令與d 命令相似,只是它不刪除所選的地區。