Ubuntu16.04 server使用Vundle安裝vim插件

本文是對http://www.cnblogs.com/songfy/p/5635757.html的優化補充,感謝原作者。

環境:ubuntu16.04 server

正文

安裝vim
要求最低版本是7.4,ubuntu的安裝方式爲:

cycl@ubuntu:~$ sudo apt-get install vim

基本配置
主題的創建
1.創建目錄存放主題

cycl@ubuntu:~$ mkdir -p  ~/.vim/colors

筆者推薦molokai主題,http://www.vim.org/scripts/script.php?script_id=2340,下載molokai主題, 拷貝到~/.vim/colors目錄下。
2.創建.vimrc文件

cycl@ubuntu:~$ touch ~/.vimrc

將下面的內容拷貝到.vimrc中.

set modelines=0

"設置更好的刪除
set backspace=2

syntax on "語法高亮

"用淺色高亮當前行
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul

set smartindent "智能對齊

set autoindent "自動對齊

set confirm "在處理未保存或只讀文件的時候,彈出確認框

set tabstop=4 "tab鍵的寬度
set softtabstop=4
set shiftwidth=4 "統一縮進爲4
set expandtab "不要用空格替代製表符

set number "顯示行號
set history=50  "歷史紀錄數
set hlsearch
set incsearch "搜素高亮,搜索逐漸高亮

set gdefault "行內替換
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "編碼設置

colorscheme molokai

set guifont=Menlo:h16:cANSI "設置字體
set langmenu=zn_CN.UTF-8
set helplang=cn  "語言設置

set ruler "在編輯過程中,在右下角顯示光標位置的狀態行

set laststatus=1  "總是顯示狀態行

set showcmd "在狀態行顯示目前所執行的命令,未完成的指令片段也會顯示出來

set scrolloff=3 "光標移動到buffer的頂部和底部時保持3行的距離
set showmatch "高亮顯示對應的括號
set matchtime=5 "對應括號高亮時間(單位是十分之一秒)

set autowrite "在切換buffer時自動保存當前文件

set wildmenu  "增強模式中的命令行自動完成操作

set linespace=2 "字符間插入的像素行數目
set whichwrap=b,s,<,>,[,] "開啓normal 或visual模式下的backspace鍵空格鍵,左右方向鍵,insert或replace模式下的左方向鍵,右方向鍵的跳行功能

filetype plugin indent on "分爲三部分命令:file on,file plugin on,file indent on 分別是自動識別文件類型, 用用文件類型腳本,使用縮進定義文件

set foldenable  "允許摺疊
set cursorline "突出顯示當前行
set magic  "設置魔術?神馬東東
set ignorecase "搜索忽略大小寫
filetype on "打開文件類型檢測功能
set background=dark
set t_Co=256   "256色
set mouse=a  "允許鼠標

插件安裝

請先安裝ctags和cscope兩個插件(沒找到如何利用Vundle安裝的方法)
安裝方式可參考:http://blog.csdn.net/lcs182764/article/details/69214129

1.Vundle 管理插件的插件
我們的插件如果一個一個安裝的話, 這可能會搞死你, 因此我們希望有一個能夠自動安裝和管理插件的插件.
這就是我們要說的Vundle, 可參考https://github.com/VundleVim/Vundle.vim

Vundle安裝方式:

cycl@ubuntu:~$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

Vundle配置.
在vimrc中把下面的代貼在最前面.

我們需要添加插件的話, 只要在#begin和#end之間加入即可.

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'

" 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
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

2. nerdtree插件

在.vimrc中#begin和#end之間加入

Plugin 'scrooloose/nerdtree'

配置nerdtree:在.vimrc中加入

let NERDTreeQuitOnOpen=1 "打開文件時關閉樹
let NERDTreeShowBookmarks=1 "顯示書籤

配置快捷鍵:在.vimrc中加入

let mapleader = ","
map <leader>ne :NERDTreeToggle<CR>
map <leader>tl :TlistToggle<cr>
nnoremap <leader>ma :set mouse=a<cr>
nnoremap <leader>mu :set mouse=<cr>

保存vimrc,輸入",ne",即可看到目錄列表效果

3. tagbar插件

安裝方式:在.vimrc中加入

 Plugin 'majutsushi/tagbar' 

設置鍵:在.vimrc中加入

nmap <leader>tb :TagbarToggle<CR>

4.autopair插件
這個插件就是給括號自動配對的.
安裝插件:在.vimrc中加入

Plugin 'jiangmiao/auto-pairs'

5.minibuffer 插件
安裝插件:在.vimrc中加入

 Plugin 'minibufexpl.vim'

配置插件:在.vimrc中加入

let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 

配置快捷鍵:在.vimrc中加入

nmap <leader>mmbe :MiniBufExplorer<CR>
nmap <leader>mmbc :CMiniBufExplorer<CR>
nmap <leader>mmbu :UMiniBufExplorer<CR>
nmap <leader>mmbt :TMiniBufExplorer<CR>

6. taglist插件

功能類似於tagbar
安裝:在.vimrc中加入

Plugin 'taglist.vim' 

配置:在.vimrc中加入

let Tlist_Use_Right_Window=1 "taglist 顯示在右側 
let Tlist_Exit_OnlyWindow=1 "taglist 只剩下一個窗口時,自動關閉
let Tlist_File_Fold_Auto_Close=1
快捷鍵:
map tl :TlistToggle
nnoremap ev :vsplit $MYVIMRC
nnoremap sv :source $MYVIMRC

7. nerd comment插件

這個插件是用來自動添加註釋的插件.
安裝:在.vimrc中加入

Plugin 'scrooloose/nerdcommenter'

8. 代碼摺疊

配置:在.vimrc中加入

set foldmethod=syntax"使用語法高亮定義代碼摺疊
set foldlevelstart=99"打開文件是默認不折疊代碼

zc 摺疊
zC 對所在範圍內所有嵌套的摺疊點進行摺疊
zo 展開摺疊
zO 對所在範圍內所有嵌套的摺疊點展開
[z 到當前打開的摺疊的開始處。]z 到當前打開的摺疊的末尾處。
zj 向下移動。到達下一個摺疊的開始處。關閉的摺疊也被計入。
zk 向上移動到前一折疊的結束處。關閉的摺疊也被計入。

9. markdown插件安裝

安裝:在.vimrc中加入

Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'

配置:在.vimrc中加入

let g:vim_markdown_math = 1
let g:vim_markdown_frontmatter = 1
let g:vim_markdown_toml_frontmatter = 1
let g:vim_markdown_json_frontmatter = 1

10.youcompleteme插件

YouCompleteMe:一個隨鍵而全的、支持模糊搜索的、高速補全的插件。YCM 由 google 公司搜索項目組的軟件工程師 Strahinja Val Markovic 所開發,YCM 後端調用 libclang(以獲取AST,當然還有其他語言的語義分析庫)、前端由 C++ 開發(以提升補全效 率)、外層由 python 封裝(以成爲 vim 插件),這是至今爲止最強大也是
最難安裝的插件之一, 有很多人都砸在這個插件上了, 我們來看看如何安裝這個插件.

安裝該插件前,需要先安裝幾個工具
a.CMake安裝

cycl@ubuntu:~$ sudo apt-get install build-essential cmake

b.Python安裝

cycl@ubuntu:~$ sudo apt-get install python-dev python3-dev

安裝插件:在.vimrc中加入

 Plugin 'Valloric/YouCompleteMe'

配置YouCompleteMe:在.vimrc中加入

let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_confirm_extra_conf=0 "關閉加載.ycm_extra_conf.py提示
let g:ycm_min_num_of_chars_for_completion=2 " 從第2個鍵入字符就開始羅列匹配項
let g:ycm_cache_omnifunc=0  " 禁止緩存匹配項,每次都重新生成匹配項
let g:ycm_seed_identifiers_with_syntax=1    " 語法關鍵字補全
" 在註釋輸入中也能補全
let g:ycm_complete_in_comments = 1
" 在字符串輸入中也能補全
let g:ycm_complete_in_strings = 1
"註釋和字符串中的文字也會被收入補全
let g:ycm_collect_identifiers_from_comments_and_strings = 0
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'

nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
nnoremap <leader>lo :lopen<CR> "open locationlist                                                                                                                      
nnoremap <leader>lc :lclose<CR>   "close locationlist
inoremap <leader><leader> <C-x><C-o>"
inoremap <leader><leader> <C-x><C-o>
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>

以上操作完成後,打開vim,輸入:PluginInstall, vim會自動去從git上clone出項目, 把這個項目安裝到項目目錄上.(漫長的等待,至少2個小時以上,可以在晚上睡覺的時候掛機下載),下載完成的標誌如圖,前面全部變成“.”或者“+”(原來已經安裝的是".",新增加的是“+),

等安裝成後,進入目錄./.vim/bundle/YouCompleteMe/
運行命令:
由於我也希望ycm能進行nodejs和golang的補全,所以可以在./install.py 後添加如下後綴

./install.py  --clang-completer  --gocode-completer --tern-completer

又是需要漫長的等待, 等他安裝好.

注:有文章說ubuntu有編譯好的YCM,安裝方式如下:
sudo apt-get install vim-addon-manager
sudo apt install vim-youcompleteme
vam install vim-youcompleteme

未嘗試

發佈了34 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章