跳轉到內容

學習 vi 編輯器/基本任務

來自華夏公益教科書

學習 vi 編輯器: 熟悉基本任務讓您的工作更輕鬆高階任務細節Vi 克隆 (Vim基本導航模式技巧和竅門程式設計師需要了解的有用資訊增強 VimWindows 上的 VimVimL 指令碼語言, Vile, BB vi)vi 參考

現在我們知道了如何呼叫編輯器並退出編輯器,我們可以開始熟悉如何使用編輯器。

或者,您可以使用 ViM 導師,它包含在許多現代 vim 發行版中。它包含與以下文字基本相同的資訊。您可以在 shell 中輸入vimtutor來呼叫導師。

Vi 是一個模式編輯器

[編輯 | 編輯原始碼]

vi 編輯器可以做兩件事

  • 接受命令,例如刪除一行
  • 接受您輸入的文字

在 vi 編輯器中,每個任務都是透過將編輯器置於特定的操作模式(通常稱為模式)來實現的。當您想要給 vi 一個命令時,您進入命令模式,當您想要輸入文字時,您進入插入模式。我們將在下面介紹如何做到這一點。

在開始寫作之前設定正確的模式很重要,但這很容易做到。當您第一次啟動 vi 時,它會自動處於命令模式。

輸入文字

[編輯 | 編輯原始碼]

輸入文字是編輯器可以執行的最基本的任務!從命令模式(編輯器啟動時的模式)開始,按i進入插入模式,您就可以開始輸入。您可以使用退格鍵來糾正您犯的錯誤。如果您在輸入了幾句話後犯了一個錯誤,請暫時保留這些錯誤,我們將在後面介紹如何糾正它們。輸入完畢後,要退出插入模式並返回到命令模式,請按鍵盤上的 Escape 鍵(或鍵入 Control-[)。

讓我們做一個練習

  1. 啟動編輯器。
  2. 進入插入模式。
  3. 輸入一些文字
  4. 返回到命令模式。
  5. 退出編輯器。

解決方案

[編輯 | 編輯原始碼]
  1. 我們可以像上一節一樣啟動編輯器。
  2. 由於編輯器從命令模式開始,因此我們必須按下 <i> 鍵才能開始輸入。
  3. 您可以自己編造一些文字!
  4. 按下 <Escape> 鍵。
  5. 如果要退出編輯器,您需要處於命令模式。由於按下 Escape 會使您處於命令模式,因此您可以使用上一節中的方法退出:鍵入 :q!

命令模式

[編輯 | 編輯原始碼]

命令模式允許您在 vi 中執行許多有用的任務。

四處移動

[編輯 | 編輯原始碼]

假設您已經寫了一段時間,忘記了一些東西。按下 <Backspace>擦除先前的工作不是最好的解決方案!我們希望能夠在文件中自由移動,移動游標。


我們可以在編輯器中移動,首先進入命令模式,然後使用 <h><j><k><l> 鍵。

注意
您的箭頭鍵可能已設定為工作,您可以使用它們,但為了熟練掌握和以後的更高階工作,您應該學習使用字母鍵。
  • 在命令模式下,<h> 鍵將游標向移動一個字元。
  • 在命令模式下,<j> 鍵將游標向下移動一個字元。
  • 在命令模式下,<k> 鍵將游標向上移動一個字元。
  • 在命令模式下,<l> 鍵將游標向移動一個字元。

如果您記不住這些,請記住 <h> 在最左邊,字母 <j> 在行的下方,字母 <k> 在行的上方,<l> 鍵在最右邊。(如果您眯著眼睛看,J 也像一個指向下方的箭頭。)

使用這些鍵移動游標後,您可以再次按 <i> 進入插入模式。當您這樣做時,您將在游標處插入文字,將文字插入到游標左側的字元和游標的當前位置之間。讓我們在一個練習中練習一下。


您可以用自己的句子重複此練習。在繼續之前,請確保您能夠熟練地完成此練習。

  1. 啟動編輯器。
  2. 輸入文字:“The quick fox jumps over the dog”
  3. 在“quick”和“fox”之間插入單詞“brown”。
  4. 在“the”和“dog”之間插入單詞“lazy”。
  5. 退出編輯器。

解決方案

[編輯 | 編輯原始碼]
  1. 使用上一節中的方法。
  2. 按下 <i>,然後正常輸入The quick fox jumps over the dog
  3. 按下 <Escape>,然後按下 <h> 直到游標位於“fox”的字母“f”處。按下 <i>,然後輸入“brown ”。
  4. 按下 <Escape>,然後按下 <l> 直到游標位於字母“d”處。按下 <i>,然後輸入“lazy ”。
  5. 再次按下 <Escape>,然後鍵入 :quit!.

更多關於移動

[編輯 | 編輯原始碼]

使用 hjkl 可以,但 vi 不止理解行和列。以下是一些按文字物件移動的命令

  • w 向前移動到下一個單詞的開頭。
  • b 向後移動到上一個單詞的開頭。
  • () 按句子移動,可以向前或向後。
  • {} 按段落移動。

刪除東西

[編輯 | 編輯原始碼]

如果你在寫了幾行程式碼後發現錯誤,比如一直按 Backspace 鍵刪除錯誤並重新開始,這並不總是最好的解決方案。我們需要一種方法來刪除編輯過程中出現的錯誤。

vi 提供了幾種刪除文字的方法,具體取決於你要刪除多少內容。現在你已經熟悉瞭如何移動游標,一旦你將游標移動到錯誤位置

  • x 鍵刪除一個字元
  • 按下 dw 刪除一個單詞。
  • 按下 dd 刪除一行

從現在開始,我們將省略啟動和退出編輯器的步驟——你應該已經熟悉這些步驟了。

  1. 輸入以下文字:Sad I been here, I wouldnt ever ever leave.
  2. 將單詞 "Sad" 更改為 "Had"。
  3. 在 "wouldn" 後新增一個撇號。
  4. 刪除多餘的 "ever"。
  5. 刪除整行。

解決方案

[編輯 | 編輯原始碼]
  1. 正常輸入文字。(你應該已經熟悉了進入和退出插入模式。)
  2. 進入命令模式,使用 h 將游標移動到行首,然後按下 x 刪除 "S"。按下 i 進入插入模式,插入 "H",然後按下 Escape 退出插入模式。
  3. 現在將游標定位在 t 上,按下 i 進入插入模式,輸入 " ' "。按下 Escape 退出插入模式。
  4. 將游標定位在單詞 "ever" 中的第一個 "e" 上(選擇你喜歡的一個)。輸入 dw 刪除該單詞。
  5. 輸入 dd 刪除整行。
[編輯 | 編輯原始碼]


學習 vi 編輯器: 熟悉基本任務讓您的工作更輕鬆高階任務細節Vi 克隆 (Vim基本導航模式技巧和竅門程式設計師需要了解的有用資訊增強 VimWindows 上的 VimVimL 指令碼語言, Vile, BB vi)vi 參考

華夏公益教科書