閱讀889 返回首頁    go 阿裏雲 go 技術社區[雲棲]


5 個針對有經驗用戶的 Vim 實用技巧

Vim 編輯器提供了很多的特性,要想全部掌握它們很困難。然而,花費更多的時間在命令行編輯器上總是有幫助的。毫無疑問,和 Vim 用戶們進行交流能夠讓你更快地學習新穎有創造性的東西。

注: 本文中用到的例子,使用的 Vim 版本是 7.4.52 。

1、 同時編輯多個文件

如果你是一名軟件開發者或者把 Vim 作為主要的編輯器,那麼可能很多時候你需要同時編輯多個文件。“緊跟following”是在同時編輯多個文件時可用的實用技巧。

不需要在多個 shell 界麵中打開多個文件,你可以通過把多個文件的文件名作為 Vim 命令的參數從而在一個 shell 界麵中打開多個文件。比如:


  1. vim 文件1 文件2 文件3

第一個文件(例子中的文件1)將成為當前文件並被讀入緩衝區。

在編輯器中,使用 :next 或 :n 命令來移動到下一個文件,使用 :prev 或 :N 命令返回上一個文件。如果想直接切換到第一個文件或最後一個文件,使用 :bf 和 :bl 命令。特別地,如果想打開另外的文件並編輯,使用 :e 命令並把文件名作為參數(如果該文件不在當前目錄中則需要完整路徑做為參數)。

任何時候如果需要列出當前打開的所有文件,使用 :ls 命令。看下麵展示的屏幕截圖。

注意 ”%a” 表示文件在當前活動窗口,而 “#” 表示上一個活動窗口的文件。

2、 通過自動補全節約時間

想節約時間並提高效率嗎?使用縮寫吧。使用它們能夠快速寫出文件中多次出現、複雜冗長的詞。在 Vim 中縮寫命令寫就是 ab 。

比如,當你運行下麵的命令以後:


  1. :ab asap as soon as possible

文件中出現的每一個 asap 都會被自動替換為 as soon as possible ,就像你自己輸入的一樣。

類似地,你可以使用縮寫來更正常見的輸入錯誤。比如,下麵的命令


  1. :ab recieve receive

將會自動更正拚寫錯誤,就像你自己輸入的一樣。如果在一次特殊情況下你想阻止縮寫展開或更正發生,那麼你隻需要在輸入一個單詞的最後一個字母以後按 Ctrl + V ,然後按空格鍵。

如果你想把剛才使用的縮寫保存下來,從而當你下次使用 Vim 編輯器的時候可以再次使用,那麼隻需將完整的 ab 命令(沒有起始的冒號)添加到 /etc/vim/vimrc 文件中。如果想刪除某個縮寫,你可以使用 una 命令。比如: una asap 。

3、 切分窗口便於複製/粘貼

有時,你需要從一個文件將一段代碼或文本的一部分複製到另一個。當使用 GUI(圖形界麵)編輯器的時候,這很容易實現,但是當使用一個命令行編輯器的時候,這就變得比較困難並且很費時間。幸運的是, Vim 提供了一種高效、節約時間的方式來完成這件事。

打開兩個文件中的一個然後切分 Vim 窗口來打開另一個文件。可以通過使用 split 命令並以文件名作為參數來完成這件事。比如:


  1. :split test.c

上麵的命令將分離窗口並打開文件 “test.c”

注意到 split 命令水平分離 Vim 窗口。如果你想垂直分離窗口,那麼你可以使用 vsplit 命令。當同時打開了兩個文件並從一個文件中複製好內容以後,按 Ctrl + W 切換到另一個文件,然後粘貼。

4、 保存一個沒有權限的已編輯文件

有時候當你對一個文件做了大量更改以後才會意識到你對該文件僅有 隻讀 權限。

雖然把文件關閉,獲取權限以後再重新打開是一種解決方法。但是如果你已經做了大量更改,這樣做會很浪費時間,因為在這個過程中所有的更改都會丟失。 Vim 提供了一種方式來處理這種情況:你可以在編輯器中在保存文件前更改文件權限。命令是:


  1. :w !sudo tee %

這個命令將會向你詢問密碼,就像在命令行中使用 sudo 一樣,然後就能保存更改。

一個相關的技巧:在 Vim 中編輯一個文件的時候,如果想快速進入命令行提示符,可以在編輯器中運行:sh 命令,從而你將進入一個交互的 shell 中。完成以後,運行 exit 命令可以快速回到 Vim 模式中。

5、 在複製/粘貼過程中保持縮進

大多數有經驗的程序員在 Vim 上工作時都會啟用自動縮進。雖然這是一個節約時間的做法,但是在粘貼一段已經縮進了的代碼的時候會產生新的問題。比如,下圖是我把一段已縮進代碼粘貼到一個在自動縮進的 Vim 編輯器中打開的文件中時遇到的問題:

這個問題的解決方法是 pastetoggle 選項。在 /etc/vim/vimrc 文件中加入下麵這行內容:


  1. set pastetoggle=<F2>

然後當你在 插入 模式中準備粘貼代碼前先按 F2 鍵,就不會再出現上圖中的問題,這樣會保留原始的縮進。注意,你可以用其他的任何鍵來代替 F2,如果它已經映射到了別的功能上。

結論

更進一步的提高你的 Vim 編輯器技巧的唯一方法是,在你日複一日的工作中使用命令行編輯器。留意那些耗時多的操作,然後嚐試去尋找是否有編輯器命令可以很快地完成這個操作。

原文發布時間為:2017-01-26

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-27 10:02:03

  上一篇:go  剪切板是一個安全問題 - 在 Linux 中你可以用 xclip 和 cron 修複它
  下一篇:go  3 個針對高級用戶的 Vim 編輯器實用技巧