到目前為止,在本系列 vim 外掛文章中,我們介紹了使用 Pathogen 外掛管理包安裝基本的 vim 外掛,也提及了另外三個外掛:Tagbar、delimitMate 和 Syntastic。現在,在最後一部分,我們將介紹另一個十分有用的外掛 a.vim。
請注意所有本篇教程所提及的例子、命令和指導,它們已經在 Ubuntu 16.04 測試完畢,vim 使用版本為 vim7.4 (LCTT 譯註:Ubuntu 16.04 的預設版本)。
A.vim
如果你一直用像 C、C++ 這樣的語言進行開發工作,你一定有這樣的感觸:我特麼已經數不清我在標頭檔案和原始碼之間切換過多少次了。我想說的是,確實,這個操作十分基本,十分頻繁。
儘管使用基於 GUI(圖形介面)的 IDE(整合開發環境)非常容易通過滑鼠的雙擊切換檔案,但是如果你是資深 vim 粉,習慣用命令工作就有點尷尬了。但是不要害怕,我有祕籍--外掛 a.vim。它可以讓你解決尷尬,專治各種檔案切換。
在我們介紹這個神器用法之前,我必須強調一點:這個外掛的安裝過程和我們其他篇介紹的不太一樣,步驟如下:
- 首先,你需要下載兩個檔案(
a.vim
和alternate.txt
),你可以在這裡找到它們。 - 接下來,建立如下目錄:
~/.vim/bundle/avim
、~/.vim/bundle/avim/doc
、~/.vim/bundle/avim/plugin
和~/.vim/bundle/autoload
。 - 建立好目錄之後,將
a.vim
放到~/.vim/bundle/avim/plugin
和~/.vim/bundle/autoload
,以及將alternate.txt
放到~/.vim/bundle/avim/doc
。
就是這樣,如果上述步驟被你成功完成,你的系統就會安裝好這個外掛。
使用這個外掛十分簡單,你僅僅需要執行這個命令 :A
如果目前的檔案是原始檔(比如 test.c
),這個神器就會幫你開啟 test.c
對應的標頭檔案(test.h
),反之亦然。
當然咯,不是每個檔案對應的標頭檔案都存在。這種情況下,如果那你執行 :A
命令,神器就會為你新建一個檔案。比如,如果 test.h
不存在,那麼執行此命令就會幫你建立一個 test.h
,然後開啟它。
如果你不想要神器開啟此功能,你可以在你的家目錄的隱藏檔案 .vimrc
中寫入 g:alternateNonDefaultAlternate
變數,並且賦給它一個非零值即可。
還有一種情況也很普遍,你需要開啟的檔案並非是當前原始碼的標頭檔案。比如你目前在 test.c
你想開啟 men.h
這個標頭檔案,那麼你可以輸入這個命令 :IH
,毋需贅言,你肯定要在後面輸入你要開啟的的檔名稱 。
目前為止,我們討論的功能都僅限於你當前檔案和要操作的檔案都在同一個目錄去實現。但是,你也知道,我們還有特殊情況,我是說,許多專案中標頭檔案與對應的原始檔並不一定在同一目錄下。
為了搞定這個問題,你要使用這個 g:alternateSearchPath
這個變數。官方文件是這麼解釋的:
這個外掛可以讓使用者配置它的搜尋原始檔和標頭檔案的搜尋路徑。這個搜尋路徑可以通過設定
g:alternateSearchPath
這個變數的值指定。預設的設定如下:
1 g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc'使用這個程式碼表示神器將搜尋
../source
、../src
、../include
和../inc
下所有與目標檔案相關的檔案。g:alternateSearchPath
變數的值由字首和路徑組成,每個單元用逗號隔開。sfr
字首是指後面的路徑是相對於目前檔案的,wdr
字首是指目錄是相對於目前的工作目錄,abs
是指路徑是絕對路徑。如果不指定字首,那麼預設為sfr
。
如果我們前文所提及的特性就能讓你覺得很炫酷,那我不得不告訴你,這才哪跟哪。還有一個十分有用的功能是分割 Vim 螢幕,這樣你就可以同時看到標頭檔案和相應的原始檔。
哦,還有,你還可以選擇垂直或者水平分割。全憑你心意。使用 :AS
命令可以水平分割,使用 :AV
可以垂直分割。
使用 :A
命令在已經開啟的檔案中切換。
這個外掛還可以讓你在同一個 Vim 視窗中不同選項卡中開啟多個相應的檔案,你鍵入這個命令 :AT
。
當然,你可以用這些命令 :AV
、:AS
和 :AT
,也可以使用這些命令 :IHV
、:IHS
和 :IHT
。
最後
還有許多和程式設計相關的 Vim 的外掛,我們在這個三篇系列主要討論的是,如果你為你的軟體開發工作安裝了合適的外掛,你就會明白為什麼 vim 被叫做編輯器之神。
當然,我們在這隻關注程式設計方面,對於那些把 Vim 當做日常文件編輯器的人來說,你也應該瞭解一些 Vim 的外掛,讓你的編輯更好,更高效.我們就改日再談這個問題吧。