1. 程式人生 > >史上最簡約的vi教程,10分鐘包教會

史上最簡約的vi教程,10分鐘包教會

從第一次接觸vi/vim到現在已經十幾年了,在這個過程中,來來回回,反反覆覆,學習vi很多次了。

雖然關於vi的使用,我還遠未達到“專家”的水平,但對於vi的使用,我有話說。

1.緣起

vi是一個編輯器,起源於unix,在linux中非常常用。關於vi的使用,網上有大量的教程,但質量良莠不齊,很容易誤導“新手”。本文的價值在於,我走了十幾年的彎路,你可以少走彎路。

每個人學習vi的目的不一樣,學習過程和學習方法也比如不同。一般學習者分如下3種情況:

  • 新手級

    新手要求不高,會用基本操作即可。本文通過10分鐘的學習,就可以達到這個目標。

  • 進階級

    大部分人目前處於這個階段,在本文的最後,將介紹如何從進階級步入專家級。

  • 專家級

    到這個階段,基本上可以做到“信手拈來”,出神入化了。

2.新手學習vi

對於新手入門vi,只要掌握開啟檔案,編輯,儲存。

  • 開啟檔案

    在命令列中 vi filename,就可以開啟檔案進行檢視和編輯。

  • 編輯

    開啟檔案後進行編輯的操作,主要包括“增、刪、改、查”。

    和其他編輯器不同,vi 有Normal模式Insert模式

    在Normal模式下輸入i進入Insert模式,輸入Esc返回Normal模式。(當然有非常多的方法進入編輯模式,如輸入ao等,此處不過多說明)。

    1)增

    確保是在Insert模式下,通過鍵盤輸入內容即可。

    [注意] 如何識別當前是在什麼模式下?狀態列可以看的,或者鍵盤輸入看。

    2)刪

    刪除,跟其他編輯器的操作不同(其他編輯器是先選定,然後Delete、或者Backspace)。

    在vi中的刪除是在Normal模式下,通過 x 刪除一個字元,通過 dd 刪除游標所在行。

    3)改

    所謂“改”,無外乎先刪除,再輸入。我們通過1)和2)組合實現。

    好吧,這裡還是學一點吧: 在Normal模式下輸入cw,可以替換一個“單詞”。

    4)查

    vi開啟的檔案,如果內容非常多,需要查詢,替換的時候,需要用到“查”。

    在Normal模式下,輸入/,後跟需要查詢的內容,然後回車即可。

  • 儲存

    儲存是在命令模式下輸入 :w 即可,退出時命令模式下輸入 :q 。

3.進階學習vi

新手通過步驟2,初步掌握了vi的使用。進階學習,需要掌握(切記下面所有的都是在Normal模式):

  • 初級游標的移動

    你可能會有疑問,新手不需要移動游標?當然需要了,只不過預設通過“上、下、左、右”箭頭移動即可。其實vi中,為了更加高效,是通過 h j k l來移動游標的。

  • 高階游標的移動

    比如數字0移動到行的開頭,$移動到當前行的行尾,^移動到本行第一個非空字元,

  • 各種進入Insert模式的方法

    比如在游標後插入a,在當前行下面新增一行的o,在當前行上面新增一行的shift + o,或者輸入cw替換一個word

  • 查詢和替換

  • 複製、貼上

    複製通過yy,貼上是p

    靈活掌握,比如我們知道dd是刪除當前行,游標定位到目標位置後,接著按鍵p是可以貼上的。

    比如3dd是重複執行dd三次,不一而足。

  • 游標的定位

    :N,比如:100,表示游標定位到第100行。在此,需要思考,總共只有10行,會怎麼樣?

    gg相當於是:1

    G定位到最後一行

  • 區域選擇、塊操作、視覺化選擇

    ......

4.總結

對於新手來說10分鐘入門vi不吃虧,對於已經入門需要進階,請自行學習:

  • Learn Vim Progressively 個人認為這個是有史以來最好的vi教程,沒有之一。

  • 對於新手,也可以通過vimtutor來學習

方法就是,“用”起來就會了。雖然我用的是windows 10系統,我開發中,vs code和IntelliJ IDEA、visual studio都啟用了vi的。

有圖有真相:

加油,我相信你也可以入門,併成為vi專家的!