針對高 級使用者的 Vim 編輯實用技巧

大雄45發表於2023-11-21
導讀 毫無疑問, Vim 是一個很強大的文字編輯器。它提供了大量的特性,這意味著學習並記住 Vim 的所有功能實際上是不可能的。但是我們至少可以不斷學習簡單的方法來完成事情,從而隨著時間的增長,我們使用編輯器的經驗將會變得更好。

這篇文章是 Vim 使用者指南系列文章中的一篇:

  • Vim 初學者入門指南
  • Vim 快捷鍵速查表
  • 5 個針對有經驗使用者的 Vim 技巧
  • 3 個針對高 級使用者的 Vim 編輯器實用技巧

請記住,在這篇文章中我們將討論的一些 Vim 編輯器技巧是針對高 級使用者的。
注:如果你是第一次接觸 Vim,你可以首先閱讀我們的入門指南。對於已經使用過 Vim 編輯器的使用者,我確信Vim 快捷鍵速查表將會對你很有幫助。如果你已經是一名有經驗的使用者,你可能對一些針對有經驗使用者的技巧比較感興趣。

請注意文中提到的所有技巧絕大多數都是在簡單、易於理解的程式碼環境中進行闡述的,因為它們在軟體開發中確實很實用。但這並不意味著普通使用者(非程式設計師、沒有把 Vim 作為一般的文字編輯器)在他們的工作中用不到。

1、為檔案設定特定的變數

有時候,在一個特定檔案中,你可能想把輸入的製表符用空格代替,或者想要把原始碼檔案使用兩個空格縮排,即便編輯器的預設縮排是四個空格。

基本上我們在這兒討論對針對檔案的的更改。 Vim 提供的這個特性允許你對一個指定的檔案更改特定的設定。這個特性叫做 “模式行(Modeline)” 。

比如,如果你想把輸入的每一個製表符(Tab)用空格代替,那麼你只需要在檔案的前幾行或最後幾行加入下面的模式行:

# vim: set expandtab:

如果想把預設縮排從 4 個空格變成 2 個空格,可以在原始檔中新增下面的模式行:

// vim: noai:ts=2:sw=2

在使用模式行時,請記住下面這幾個重要的點:

  • 模式行只能新增在檔案中的前五行或者最後五行。
  • 為了使用模式行這個特性,必須在 .vimrc 檔案中新增 :set modeline
  • 在以 root 使用者身份對檔案進行編輯的時候該特性失效。

瞭解更多的資訊,請閱讀該特性的官方文件。

2、 關鍵字補全

當你開始寫的複雜程式碼越來越多或者開始在一個大的原始檔上編輯時,你會遇到一些變數名字。有時,要記住所有的變數名字不太容易,所以當需要輸入變數名字的時候,你通常從已經使用過的地方複製過來。

幸運的是,使用 Vim 你只需要輸入變數的幾個起始字母即可。在’插入模式’中,按Ctrl + n或者Ctrl + p可以得到一個匹配的關鍵詞列表。 Ctrl + n用來插入下一個匹配詞;Ctrl + p給出一個之前匹配的關鍵詞列表。

下圖是該特性的一個展示:

針對<11111111span class='tip' style='color:orange'><111111span class='tip' style='color:orange'>高階<111111/span><11111111/span>使用者的 Vim 編輯實用技巧針對<11111111span class='tip' style='color:orange'><111111span class='tip' style='color:orange'>高階<111111/span><11111111/span>使用者的 Vim 編輯實用技巧

正如上面的螢幕截圖清晰展示的那樣,列表中也會出現其他原始檔中包含的詞。

3、 搜尋

假設你正在除錯程式碼,其中一個需要做的工作是快速檢視一個變數在一個檔案中所有出現的地方。一個常用的方法是退出‘插入模式’,輸入 /[變數名字] ,按回車 ,然後返回‘插入模式’,使用n和p在關鍵字之間導航。

上面講到的這種方法沒毛病,但是還有一種更簡單、更快捷的方法可以來完成這樣的搜尋。使用這種方法,首先你需要退出‘插入模式’,然後把游標移動到你想要搜尋的詞/變數下面,這並不費時。接下來,你只需要按Shift + *即可。

重複這樣做,然後編輯器將會帶你找到在檔案中所有使用了這個詞/變數的地方。

結論

儘管是針對高 級使用者,但文章中討論的這些技巧並不難理解,也比較容易使用。如果你具有一定的基礎,那麼你能夠從中獲益很多。不必多說,無論是任何新特性或觀念,你需要勤於練習這些技巧才能夠把它們變成一種習慣。


via: 

作者:  譯者:  校對:

本文由   原創編譯,  榮譽推出


原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2980447/,如需轉載,請註明出處,否則將追究法律責任。

相關文章