vim配置輕量級IDE


安裝VIM

安裝YouCompleteMe的時候, 需要VIM的版本比較高, 一般一些Linux長期支持版的Vim包就比較老, 所以可能需要編譯安裝.

卸載之前系統中安裝的版本:

CentOS/Fedora
    sudo yum remove vim -y

Debian/Ubuntu
    sudo apt autoremove vim -y

Vim ftp, 查找需要的版本, 一般選擇最新版本就行了.

下載, 解壓后, 進入目錄中的src目錄. 如果使用默認的配置的話, 那么直接運行:

make
sudo make install

想自定義的話, 需要使用./configure重新編譯.
./configure --with-features=huge --enable-pythoninterp

  • --with-features=huge: 最大的特性支持.
  • --enable-pythoninterp: 啟用VimPython的支持, 默認Vim是不支持Python的.

然后重新執行:

make
sudo make install

卸載安裝的Vim, 在src目錄中執行sudo make uninstall. 如果想要重新編譯的話, 那么需要清除之前編譯的文件make distclean.

將VIM配置為輕量級IDE

YouCompleteMe需要系統安裝ctags, gcc, gcc-c++, python-devel, cmake

YouCompleteMe如果報錯The ycmd server SHUT DOWN..., 那么進入~/.vim/bundle/YouCompleteMe目錄下, 執行./install.py

克隆VundleVim~/.vim/bundle, 會自動創建目錄.
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

首先在vim的配置文件~/.vimrc中關閉兼容模式和文件類型檢測, 直接在文件中追加:

set nocompatible
filetype off
  • VundleVim 管理插件
  • YouCompleteMe 代碼自動補全
  • vim-airline 增強狀態欄和標簽欄
  • Tagbar 查看函數和變量的定義
  • NERDTree 文件目錄樹
  • identline 顯示縮進的對齊線
  • delimitMate 自動補全括號和引號
  • Cscope 代碼閱讀

還支持兩種插件類型:

" 非 github 倉庫的插件
Plugin 'git://git.wincent.com/command-t.git'

" 本地倉庫的插件
Plugin 'file:///home/lei/plugin'

VundleVim的簡單命令, 在vim的命令模式中執行, 例如(:PluginInstall):

  • PluginList: 列出安裝的插件
  • PluginInstall: 根據配置文件安裝插件
  • PluginUpdate: 更新插件
  • PluginSearch [name]: 查找名為 [name] 的插件
  • PluginClean: 清除無用的插件

保存.vimrc, 在命令模式中輸入:PluginInstall, 安裝配置的需要安裝的插件。

VIM配置文件

如果不安裝插件那么直接復制基本的配置內容就行了.

如果想全局生效, 那么在/etc/vimrc中進入插入模式, 在文件最后面追加配置。

配置vim


" =======================
" vimrc配置
" =======================

" -----------------------
" => 基本
" -----------------------

" 顯示行號
set nu

" 高亮關鍵字
syntax on

" 使用鼠標
set mouse=a

" 搜索結果高亮顯示
set hlsearch

" 一個tab等於4個空格
set tabstop=4
set shiftwidth=4

" 表示Tab自動轉換成空格
set expandtab

" 智能對齊
set autoindent
set smartindent

" 解決刪除鍵不生效
set backspace=indent,eol,start

" 行尾結束符, 設置為unix
set fileformat=unix

" 文件編碼
" fenc=utf-8

" 配置粘貼不自動換行的快捷鍵
set pastetoggle=<F9>

" 允許折疊
set foldenable

" 手動折疊
set foldmethod=manual

" 自動保存
set autowrite

" 記錄歷史的行數
set history=10000

" 設置搜索時忽略大小寫
set ignorecase

" 高亮顯示光標所在的行和列
" 顯示顏色
set t_Co=256
set bg=dark
set cursorline
set cursorcolumn

" 自定義光標樣式
highlight CursorLine cterm=NONE ctermbg=black ctermfg=brown guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black ctermfg=brown guibg=NONE guifg=NONE

" 顯示tab和空格
set list

" 設置tab和空格樣式
set lcs=tab:\|\ ,nbsp:%,trail:·

" 設定行首tab為灰色
highlight LeaderTab guifg=#666666

" 匹配行首tab
match LeaderTab /^\t/

" 輸入的命令顯示出來
set showcmd

" 啟動顯示狀態行(1),總是顯示狀態行(2)
set laststatus=2

" -----------------------
" => 安裝插件
" -----------------------

" 關閉vi兼容模式
set nocompatible

" 關閉文件類型檢測
filetype off

" 運行時路徑, 插件
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" 插件管理器
Plugin 'VundleVim/Vundle.vim'

" -----------------------
" => github 倉庫中的插件
" -----------------------
" 自動補全
Plugin 'Valloric/YouCompleteMe'
" 底欄和頂欄
Plugin 'vim-airline/vim-airline'
" 側邊欄顯示git修改
Plugin 'airblade/vim-gitgutter'
" 目錄樹顯示文件的git修改
Plugin 'Xuyuanp/nerdtree-git-plugin'

" -----------------------
" => vim-scripts 中的插件
" -----------------------
" 顯示文件中所有的函數和變量
Plugin 'Tagbar'
" 目錄樹
Plugin 'The-NERD-tree'
" 顯示tab對齊線
Plugin 'indentLine.vim'
" 符號自動補全
Plugin 'delimitMate.vim'
" 標簽提取
Plugin 'ctags.vim'
" 顏色主題
Plugin 'desert.vim'
" 顯示Python的虛擬環境
Plugin 'virtualenv.vim'

call vundle#end()
filetype plugin indent on


" -----------------------
" => 插件安裝完成后的配置
" -----------------------

" -----------------------
" ==> airline 標簽欄配置
" -----------------------

" 啟用powerline字體
let g:airline_powerline_fonts = 1
" 開啟標簽欄
let g:airline#extensions#tabline#enabled = 1
" 標簽欄路徑顯示
" let g:airline#extensions#tabline#formatter = "default"
" let g:airline#extensions#tabline#formatter = "jsformatter"
" let g:airline#extensions#tabline#formatter = "unique_tail_improved"
let g:airline#extensions#tabline#formatter = "unique_tail"

" -----------------------
" ==> YouCompleteMe配置
" -----------------------
" YouCompleteMe 默認tab, s-tab和自動補全沖突
let g:ycm_key_list_select_completion=['<c-n>']
let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion=['<c-p>']
let g:ycm_key_list_previous_completion = ['<Up>']

set completeopt=longest,menu

" 關閉加載.ycm_extra_conf.py提示
let g:ycm_confirm_extra_conf=0

" 在注釋輸入中也能補全
let g:ycm_complete_in_comments = 1
" 在字符串輸入中也能補全
let g:ycm_complete_in_strings = 1
" 直接觸發自動補全
let g:ycm_key_invoke_completion = '<C-Space>'

" 顯示所有匹配
map <leader>gd :YcmDiags<CR>
" 跳轉到申明處
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
" 跳轉到定義處
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
" 函數定義跳轉, 將光標定位到函數, 輸入gd 回車
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>

" -----------------------
" ==> Tagbar配置
" -----------------------
" 函數變量窗口, F3開啟和關閉
map <F3> :TagbarToggle<CR>
let tagbar_ctags_bin = 'ctags'
let tagbar_right = 1
let g:tagbar_width = 30
" tagbar一打開, 光標就在tagbar頁面內
let g:tagbar_autofocus = 1
" 設置標簽不排序,默認排序
let g:tagbar_sort = 0

" -----------------------
" ==> The-NERD-tree配置
" -----------------------
" 目錄樹, 使用F2開啟或關閉
map <F2> :NERDTreeToggle<CR>
let NERDTreeWinSize=30
" 自動開啟
" autocmd vimenter * NERDTree
" 是否顯示隱藏文件
let NERDTreeShowHidden=1
" 忽略一下文件的顯示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']

" -----------------------
" ==> Xuyuanp/nerdtree-git-plugin配置
" -----------------------
let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔︎",
    \ 'Ignored'   : '☒',
    \ "Unknown"   : "?"
    \ }

" -----------------------
" ==> vim-gitgutter配置
" -----------------------


" -----------------------
" ==> virtualenv.vim
" -----------------------

" 退出虛擬環境
" :VirtualEnvDeactivate
" 顯示所有虛擬環境
" :VirtualEnvList
" 激活虛擬環境
" :VirtualEnvActivate venv
" 可以使用tab選擇要激活的虛擬環境
" :VirtualEnvActivate <tab>
" 顯示幫助
" :help virtualenv

highlght主要是用來配色的, 包括語法高亮等個性化的配置. 可以通過:h highlight, 查看詳細信息.

CursorLineCursorColumn分別表示當前所在的行列.

cterm表示為原生vim設置樣式, 設置為NONE表示可以自定義設置.

ctermbg設置終端vim的背景色.

ctermfg設置終端vim的前景色.

guibgguifg分別是設置gvim的背景色和前景色, 本人平時都是使用終端打開vim, 所以只是設置終端下的樣式.

推薦使用的顏色包括: black, brown, grey, blue, green, cyan, magenta, yellow, white.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM