學習vi和vim編輯器(3):簡單的文本編輯(2)

接着上一篇文章,繼續講解vi編輯器中一些簡單的文本編輯命令。這一篇文章主要是文本的刪除,複製,移動等命令。

刪除文本:

正如上一篇文章中講過的,對於刪除命令("d")也具有“(command)(TextObject)”的使用形式,其中command代表的是如刪除("d"),替換("c")等命令,而TextObject指的是光標移動命令,代表command影響的文本對象範圍。只要記住了這一點,接下來的刪除命令的組合就不需要記了:

dw:刪除光標所在的位置到該單詞的結尾(w就是光標移動命令中的向後移動一個單詞),注意該命令會將這個單詞之後的空白也刪除;

de: 和dw命令一樣,但是不會刪除單詞之後的空白;

dE: 刪除到包括標點符號在內的單詞結尾;

d$: 刪除光標所在位置到該行結尾處,和D命令效果一樣

d0: 刪除光標所在位置到該行開始處;

dd: 無論當前光標處於該行的哪個位置,都直接刪除一整行;

d命令和光標移動命令的組合不只這麼多,這裏就不一一舉例了,只要理解這種組合的使用形式,就根本不需要記。這裏補充兩個光標移動命令:" e "和" E " ,這兩個命令都將光標移動到單詞結尾,但是" e "命令移動到單詞本身結尾,而" E "命令移動到該單詞的標點符號之後。

如果需要刪除字符,有更簡單的命令,當然這些命令也可以加上數值參數:

x:刪除光標所在的字符;

X: 刪除光標之前的一個字符;

刪除文件時發生的問題:如果誤刪了文本,該如何補救呢?可以使用u命令撤銷上一個命令。但是由於u只會撤銷最近的一個命令,因此u命令恢復只能用在還沒有下達其他編輯命令時。個人覺得書上這裏講的有問題,因爲我連續刪除十行的的時候,然後接着連續按下10個u,依然能恢復到原來的樣子,如下圖所示,是需要刪除的十行:

在連續按下十個" dd "命令時,再接着連續按十個" u "命令進行恢復,依然能恢復到最原始的樣子,所以覺得書上講的有問題,暫時先記錄下來吧。

移動文本:

vi編輯器中移動文本是通過“刪除後再放置文本實現的”,每次需要移動文本塊時,先刪除該文本塊,這樣文本塊的內容就會存儲在特殊的緩衝區中,然後將光標移動到正確的位置,使用放置命令(p)將剛剛刪除的文本放在新的位置,從而實現文本的移動。

p:將緩衝區的文本放在光標之後,如果移動了一行及一行以上的文本,則是放置在光標之後的新的一行,如果移動不到一行,則將移動的文本放置在光標之後的同一行;

P:與p命令類似,只不過是將緩衝區中的文本放置到光標之前;

需要說明的是," p "命令是將剛剛刪除的文本放置到新的位置,所以一定要在做下一個刪除動作前,將目前刪除的本文恢復過來否則如果做了一個影響緩衝區的編輯動作(刪除,拖曳等),那麼當前被刪除的文本就會消失。

類似的,可以通過" xp "命令完成兩個字母的對調。

複製文本:

複製文本是通過兩個命令" y "(拖曳)和" p "(放置)來實現的。" y "命令也具有(command)(TextObject)的使用形式,因此可以將拖曳命令和光標移動命令進行組合使用,從而指定需要拖曳的文本範圍。這裏就不再列出拖曳命令和光標移動命令的組合了,但是有個特殊情況," Y "命令等同於" yy "命令,都表示拖曳一整行(而在刪除,替換命令中,D等同於d$,C等同於c$)。

拖曳命令和刪除命令共用一個緩衝區,所以每一個新的刪除或拖曳命令都會覆蓋緩衝區中的內容。

重複:

重複命令爲“.”,直接重複上一個命令。

撤銷命令:

前面提過,當出現錯誤操作時,可以使用" u "命令撤銷上一個操作。U "命令可以撤銷所有對同一行的編輯動作,但是需要光標還在這一行,一旦光標離開了這一行,就無法使用U命令對原先的這一行進行恢復了。

更多插入文本的方法:

上一篇文章已經講了" i "和" a "兩個命令來插入文本,其實還有多個插入文本的命令:

A: 在一行的結尾處添加文本;

I:在一行的開頭處添加文本;

o:在光標所在位置的下一行添加新的一行;

O:在光標所在位置的上一行添加新的一行;

而且之前講過的所有插入命令中,除了o與O命令,都可以接受數值參數。例如" 50i*ESC "就可以直接插入50個" * "字符," 10a*-ESC "就可以直接添加10個" *- "字符對," 2r* "可以直接將當前光標之後的兩個字符替換爲兩個" * "。如下圖所示:按鍵順序爲" 50,i,*,ESC ",則出現了50個" * ",感覺並不是馬上就出來了,要等將近1秒鐘:

用J命令合併兩行,如果在J命令前面加上數值參數,則可以指定需要合併的行數。


本章vi編輯器命令總結:

d,D,dd,e,E,p,y,Y,yy,.,u,U,A,I,o,O,J。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章