轉載:https://www.cnblogs.com/awakenedy/articles/9876817.html
僅供個人學習使用
vim高度的可擴展性,使其能通過插件和配置文件的相互組合,實現IDE的諸多功能:如代碼補全,函數定義跳轉,文件目錄樹,源碼的結構化瀏覽等。


vim --version

apt-get remove vim
apt-get install gcc make python-dev libncurses5-dev libncursesw5-dev
從vim官網下載vim8.0源碼並解壓:
wget ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2
tar -xvf vim-8.0.tar.bz2 && cd vim80/
./configure --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu ( /usr/lib/python2.7/config-x86_64-linux-gnu 換成自己的python lib的路徑)
make && make install
update-alternatives --install /usr/bin/vim vim /usr/local/bin/vim 1000
此時使用vim --version能看到vim已對python提供支持

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
set nocompatible " 去除對vi的兼容 filetype off " 關閉文件類型檢測 set rtp+=~/.vim/bundle/Vundle.vim " 設置vundle路徑
call vundle#begin() " 插件管理函數開始 Plugin 'VundleVim/Vundle.vim' " 在此添加需要安裝的插件列表,格式 Plugin 'git用戶/git倉庫' 或者 Plugin '協議://git url' " 例如: " Plugin 'https://github.com/davidhalter/jedi-vim.git' " Plugin 'rstacruz/sparkup' call vundle#end() " 插件管理函數結束 filetype plugin indent on " 必須,作用未知
至此准備工作全部完畢,后續統一使用vundle來安裝所需插件

call vundle#begin() ... Plugin 'https://github.com/scrooloose/nerdtree.git' ... call vundle#end()
2.打開vim,鍵入vim命令 :BundleInstall

"NERDTree config map <F4> :NERDTreeToggle<CR> " F4一鍵開關目錄樹 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif " 當目錄樹窗口為最后一個窗口時自動退出vim
t 在新 書簽 中打開選中文件,並跳到新 書簽
T 在新 書簽 中打開選中文件,但不跳到新 書簽
omnifunc
來匹配,因此同樣支持
php
,
ruby
等語言。但YCM的安裝十分困難和折騰,他並不是一個簡單的.vim文件, 而是需要編譯成可執行文件后再安裝,並且整合了多種vim插件。我花了一天時間終於找到了一個靠譜的安裝路線(redhat,debian主流版本測試均通過):
sudo apt-get install build-essential cmake python-dev python3-dev
Plugin 'https://github.com/Valloric/YouCompleteMe.git'
3.同上一步,打開vim,鍵入 :BundleInstall
cd ~/.vim/bundle/YouCompleteMe
chmod a+x install.sh && ./install.sh (此處若要YCM支持C,C++補全,添加安裝參數 ./install.sh --clang-completer 此時會調clang自動安裝)

"ycm
set completeopt=longest,menu " 取消補全后的彈窗
highlight Pmenu ctermfg=15 ctermbg=0 guifg=#000000 guibg=#111100 " 把補全背景色換成當前vim的背景色
此時效果如下

map <F6> :YcmCompleter GoTo<CR>
此時按下F6后可直接跳轉到定義. 跳轉至定義后如何跳轉回去? ctrl+o

Plugin 'https://github.com/brookhong/DBGPavim.git'
打開vim,鍵入 :BundleInstall等待安裝完成,安裝完畢后在~/.vimrc中增加如下配置:
let g:dbgPavimPort = 9009
這里的Port就是DBGPavim要監視的端口,要與調試器的端口一致,默認是9000。
tar -zxvf Komodo-PythonRemoteDebugging-11.0.1-90797-linux-x86_64.tar.gz && cd Komodo-PythonRemoteDebugging-11.0.1-90797-linux-x86_64
結果如下:

cp pydbgp pythonlib/
最后把pydbgp加入環境變量,方便vim調用。(若覺得該調試功能好用,可把該環境變量永久生效)
export PATH=$PATH:~/Komodo-PythonRemoteDebugging-11.0.1-90797-linux-x86_64/pythonlib

F5 啟動調試監聽 F6 停止調試監聽 F1 打開或關閉幫助窗口 F2 單步進入 F3 單步跳過 F4 單步退出 F5 繼續執行直到下一個斷點,如果后續沒有斷點就退出調試模式。 F9 最大化某個子窗口,或者重置窗口布局。 F11 查看當前執行環境下的所有變量的值,在不同的堆棧層次,會有不同的結果。 F12 查看光標下的變量的值。
'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/4.9.2',
'-isystem',
'/usr/include',
'/usr/include/x86_64-linux-gnu/c++',
最后在~/.vimrc中添加一行
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
重新打開vim,問題解決