版權(quán)聲明:本文為 cdeveloper 原創(chuàng)文章,可以隨意轉(zhuǎn)載,但必須在明確位置注明出處!
讀這篇博客你能學(xué)到些什么?
這篇博客主要介紹 vim 常用插件的安裝配置方法,你可以學(xué)到下面這些內(nèi)容:
- 掌握 vim 安裝插件的方法,即使系統(tǒng)不同,也能有把握安裝成功
- 掌握常用 vim 插件的配置和使用方法
- 通過(guò)本篇博客學(xué)會(huì)類(lèi)比,掌握解決問(wèn)題的有效方法
我最想教你的是如何去思考,遇到問(wèn)題如何使用「英文搜索 + Google + stackoverflow + GitHub + 官網(wǎng)」自己去解決的能力。我希望當(dāng)你看完我的文章,以后再遇到問(wèn)題的時(shí)候,能夠首先嘗試自己解決,以此形成一套自己的方法,這才是最重要的!
當(dāng)然,這篇文章介紹的 vim 插件安裝配置方法也很有用,也要學(xué)會(huì),下面正式開(kāi)始,別有壓力,我的方法很簡(jiǎn)單。
為何需要安裝 vim 插件?
一句話(huà):既能提高你的編程效率,也能提高你的逼格!心動(dòng)了嗎,心動(dòng)不如行動(dòng)哦,看完之后一定要去實(shí)踐。
簡(jiǎn)單的安裝方法 Vundle
我使用的非常簡(jiǎn)單的 Vundle
來(lái)管理 vim 的插件,首先我們先來(lái)安裝 Vundle。在 Linux 下,開(kāi)源軟件是主流,所以我們先到 GitHub
上看看有沒(méi)有 Vundle 這個(gè)東西,經(jīng)過(guò)搜索還真找到了(如果沒(méi)有找到,我會(huì)去 Google 上搜索 How to install Vundle to Linux
):
Vundle 地址:https://github.com/VundleVim/Vundle.vim
我在它的主頁(yè)上看到了官方的英文安裝文檔,因?yàn)槲移匠=?jīng)常閱讀英文文檔,所以很容易就安裝完成了,你也可以先嘗試自己安裝,下面是我根據(jù)官方文檔總結(jié)的安裝方法(其實(shí)就是翻譯一下):
1.如果你沒(méi)有安裝 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'
...
配置不止這些,后面還有很多,這里就不列出來(lái)了,你只需要將官方文檔提供的配置信息復(fù)制到你的 ~/.vimrc
中即可,原理不要求了解。
4.打開(kāi) vim,第一次安裝默認(rèn)插件:
# 只在終端鍵入 vim,后面什么都不加
vim
# 然后鍵入下面的命令
:PluginInstall
# 之后等待安裝完成,[ :q ] 來(lái)退出即可
只需要這簡(jiǎn)單的 4 步即可,通過(guò)安裝 Vundle,我想讓你知道一個(gè)安裝軟件的思路:就是去看軟件的官方安裝文檔。因?yàn)椋胁┛偷陌惭b方法幾乎都是參考官網(wǎng)的,我的也不例外,但是官方文檔一般都是英文的,這就是為什么你要學(xué)好英語(yǔ)的原因。
需要安裝的 4 個(gè)常用插件
下面這 4 個(gè)插件是我平常比較常用的,這里推薦給大家。
1. tagbar
這個(gè)插件可以瀏覽當(dāng)前文件的標(biāo)簽,地址在 GitHub 上:tagbar,效果如下:
2. nerdtree
這個(gè)插件可以瀏覽當(dāng)前文件所在的目錄,地址在 GitHub 上:nerdtree,效果如下:
3. vim-airline
這個(gè)插件可以使得你的 vim 狀態(tài)欄更高逼格,同時(shí)也提供一些優(yōu)秀的顯示功能,地址在 GitHub 上:vim-airline,效果如下(官方的圖):
4. minibufexpl
這個(gè)插件可以允許多個(gè)代碼窗口切換或分屏使用,地址在 GitHub 上:minibufexpl,效果如下(官方的圖):
下面介紹安裝和配置方法。
安裝和配置方法
安裝:因?yàn)槲覀兪褂?Vundle 來(lái)管理插件,這種方法安裝插件比較簡(jiǎn)單,只需要在 ~/.vimrc
文件中加上配置信息,然后打開(kāi) vim,鍵入 :PluginInstall
來(lái)等待安裝完成即可。
配置:所有的插件配置信息都可以自定義,我是在每個(gè)插件的官方文檔上學(xué)到如何配置插件的,我建議你也使用這種方法,可以提高你的學(xué)習(xí)能力和閱讀英文文檔的能力,例如 tagbar 的官方文檔,不要怕看不懂,你不嘗試看,永遠(yuǎn)都看不懂。
注意:我建議你安裝一個(gè),配置一個(gè),然后立刻學(xué)會(huì)使用這個(gè)插件,不要一下全部安裝,結(jié)果不會(huì)使用搞的一團(tuán)糟...
下面是具體的安裝配置過(guò)程。
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 組合鍵打開(kāi)標(biāo)簽,默認(rèn) zc 關(guān)閉標(biāo)簽
"如果是 C 語(yǔ)言的程序的話(huà),tagbar 自動(dòng)開(kāi)啟
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()
"我設(shè)置 F2 為打開(kāi)或者關(guān)閉的快捷鍵,根據(jù)你的習(xí)慣更改
nnoremap <silent> <F2> :TagbarToggle<CR>
...
根據(jù)我的配置,tagbar 基本使用方法如下:
- 「上下方向健」移動(dòng)光標(biāo)
- 「zc」 關(guān)閉標(biāo)簽,「zv」 打開(kāi)標(biāo)簽
- 按「空格」在狀態(tài)欄顯示當(dāng)前標(biāo)簽的聲明
- 按 「p」定位到該標(biāo)簽的代碼處,但不移動(dòng)焦點(diǎn)
- 「回車(chē)」移動(dòng)焦點(diǎn)到當(dāng)前標(biāo)簽所在的代碼處
其他用法,參考 tagbar 官方文檔。
2.安裝 nerdtree 插件
這個(gè)插件安裝比較簡(jiǎn)單,直接添加并配置即可,這些配置信息都是我從 nerdtree 的官方文檔上根據(jù)自己的需求復(fù)制的,你可能說(shuō)有些配置好復(fù)雜啊,我不懂原理怎么辦?其實(shí)我也不懂,我也不需要懂,我的目的是使用插件,而不是開(kāi)發(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 為打開(kāi)或者關(guān)閉的快捷鍵,你可以自定義
map <F3> :NERDTreeToggle<CR>
...
根據(jù)我的配置,nerdtree 基本使用方法如下:
- 「上下方向鍵」移動(dòng)光標(biāo)
- 「回車(chē)」打開(kāi)新的文件或目錄
詳細(xì)用法,參考 nerdtree 官方文檔。
3.安裝 vim-airline 插件
這個(gè)插件的安裝非常簡(jiǎn)單,也不需要很多的配置。
# 安裝 vim-airline
Plugin 'bling/vim-airline'
# 配置
set laststatus=2
這個(gè)插件主要起指示作用,基本不需要主動(dòng)去操作,詳細(xì)的介紹參考 vim-airline 官方文檔
4.安裝 minibufexpl 插件
安裝完這個(gè)插件,我們可以使用 Crtl + 方向鍵
來(lái)在各個(gè)窗口之間相互切換,非常的方便。
# 安裝插件
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 + 上下左右來(lái)切換窗口,請(qǐng)查看官方文檔來(lái)自定義
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ù)我的配置,基本使用方法如下:
- 「上下左右方向鍵」來(lái)切換窗口
- 切換到 minibufexpl 頂部狀態(tài)欄,按「左右方向鍵」來(lái)選擇窗口,「回車(chē)」打開(kāi)并覆蓋當(dāng)前窗口,「s」分割一個(gè)新的窗口
詳細(xì)用法,參考 minibufexpl 官方文檔。
安裝遇到問(wèn)題怎么辦?
因?yàn)榇蠹业臋C(jī)器配置不同,可能在我的電腦上安裝沒(méi)有問(wèn)題,但是到別的電腦上就有問(wèn)題了。如果你遇到問(wèn)題,請(qǐng)自己嘗試用 「英文搜索 + Google + stackoverflow + GitHub + 官方文檔」的方式自己解決,一方面是因?yàn)橐话?90% 的問(wèn)題都有很好的解決方案,因?yàn)槟阌龅降膯?wèn)題別人之前就遇到過(guò)了,并且已經(jīng)有了正確的答案,另一方面是因?yàn)閯e人也沒(méi)有義務(wù)來(lái)幫助你啊,別人也有事情要忙的,除非你給 Ta 些費(fèi)用。
我平常遇到問(wèn)題,除非上面這種方法解決不了,否則我基本不會(huì)問(wèn)別人(如果這種方法都解決不了,你問(wèn)的人很有可能也不會(huì)的~)。所以,當(dāng)你習(xí)慣了這種解決問(wèn)題的方法,請(qǐng)不要太感謝我,如果你現(xiàn)在還不習(xí)慣,那么可能你的閱讀英文文檔的能力還要加強(qiáng),沒(méi)關(guān)系,從現(xiàn)在開(kāi)始培養(yǎng)吧。
完整的 .vimrc 配置文件
這是我的 ~/.vimrc
文件的內(nèi)容,你可以下載來(lái)參考。
總結(jié)
這篇文章只介紹了 4 個(gè)常用的插件,還有 2 個(gè)常用插件我沒(méi)有寫(xiě)出來(lái),留作后面介紹,主要是防止內(nèi)容過(guò)多,另外也因?yàn)槟?2 個(gè)插件安裝稍微有點(diǎn)麻煩,這兩個(gè)插件分別是:
- 號(hào)稱(chēng) vim 史上最難安裝的代碼自動(dòng)補(bǔ)全插件:
YouCompleteMe
,其實(shí)掌握了方法也不難。 - vim 的 MarkDown 插件,我就是用這個(gè) vim 插件來(lái)寫(xiě)博客的,逼格很高!
另外,讀完之后,如果你還沒(méi)有實(shí)踐的話(huà),我并不希望你記住具體的步驟,我希望你記住的是安裝這些插件的思路:GitHub + 官方文檔。作為類(lèi)比,還是那句話(huà),我希望你在以后遇到問(wèn)題時(shí)能借助 「英文搜索 + Google + stackoverflow + GitHub + 官方文檔」的方式先嘗試自己解決,我最希望的是你在看我文章的過(guò)程中總結(jié)一套適合自己的學(xué)習(xí)和解決問(wèn)題的方法,因?yàn)閷?shí)際的工作就是以解決問(wèn)題為驅(qū)動(dòng)的,希望你能重視這一點(diǎn)。
最后,感謝你在百忙之中的閱讀,我們下次再見(jiàn) :)