打造自己的VIM編輯器

??VIM編輯器被稱為編輯器之神,那作為一個(gè)程序員就應(yīng)該做一個(gè)征服神的人!本文會教你搭建一個(gè)能夠自動(dòng)補(bǔ)全、變量查找氛雪、目錄顯現(xiàn)等不輸IDE的VIM。

1. 主題

??刀客喜歡的主題有兩個(gè):molokai 凝赛、Solarized

1.1 molokai

??molokai的特點(diǎn)是色彩艷麗注暗,設(shè)置為暗色背景很適合程序員開發(fā)。
并且網(wǎng)上的教程都是使用Bundle進(jìn)行安裝墓猎,但刀客嘗試后發(fā)現(xiàn)自己無法正常安裝捆昏。還是一步步的從GIt進(jìn)行安裝更靠譜點(diǎn)。

  • git clone git@github.com:tomasr/molokai.git
  • 將colors 文件夾的molokai.vim 拷貝到~/.vim/colors
  • 在~/.vimrc中添加如下語句:
colorscheme  molokai
set t_Co=256
set background=dark

噔噔噔噔毙沾!打開vim編輯器是不是變得很炫酷了骗卜?

tool-molokai.png

1.2 Solarized

??Solarized主題是使用最廣泛的vim主題。但刀客還是更喜歡molokai一點(diǎn)左胞。

  • git clone git@github.com/altercation/vim-colors-solarized
  • 將colors 文件夾的molokai.vim 拷貝到~/.vim/colors
  • 在~/.vimrc中添加如下語句:
syntax enable
set background=dark
colorscheme solarized

快快地打開你的vim編輯器看一下吧寇仓。

2. VIM 安裝

  • 作為一個(gè)程序員怎么能夠不會使用源碼這么高(苦)大(逼)的軟件安裝方式呢?好吧烤宙!是因?yàn)槲乙惭bYCM(YouCompleteMe)代碼自動(dòng)不全工具需要Python的支持遍烦,但通過命令行安裝的VIM一般不支持Python。

2.1 卸載VIM

??如果你的電腦上安裝著vim,你需要完全卸載之前的VIM,方法很簡單也很粗暴:

sudo apt-get remove vimsudo apt-get remove vim-runtime
sudo apt-get remove vim -tiny
sudo apt-get remove vim-common
sudo apt-get remove vim-doc
sudo apt-get remove vim-script

保證把vim卸載的渣渣都不剩躺枕。

2.2 安裝

??先安裝一下依賴吧服猪,很簡單,反正也不多:

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev
 libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev
 python-dev python3-dev ruby-dev  liblua5.1-dev libperl-dev git

??然后下載vim,之后進(jìn)行配置、編譯拐云、安裝罢猪,三板斧嘛,開始:

cd ~
git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge \
            --enable-multibyte \
            --enable-rubyinterp=yes \
            --enable-pythoninterp=yes \
            --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu \
            --enable-python3interp=yes \
            --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64_linux-gnu \
            --enable-perlinterp=yes \
            --enable-luainterp=yes \
            --enable-gui=gtk2 --enable-cscope --prefix=/usr
make VIMRUNTIMEDIR=/usr/share/vim/vim80
cd ~/vim
sudo make install

齊活叉瘩!

3.安裝YCM

??VIM被稱為編輯器之神膳帕,而YCM則是vim中最難裝的插件,簡直就是神的腳后跟薇缅。
在網(wǎng)上搜索YCM的安裝危彩,基本都是使用Bundle安裝攒磨,可是我試了好幾次還是安裝不上。算了還是苦逼地從源碼安裝吧恬砂。

??經(jīng)過刀客我的嘗試咧纠,終于從源碼安裝上了YCM!

3.1 下載YCM

??首先將YCM從git下載到本地,我選了 ~/.vim/bundle/泻骤。因?yàn)橹巴ㄟ^Bundle安裝沒有成功,正好有這么一個(gè)文件夾梧奢,沒有的自己見一個(gè)就是了狱掂。。亲轨。趋惨。

# 下載 (在 `~/.vim/bundle` 目錄下)
git clone --recursive git@github.com/Valloric/YouCompleteMe.git
# 檢查完整性(在 `~/.vim/bundle/YouCompleteMe` 目錄下)
git submodule update --init --recursive

這樣就開始編譯安裝了是么? NO No NO!,我們還需要安裝依賴呢

#
sudo apt-get install llvm-5.0 clang-5.0 libclang-5.0-dev  libboost-all-dev

我統(tǒng)一選擇了5.0版本惦蚊,你要根據(jù)自己的軟件源里的版本進(jìn)行安裝哦器虾。

3.3 編譯安裝

在家目錄下新建一個(gè)安裝目錄,然后進(jìn)行執(zhí)行一下命令:

mkdir ~/.ycm_build
cd ~/.ycm_build
cmake -G "Unix Makefiles" -DUSE_SYSTEM_BOOST=ON -DUSE_SYSTEM_LIBCLANG=ON . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
cmake -G "Unix Makefiles" -DUSE_SYSTEM_BOOST=ON -DEXTERNAL_LIBCLANG_PATH=/usr/lib/x86_64-linux-gnu/libclang-5.0.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
cmake --build . --target ycm_core --config Release

將配置文件拷貝到 ~/.vim

cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim/

最后在 ~/.vimrc中添加以下語句:

let g:ycm_server_python_interpreter='/usr/bin/python'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'

打開你的編輯器看一下吧蹦锋!


tool-YCM.png

4.安裝ctags和taglist

??眾所周知兆沙,在Linux閱讀大型源碼是一件比較困難的事情,我們可以使用SourceInsigh或者UnderStand莉掂,但是總有一種被強(qiáng)奸的感覺葛圃,因?yàn)檫@樣做不Linux啊。

??總的來說憎妙,ctags負(fù)責(zé)將源碼中的各個(gè)變量生成各個(gè)標(biāo)簽库正,我們可以隨時(shí)查看調(diào)用位置。而taglist基于ctags提供了結(jié)構(gòu)化瀏覽的功能厘唾,我們可以查看一個(gè)結(jié)構(gòu)體中有哪些變量等等褥符。

4.1 安裝ctags

使用命令行:

sudo apt-get install ctags

或者從github上下載源碼后,使用三板斧:

./configure && make && make install

.vimrc中添加

map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

我們就可以進(jìn)入代碼根目錄后抚垃,打開Vim喷楣,按下Ctrl-F12快捷鍵自動(dòng)生成tags文件。命令執(zhí)行完后讯柔,會在源代碼目錄生成tags文件抡蛙。Vim默認(rèn)會自動(dòng)讀取當(dāng)前目錄下的tags文件,所以不需要修改~/.vimrc文件魂迄。

此時(shí)粗截,我們已經(jīng)具有定義跳轉(zhuǎn)的功能了。有兩組快捷鍵是最常用的捣炬。

               Ctrl-]    跳轉(zhuǎn)到光標(biāo)所在符號的定義熊昌。
               Ctrl-t    回到上次跳轉(zhuǎn)前的位置绽榛。

更多功能通過命令man ctags或在Vim命令行下運(yùn)行help ctags查詢。

4.2 安裝Taglist

從下方網(wǎng)址下載talist包婿屹,解壓打~/.vim灭美,注意的是如果之前已經(jīng)存在了doc或者plugin文件夾,我們只需要將對應(yīng)文件放置到對應(yīng)文件夾即可昂利。

然后在 .vimrc中添加如下兩句:

let Tlist_Show_One_File=1  
let Tlist_Exit_OnlyWindow=1  

5 安裝NERDTree

??我們使用VIM進(jìn)行大型源碼編程的時(shí)候總是無法看到目錄結(jié)構(gòu)届腐,這是一件比較苦惱的事情,那么我們就可以使用NERDTree來解決蜂奸。方法很簡單:

git clone https://github.com/scrooloose/nerdtree.git ~/

然后將目錄中的文件放置到對應(yīng)的文件夾即可犁苏。進(jìn)入 vims使用命令 NERDTreeToggle看看目錄結(jié)構(gòu)出來了沒有。我們也可以在.vimrc中設(shè)置快捷鍵

map <F6> :NERDTreeToggle<CR>

這樣就可以使用 F6打開或者關(guān)閉目錄結(jié)構(gòu)了扩所。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末围详,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子祖屏,更是在濱河造成了極大的恐慌助赞,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袁勺,死亡現(xiàn)場離奇詭異雹食,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)魁兼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門婉徘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咐汞,你說我怎么就攤上這事盖呼。” “怎么了化撕?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵几晤,是天一觀的道長。 經(jīng)常有香客問我植阴,道長蟹瘾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任掠手,我火速辦了婚禮憾朴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喷鸽。我一直安慰自己众雷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砾省,像睡著了一般鸡岗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上编兄,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天轩性,我揣著相機(jī)與錄音,去河邊找鬼狠鸳。 笑死揣苏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碰煌。 我是一名探鬼主播舒岸,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芦圾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俄认,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤个少,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后眯杏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夜焦,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年岂贩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫经。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡萎津,死狀恐怖卸伞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锉屈,我是刑警寧澤荤傲,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站颈渊,受9級特大地震影響遂黍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俊嗽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一雾家、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绍豁,春花似錦芯咧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹃共。三九已至,卻和暖如春驶拱,著一層夾襖步出監(jiān)牢的瞬間霜浴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工蓝纲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阴孟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓税迷,卻偏偏與公主長得像永丝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子箭养,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

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

  • macvim配置 最終效果如下: 系統(tǒng)環(huán)境 macos10.12.4 homebrew1.2.1 python3....
    Like_eb56閱讀 69,268評論 5 65
  • 安裝依賴庫(支持Python 3慕嚷、Lua、Ruby) sudo apt-get install libncurse...
    Cyfeng閱讀 2,096評論 0 2
  • 網(wǎng)上已經(jīng)有很多很好的vim使用和配置教程毕泌。但每個(gè)人都有自己的習(xí)慣喝检,因此教程僅作參考,只有在使用過程中才能體會到具體...
    yiekue閱讀 96,751評論 51 199
  • 真實(shí)有效的Vim配置記錄(macOS) 以前在Ubuntu里配置了兩次Vim撼泛,macOS中配置了一次挠说,都沒有配置成...
    染微言閱讀 11,431評論 0 8
  • 1 好不容易起了個(gè)大早损俭,還是因?yàn)楸蛔约翰粻帤獾亩亲咏o餓醒的。不知道從什么時(shí)候早飯開始與我無緣潘酗,在宿舍集體睡懶覺的大...
    陸松風(fēng)閱讀 749評論 6 2