世界上有兩個偉大的編輯器:一個是emacs膜眠,一個是vi套菜。它們從誕生以來俯萎,一直在Unix/Linux世界得到最廣泛的支持。
盡管過了幾十年芥吟,在Windows平臺上和跨平臺上有層出不窮的后起之秀不斷挑戰(zhàn)它們的地位侦铜,比如編輯器界的Sublime Text,Ultra Editor钟鸵,Notepad++钉稍,pspad,Atom棺耍,Visual Studio Code贡未,IDE界的Eclipse, IntellJ IDEA, NetBeans等等,但是它們的地位從未動搖過蒙袍。
寫C#的最好IDE一定是Visual Studio俊卤,寫Java還是IntellJ IDEA和Eclipse更方便。但是害幅,對于其它語言和其它任務(wù)消恍,比起層出不窮的后來者,一定是emacs和vim的支持是最廣泛的以现。針對一個特定的任務(wù)狠怨,可能Sublime Text和Atom只有區(qū)區(qū)幾種插件選擇甚至是沒有,但是在vim和emacs上可以找到好多頁邑遏。
這兩種編輯器的學(xué)習(xí)曲線確實(shí)是相對比較陡的佣赖,但是,一旦修煉成功无宿,這樣的付出是絕對值得的茵汰。造成學(xué)習(xí)困難的主要原因,其實(shí)是功能太多太強(qiáng)大孽鸡。這個修煉需要花不少的精力和時(shí)間蹂午,想修成上仙甚至上神是不容易的,但是彬碱,只要堅(jiān)持下去豆胸,最終一定可以做到。好了巷疼,廢話不多說了晚胡,我們開始修煉之旅。
修仙之前,我們先享受一下凡人的生活估盘。我們先看看如何利用各位上仙上神做好的法器瓷患,也就是寫好的腳本。
使用vundle管理插件
做為人類遣妥,我們先不研究上仙上神們是如何擺放腳本位置的擅编,我們統(tǒng)一通過vundle來管理其余插件。
首先我們下載Vundle箫踩,通過git命令爱态,非常簡單:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
下面我們再通過修改/.vimrc來配置一下,把下面原封不動抄到/.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()
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
我們只需要在call vundle#end()那一行之前境钟,加上我們需要的plugin的內(nèi)容就可以了锦担。
下面我們開始vim plugin的尋寶之旅,第一站當(dāng)然是官網(wǎng)慨削!
vim插件寶庫之官方網(wǎng)站
vim的第一集散地當(dāng)然是官網(wǎng):http://www.vim.org/scripts/index.php
比如我寫C/C++比較多洞渔,我們就先拿c.vim來試試水。
官網(wǎng)上的插件的git庫都放在這里:http://vim-scripts.org/vim/scripts.html
對于官網(wǎng)上的插件理盆,我們直接使用vim-scripts.org上的目錄名就好痘煤,比如c.vim,taglist.vim之類的猿规,然后修改~/.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
Plugin 'c.vim'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
重啟vim衷快,讓新的然后我們運(yùn)行:PluginInstall命令,c.vim插件就被自動安裝上了姨俩。
我們試驗(yàn)一下c.vim的強(qiáng)大功能吧蘸拔,我們創(chuàng)建一個新的C++文件,比如test2.cpp环葵,運(yùn)行:
vim test2.cpp
打開之后调窍,發(fā)生了什么?c.vim插件已經(jīng)按照模板自動幫我們生成的文檔頭:
/*
* =====================================================================================
*
* Filename: test2.cpp
*
* Description:
*
* Version: 1.0
* Created: 2017/06/23 12時(shí)24分15秒
* Revision: none
* Compiler: gcc
*
* Author: YOUR NAME (),
* Organization:
*
* =====================================================================================
*/
#include <stdlib.h>
比如我們要寫一個for循環(huán)张遭,試試輸入\i0邓萨,vim會提示輸入一個變量名,我們就用i吧菊卷,于是就生成了這樣的代碼塊:
for ( i = 0; i < n; i += 1 ) {
}
更多的好玩的快捷鍵功能缔恳,可以參考這個:https://wolfgangmehner.github.io/vim-plugins/csupport/c-hotkeys.pdf
更完整的功能,可以參考文檔:https://wolfgangmehner.github.io/vim-plugins/doc/csupport.html
也可以通過:help csupport在vim中查看洁闰。
vim插件寶庫之github
除了官網(wǎng)之外歉甚,github上也是vim插件的大型集散地。很多官網(wǎng)上的插件扑眉,在github上也有鏡像纸泄。
vundle對于github的支持也是很好的赖钞,比如NERD tree的地址是:https://github.com/scrooloose/nerdtree,我們可以省略github地址聘裁,直接輸用戶名和庫名就可以了雪营,例:
Plugin 'scrooloose/nerdtree'
凡git庫皆可支持
一般來說,官網(wǎng)和github上已經(jīng)足夠用了咧虎。但是卓缰,總是有一些特殊需求,比如公司內(nèi)部使用之類的砰诵。這時(shí)候,我們只要附上git的地址就好捌显,例:
Plugin 'git@gitlab.alibaba-inc.com:ziying.liuziying/studyvim.git'
本地目錄
如果上面幾種方式都不支持茁彭,比如是我們自己的寫的插件,不想放到網(wǎng)上去扶歪,我們還可以指定本地目錄的方式來使用插件理肺。
例:
Plugin 'file:///home/gmarik/path/to/plugin'
Vundle簡明手冊
手動方式
就是將插件名寫進(jìn).vimrc,然后通過:PluginInstall命令去安裝
- PluginList命令:列出已經(jīng)安裝的插件善镰。
下面是我安裝的一些插件:
" My Plugins
Plugin 'VundleVim/Vundle.vim'
Plugin 'd.vim'
Plugin 'taglist.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'c.vim'
Plugin 'OmniCppComplete'
Plugin 'clang-complete'
Plugin 'AutoComplPop'
Plugin 'bufexplorer.zip'
Plugin 'SuperTab'
Plugin 'SrcExpl'
Plugin 'molokai'
Plugin 'omlet.vim'
Plugin 'cpp.vim'
Plugin 'thinca/vim-logcat'
Plugin 'vim-scripts/prop.vim'
Plugin 'mglb/vim-android-syntax'
PluginInstall命令:安裝在.vimrc中指定的插件妹萨。如果要更新的話使用:PluginInstall! 或者:PluginUpdate命令
PluginClean:刪除從.vimrc中刪去的plugin
互動方式
:PluginSearch命令可以搜索字符串,搜索到之后炫欺,就可以直接點(diǎn)擊i進(jìn)行安裝乎完。
不過重啟vim之后就沒有了。希望每次啟動后都有的話品洛,還是寫進(jìn).vimrc吧树姨。