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

來源:互聯網
上載者:User

標籤:vi編輯器   編程工具   

vi編輯器對老手而言,最大的優點之一就是有很多選項可以使用,而對於新手而言,這也是它的一大痛點。本章介紹基本的vi文本編輯命令。這一篇文章主要介紹如何移動游標,以及如何增加和更改文本。

之前講過,vi編輯器有兩種模式,命令模式和插入模式。在命令模式中,所輸入的一切都會被vi編輯器當做是輸入的命令,而在插入模式中,所輸入的一切都被當做相應的文本更新到檔案緩衝區中。當開啟vi編輯器時,預設是命令模式,有很多方式可以從命令模式轉化為插入模式,例如輸入 "i" 。如果要從插入模式轉化為命令模式,只需按"ESC"鍵即可。因此如果你不知道當前處於vi的哪種模式,可以先按下ESC鍵回到命令模式。

移動游標:

當需要編輯文本時,首先需要做的可能就是將游標移動到需要編輯的地方。移動游標時首先需要確認你處於vi的命令模式中,移動游標有如下命令:

單一的移動:

h: 向左移動一個字元;

j: 向下移動一行;

k: 向上移動一行;

l: 向右移動一個字元;

雖然可以通過上下左右四個按鍵或者通過"BACKSPACE"和"ENTER"鍵來實現移動,但是這四個命令更為常用,因為它可以使我們的手指不離開鍵盤中心就能完成游標的移動。當往某個方向移動到極限時,就無法繼續移動了。可以在這些移動命令前面加上數字,達到命令重複的功能。例如輸入"4l"就相當於按下了4次l命令,即能直接將游標向右移動四個字元。這種命令重複功能可以給我們更多選擇,並增強命令的功能,應該牢記。

在一行中快速移動的命令有兩個:

0: 移動到行的開頭;

$: 移動到行的尾部;

注意在vi編輯器中,螢幕上可見的一行並不一定就是真正的一行,vi編輯器是以分行符號作為行的結尾,因此可能在螢幕上顯示為多行,但實際上就是一行,如所示,雖然螢幕上看上去佔用三行,但實際就是一行:

可以按照文字區塊來移動,文字區塊可以是單詞,句子或段落。

w: 將游標移動到下一個單詞,其中符號和標點也被認為是一個單詞;

W: 將游標移動到下一個單詞,其中標點和符號不被當成一個單詞;

b: 將游標倒退一個單詞,其中標點和符號被當成一個單詞;

B: 將游標倒退一個單詞,其中標點和符號不被當成一個單詞。

當然這些單詞移動的命令也可以加上數值參數,這樣就能同時移動多個單詞,例如2w,5b等。

可以使用" G "命令直接移動到某個特定的行。直接輸入" G "命令,是移動到檔案的尾部,1G是移動到檔案的第一行,即檔案頂端,而10G就能直接移動到檔案的第十行。

編輯文本:

插入新文本:使用“ i ”命令進行文本的插入,i命令使vi編輯器從命令模式轉化為插入模式,之後輸入的一切都會被當成輸入的文本更新到緩衝區中。" i "命令的細節值得說一下:輸入" i "命令時,游標不移動,在游標之前的位置開始插入文本。

添加文本:添加文本使用" a "命令。a命令和i命令基本類似,只不過在輸入" a "命令時,游標會向後移動一個字元,因此是在原先游標之後輸入文本,因此就被稱為"添加"文本。

更改文本:如果需要更改文本,則需要使用" c "命令。更改命令可以認為是先刪除需要被替換的文本,然後等待你輸入新的文本,輸入的文本的長度沒有要求。使用從c命令時,為了告訴c命令有多少文本需要更改,可以把c命令與游標移動命令一起使用:

cw: 從游標所在位置到該單詞的結尾;

c$: 從游標所在位置到該行結尾,也可以直接使用C命令;

c0: 從游標所在位置到該行開頭;

c2b: 從游標位置往回兩個單詞,等等類似用法;

如果需要修改一整行,可以直接輸入cc命令。無論此時游標在該行的何處,cc命令將直接將一整行文本替換成輸入的新文本。cc命令和上面提到的C命令都是其他命令的簡寫形式。

其實不止c命令,其它如刪除( d )命令,拖曳( y )命令等等命令,都有如下的一般形式: ( command ) ( text object )形式。這裡的command 就是我們的c,d,y等命令,而text object則是游標移動命令,指明command影響的文本範圍。因為游標移動命令可以使用數值參數,因此可以這樣使用 "d2w", 而"2dw"也是完全一樣的效果。

" r "命令可以把一個字元替換為另一個字元。而且替換之後直接是命令列模式,不需要按下ESC鍵從輸入模式回到命令模式。

相對於" r "命令,R命令也可以進行字元的替換,但是" r "鍵一次只能替換一個字元,而按下R鍵後,則會進入覆蓋模式。即你輸入的字元將逐一覆蓋原有的字元,直到按下ESC鍵。但是R命令最多隻能覆蓋一整行。

" s "命令:也是用於字元的替換,它可以指定數值參數,代表替換多少個字元。如果只使用" s "命令,則代表替換當前游標所在的字元。" s "命令首先刪除需要被替換的字元,然後等待插入新的字元,插入完畢後需要手動按下ESC鍵重新回到命令模式。

S命令:S命令直接替換一整行文本,不管當前游標在該行的哪個位置,都直接先將該行刪除。因此S命令等同於cc命令,但和C命令有區別。

更改大小寫: 通過" ~ "命令完成對當前字元的大小寫轉換,即當前如果是大寫,則轉化為小寫,如果當前是小寫,則轉化為大寫。更改之後游標自動移到下一個字元。


本章vi編輯器命令總結:

h,j,k,l,w,b,G,i,a,c,cc,C,r,R,s,S,~。



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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.