從 0 開始學(xué)習(xí) Linux 系列之「04.安裝 4 個必備的 vim 插件」

vim

版權(quán)聲明:本文為 cdeveloper 原創(chuàng)文章笛臣,可以隨意轉(zhuǎn)載,但必須在明確位置注明出處隧饼!

讀這篇博客你能學(xué)到些什么沈堡?

這篇博客主要介紹 vim 常用插件的安裝配置方法,你可以學(xué)到下面這些內(nèi)容

  1. 掌握 vim 安裝插件的方法燕雁,即使系統(tǒng)不同诞丽,也能有把握安裝成功
  2. 掌握常用 vim 插件的配置和使用方法
  3. 通過本篇博客學(xué)會類比,掌握解決問題的有效方法

我最想教你的是如何去思考拐格,遇到問題如何使用「英文搜索 + Google + stackoverflow + GitHub + 官網(wǎng)」自己去解決的能力僧免。我希望當(dāng)你看完我的文章,以后再遇到問題的時候捏浊,能夠首先嘗試自己解決懂衩,以此形成一套自己的方法,這才是最重要的

當(dāng)然浊洞,這篇文章介紹的 vim 插件安裝配置方法也很有用牵敷,也要學(xué)會,下面正式開始沛申,別有壓力劣领,我的方法很簡單姐军。

為何需要安裝 vim 插件铁材?

一句話:既能提高你的編程效率,也能提高你的逼格奕锌!心動了嗎著觉,心動不如行動哦,看完之后一定要去實踐惊暴。

簡單的安裝方法 Vundle

我使用的非常簡單的 Vundle 來管理 vim 的插件饼丘,首先我們先來安裝 Vundle。在 Linux 下辽话,開源軟件是主流肄鸽,所以我們先到 GitHub 上看看有沒有 Vundle 這個東西,經(jīng)過搜索還真找到了(如果沒有找到油啤,我會去 Google 上搜索 How to install Vundle to Linux):

Vundle 地址:https://github.com/VundleVim/Vundle.vim

我在它的主頁上看到了官方的英文安裝文檔典徘,因為我平常經(jīng)常閱讀英文文檔,所以很容易就安裝完成了益咬,你也可以先嘗試自己安裝逮诲,下面是我根據(jù)官方文檔總結(jié)的安裝方法(其實就是翻譯一下):

1.如果你沒有安裝 git,先安裝它:

sudo apt-get install git

2.使用 git 安裝 Vundle 到 ~/.vim/bundle/Vundle.vim 目錄下:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

3.添加官方文檔提供的配置信息到 ~/.vimrc 中:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
...

配置不止這些幽告,后面還有很多梅鹦,這里就不列出來了,你只需要將官方文檔提供的配置信息復(fù)制到你的 ~/.vimrc 中即可冗锁,原理不要求了解齐唆。

4.打開 vim,第一次安裝默認插件:

# 只在終端鍵入 vim冻河,后面什么都不加
vim
# 然后鍵入下面的命令
:PluginInstall

# 之后等待安裝完成箍邮,[ :q ] 來退出即可

只需要這簡單的 4 步即可,通過安裝 Vundle芋绸,我想讓你知道一個安裝軟件的思路:就是去看軟件的官方安裝文檔媒殉。因為,所有博客的安裝方法幾乎都是參考官網(wǎng)的摔敛,我的也不例外廷蓉,但是官方文檔一般都是英文的,這就是為什么你要學(xué)好英語的原因。

需要安裝的 4 個常用插件

下面這 4 個插件是我平常比較常用的桃犬,這里推薦給大家刹悴。

1. tagbar

這個插件可以瀏覽當(dāng)前文件的標(biāo)簽,地址在 GitHub 上:tagbar攒暇,效果如下:

tagbar.png

2. nerdtree

這個插件可以瀏覽當(dāng)前文件所在的目錄土匀,地址在 GitHub 上:nerdtree,效果如下:

nerdtree.png

3. vim-airline

這個插件可以使得你的 vim 狀態(tài)欄更高逼格形用,同時也提供一些優(yōu)秀的顯示功能就轧,地址在 GitHub 上:vim-airline,效果如下(官方的圖):

airline

4. minibufexpl

這個插件可以允許多個代碼窗口切換或分屏使用田度,地址在 GitHub 上:minibufexpl妒御,效果如下(官方的圖):

minibuf

下面介紹安裝和配置方法。

安裝和配置方法

安裝:因為我們使用 Vundle 來管理插件镇饺,這種方法安裝插件比較簡單乎莉,只需要在 ~/.vimrc 文件中加上配置信息,然后打開 vim奸笤,鍵入 :PluginInstall 來等待安裝完成即可惋啃。

配置所有的插件配置信息都可以自定義我是在每個插件的官方文檔上學(xué)到如何配置插件的监右,我建議你也使用這種方法边灭,可以提高你的學(xué)習(xí)能力和閱讀英文文檔的能力,例如 tagbar 的官方文檔秸侣,不要怕看不懂存筏,你不嘗試看,永遠都看不懂味榛。

注意我建議你安裝一個椭坚,配置一個,然后立刻學(xué)會使用這個插件搏色,不要一下全部安裝善茎,結(jié)果不會使用搞的一團糟...

下面是具體的安裝配置過程。

1.安裝 tagbar 插件

1.該插件需要先安裝 ctags

sudo apt-get install ctags

2.添加插件和其配置信息到 ~/.vimrc

# ~/.vimrc
...
# 添加 tagbar 插件
Plugin 'majutsushi/tagbar'

# 配置 tagbar 插件
let g:tagbar_ctags_bin='ctags'     "ctags 程序的路徑
let g:tagbar_width=30              "窗口寬度設(shè)置為 30
let g:tagbar_left=1                "設(shè)置在 vim 左邊顯示
let g:tagbar_map_openfold = "zv"   "按 zv 組合鍵打開標(biāo)簽频轿,默認 zc 關(guān)閉標(biāo)簽

"如果是 C 語言的程序的話垂涯,tagbar 自動開啟
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen() 

"我設(shè)置 F2 為打開或者關(guān)閉的快捷鍵,根據(jù)你的習(xí)慣更改
nnoremap <silent> <F2> :TagbarToggle<CR>
...

根據(jù)我的配置航邢,tagbar 基本使用方法如下:

  1. 「上下方向健」移動光標(biāo)
  2. 「zc」 關(guān)閉標(biāo)簽耕赘,「zv」 打開標(biāo)簽
  3. 按「空格」在狀態(tài)欄顯示當(dāng)前標(biāo)簽的聲明
  4. 按 「p」定位到該標(biāo)簽的代碼處,但不移動焦點
  5. 「回車」移動焦點到當(dāng)前標(biāo)簽所在的代碼處

其他用法膳殷,參考 tagbar 官方文檔操骡。

2.安裝 nerdtree 插件

這個插件安裝比較簡單,直接添加并配置即可,這些配置信息都是我從 nerdtree 的官方文檔上根據(jù)自己的需求復(fù)制的册招,你可能說有些配置好復(fù)雜啊岔激,我不懂原理怎么辦?其實我也不懂是掰,我也不需要懂虑鼎,我的目的是使用插件,而不是開發(fā)插件键痛,要搞清楚初衷哦炫彩。

# ~/.vimrc
...
# 添加 nerdtree 插件
Plugin 'scrooloose/nerdtree'

# 配置 nerdtree 插件,
let NERDTreeWinPos='right'             "設(shè)置在 vim 右側(cè)顯示
let NERDTreeWinSize=30                 "設(shè)置寬度為 30            
let g:NERDTreeDirArrowExpandable = '?'
let g:NERDTreeDirArrowCollapsible = '?'

autocmd vimenter * NERDTree

wincmd w

autocmd VimEnter * wincmd w

autocmd StdinReadPre * let s:std_in=1

autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif

autocmd StdinReadPre * let s:std_in=1

autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

" 我設(shè)置 F3 為打開或者關(guān)閉的快捷鍵散休,你可以自定義
map <F3> :NERDTreeToggle<CR>
...

根據(jù)我的配置媒楼,nerdtree 基本使用方法如下:

  1. 「上下方向鍵」移動光標(biāo)
  2. 「回車」打開新的文件或目錄

詳細用法,參考 nerdtree 官方文檔戚丸。

3.安裝 vim-airline 插件

這個插件的安裝非常簡單,也不需要很多的配置扔嵌。

# 安裝 vim-airline
Plugin 'bling/vim-airline'

# 配置
set laststatus=2

這個插件主要起指示作用餐蔬,基本不需要主動去操作衣摩,詳細的介紹參考 vim-airline 官方文檔

4.安裝 minibufexpl 插件

安裝完這個插件,我們可以使用 Crtl + 方向鍵 來在各個窗口之間相互切換,非常的方便店诗。

# 安裝插件
Plugin 'fholgado/minibufexpl.vim'

# 配置插件信息,官方文檔提供配置信息
let g:miniBufExplMapWindowNavVim = 1   
let g:miniBufExplMapWindowNavArrows = 1   
let g:miniBufExplMapCTabSwitchBufs = 1   
let g:miniBufExplModSelTarget = 1  
let g:miniBufExplMoreThanOne=0

# 注意:這里設(shè)置使用 Ctrl + 上下左右來切換窗口余赢,請查看官方文檔來自定義
noremap <C-Down>  <C-W>j
noremap <C-Up>    <C-W>k
noremap <C-Left>  <C-W>h
noremap <C-Right> <C-W>l

map <T> :MBEbp<CR>
map <R> :MBEbn<CR>

根據(jù)我的配置宿稀,基本使用方法如下:

  1. 「上下左右方向鍵」來切換窗口
  2. 切換到 minibufexpl 頂部狀態(tài)欄,按「左右方向鍵」來選擇窗口嵌洼,「回車」打開并覆蓋當(dāng)前窗口案疲,「s」分割一個新的窗口

詳細用法,參考 minibufexpl 官方文檔麻养。

安裝遇到問題怎么辦褐啡?

因為大家的機器配置不同,可能在我的電腦上安裝沒有問題鳖昌,但是到別的電腦上就有問題了备畦。如果你遇到問題,請自己嘗試用 「英文搜索 + Google + stackoverflow + GitHub + 官方文檔」的方式自己解決许昨,一方面是因為一般 90% 的問題都有很好的解決方案懂盐,因為你遇到的問題別人之前就遇到過了,并且已經(jīng)有了正確的答案糕档,另一方面是因為別人也沒有義務(wù)來幫助你啊莉恼,別人也有事情要忙的,除非你給 Ta 些費用。

我平常遇到問題类垫,除非上面這種方法解決不了司光,否則我基本不會問別人(如果這種方法都解決不了,你問的人很有可能也不會的~)悉患。所以残家,當(dāng)你習(xí)慣了這種解決問題的方法,請不要太感謝我售躁,如果你現(xiàn)在還不習(xí)慣坞淮,那么可能你的閱讀英文文檔的能力還要加強,沒關(guān)系陪捷,從現(xiàn)在開始培養(yǎng)吧回窘。

完整的 .vimrc 配置文件

這是我的 ~/.vimrc 文件的內(nèi)容,你可以下載來參考市袖。

總結(jié)

這篇文章只介紹了 4 個常用的插件啡直,還有 2 個常用插件我沒有寫出來,留作后面介紹苍碟,主要是防止內(nèi)容過多酒觅,另外也因為那 2 個插件安裝稍微有點麻煩,這兩個插件分別是:

  1. 號稱 vim 史上最難安裝的代碼自動補全插件:YouCompleteMe微峰,其實掌握了方法也不難舷丹。
  2. vim 的 MarkDown 插件,我就是用這個 vim 插件來寫博客的蜓肆,逼格很高颜凯!

另外,讀完之后仗扬,如果你還沒有實踐的話症概,我并不希望你記住具體的步驟,我希望你記住的是安裝這些插件的思路:GitHub + 官方文檔厉颤。作為類比穴豫,還是那句話,我希望你在以后遇到問題時能借助 「英文搜索 + Google + stackoverflow + GitHub + 官方文檔」的方式先嘗試自己解決逼友,我最希望的是你在看我文章的過程中總結(jié)一套適合自己的學(xué)習(xí)和解決問題的方法精肃,因為實際的工作就是以解決問題為驅(qū)動的,希望你能重視這一點帜乞。

最后司抱,感謝你在百忙之中的閱讀,我們下次再見 :)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末黎烈,一起剝皮案震驚了整個濱河市习柠,隨后出現(xiàn)的幾起案子匀谣,更是在濱河造成了極大的恐慌,老刑警劉巖资溃,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件武翎,死亡現(xiàn)場離奇詭異,居然都是意外死亡溶锭,警方通過查閱死者的電腦和手機宝恶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趴捅,“玉大人垫毙,你說我怎么就攤上這事」鞍螅” “怎么了综芥?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長猎拨。 經(jīng)常有香客問我膀藐,道長,這世上最難降的妖魔是什么迟几? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任消请,我火速辦了婚禮,結(jié)果婚禮上类腮,老公的妹妹穿的比我還像新娘。我一直安慰自己蛉加,他們只是感情好蚜枢,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著针饥,像睡著了一般厂抽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丁眼,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天筷凤,我揣著相機與錄音,去河邊找鬼苞七。 笑死藐守,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蹂风。 我是一名探鬼主播卢厂,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惠啄!你這毒婦竟也來了慎恒?” 一聲冷哼從身側(cè)響起任内,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎融柬,沒想到半個月后死嗦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡粒氧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年越除,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靠欢。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡廊敌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出门怪,到底是詐尸還是另有隱情骡澈,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布掷空,位于F島的核電站肋殴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏坦弟。R本人自食惡果不足惜护锤,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酿傍。 院中可真熱鬧烙懦,春花似錦、人聲如沸赤炒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莺褒。三九已至掩缓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遵岩,已是汗流浹背你辣。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尘执,地道東北人舍哄。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像正卧,于是被迫代替她去往敵國和親蠢熄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容