Linux中國

開發者的實用 Vim 插件(三)

A.vim

如果你一直用像 C、C++ 這樣的語言進行開發工作,你一定有這樣的感觸:我特么已經數不清我在頭文件和源代碼之間切換過多少次了。我想說的是,確實,這個操作十分基本,十分頻繁。

儘管使用基於 GUI(圖形界面)的 IDE(集成開發環境)非常容易通過滑鼠的雙擊切換文件,但是如果你是資深 vim 粉,習慣用命令工作就有點尷尬了。但是不要害怕,我有秘籍--插件 a.vim。它可以讓你解決尷尬,專治各種文件切換。

在我們介紹這個神器用法之前,我必須強調一點:這個插件的安裝過程和我們其他篇介紹的不太一樣,步驟如下:

  • 首先,你需要下載兩個文件(a.vimalternate.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 <filename> ,毋需贅言,你肯定要在後面輸入你要打開的的文件名稱 <filename>

目前為止,我們討論的功能都僅限於你當前文件和要操作的文件都在同一個目錄去實現。但是,你也知道,我們還有特殊情況,我是說,許多項目中頭文件與對應的源文件並不一定在同一目錄下。

為了搞定這個問題,你要使用這個 g:alternateSearchPath 這個變數。官方文檔是這麼解釋的:

這個插件可以讓用戶配置它的搜索源文件和頭文件的搜索路徑。這個搜索路徑可以通過設置 g:alternateSearchPath 這個變數的值指定。默認的設定如下:

g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc' 

使用這個代碼表示神器將搜索 ../source../src../include../inc 下所有與目標文件相關的文件。 g:alternateSearchPath 變數的值由前綴和路徑組成,每個單元用逗號隔開。 sfr 前綴是指後面的路徑是相對於目前文件的,wdr 前綴是指目錄是相對於目前的工作目錄, abs 是指路徑是絕對路徑。如果不指定前綴,那麼默認為 sfr

如果我們前文所提及的特性就能讓你覺得很炫酷,那我不得不告訴你,這才哪跟哪。還有一個十分有用的功能是分割 Vim 屏幕,這樣你就可以同時看到頭文件和相應的源文件。

哦,還有,你還可以選擇垂直或者水平分割。全憑你心意。使用 :AS 命令可以水平分割,使用 :AV 可以垂直分割。

Vim.a vertical split screen

vim.a horizontal split screen

使用 :A 命令在已經打開的文件中切換。

這個插件還可以讓你在同一個 Vim 窗口中不同選項卡中打開多個相應的文件,你鍵入這個命令 :AT

tabs in Vim with a.vim.

當然,你可以用這些命令 :AV:AS:AT,也可以使用這些命令 :IHV:IHS:IHT

最後

還有許多和編程相關的 Vim 的插件,我們在這個三篇系列主要討論的是,如果你為你的軟體開發工作安裝了合適的插件,你就會明白為什麼 vim 被叫做編輯器之神。

當然,我們在這隻關注編程方面,對於那些把 Vim 當做日常文檔編輯器的人來說,你也應該了解一些 Vim 的插件,讓你的編輯更好,更高效.我們就改日再談這個問題吧。

via: https://www.howtoforge.com/tutorial/vim-editor-plugins-for-software-developers-3/

作者:Ansh 譯者:Taylor1024 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國