1.首先安裝vim:
sudo apt-get install vim-gtk
2.安裝完成後,查看vim對python的支持
vim --version | grep python
發現是有對Python3的支持而沒有對Python2的支持,如果需要換成對python2的支持的話,可以安裝py2包:
sudo apt-get install vim-nox-py2
安裝完成後,再查看一下,可以發現現在換成對Python2的支持了。
如果需要的切換的話可以輸入命令:
sudo update-alternatives --config vim
輸入編號切換就可以了。
3.安裝官方文檔上說的,安裝CMake和python-dev。
sudo apt-get install build-essential cmake
sudo apt-get install python-dev python3-dev
4.安裝YouCompleteMe
1.首先安裝vim的擴展管理器Vundle,利用Vundle來安裝YCM
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
安裝完成後在終端輸入:
gedit ~/.vimrc打開配置文件
將下面的配置複製到vimrc頂部(如果沒有vimrc自己創建一個)
set nocompatible " be iMproved, required
filetype off " required "設置Vundle的運行路徑並初始化 "------------------要安裝的插件不能寫在此行前!------------------ "Vundle對自己的調用,不可刪去 Plugin 'VundleVim/Vundle.vim' "以下是所支持的各種不同格式的示例 "需要安裝的插件應寫在調用的vundle#begin和vundle#end之間 "如果插件託管在Github上,寫在下方,只寫作者名/項目名就行了
"YouCompleteMe插件安裝 Plugin 'Valloric/YouCompleteMe' "Plugin 'majutsushi/tagbar' "Plugin 'vim-syntastic/syntastic' "Plugin 'vim-airline/vim-airline-themes' "Plugin 'vim-airline/vim-airline' "如果插件來自vim-scripts(官方),寫插件名就行了 " Plugin 'L9' "如果Git倉庫不在Github上,需要提供完整的鏈接 " Plugin 'git://git.wincent.com/command-t.git' "本地的插件需要提供文件路徑 " Plugin 'file:///home/gmarik/path/to/plugin' "一定要確保插件就在提供路徑的文件夾中(沒有子文件夾,直接在這層目錄下) "運行時目錄的路徑 "Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} "避免插件間的命名衝突 "Plugin 'ascenator/L9', {'name': 'newL9'} "------------------要安裝的插件不能寫在此行後!------------------ call vundle#end() " required filetype plugin indent on " required "要忽略插件縮進更改,請改用: "filetype plugin on " " 安裝插件的相關指令 ":PluginList - 列出已安裝插件 ":PluginInstall - 安裝新添加的插件;添加`!`或使用`:PluginUpdate`來更新已安裝插件 ":PluginSearch xxx - 尋找名字帶有xxx的插件;添加`!`刷新本地緩存 ":PluginClean - 刪除已經從列表移除的插件;添加`!`靜默卸載 ":h - 幫助和說明文檔 "Vundle的設置到此爲止了 " |
然後將YouCompleteMe插件先直接下載在~/.vim/bundle/下,在線安裝會比較慢,且容易失敗。
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
然後使用:PluginInstall命令 就可以開始用Vundle進行管理了。
打開vim,按Esc鍵進入末行模式,輸入PluginInstall進行安裝
YouCompleteMe配置
" 自動補全配置 set completeopt=longest,menu "讓Vim的補全菜單行爲與一般IDE一致(參考VimTip1228) autocmd InsertLeave * if pumvisible() == 0|pclose|endif "離開插入模式後自動關閉預覽窗口 inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" "回車即選中當前項 "上下左右鍵的行爲 會顯示其他信息 inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>" inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>" inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>" inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>" "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>'] let g:ycm_confirm_extra_conf=0 "關閉加載.ycm_extra_conf.py提示 let g:ycm_collect_identifiers_from_tags_files=1 " 開啓 YCM 基於標籤引擎 let g:ycm_min_num_of_chars_for_completion=1 " 從第2個鍵入字符就開始羅列匹配項 let g:ycm_cache_omnifunc=0 " 禁止緩存匹配項,每次都重新生成匹配項 let g:ycm_seed_identifiers_with_syntax=1 " 語法關鍵字補全 nnoremap <F5> :YcmForceCompileAndDiagnostics<CR> "force recomile with syntastic "nnoremap <leader>lo :lopen<CR> "open locationlist "nnoremap <leader>lc :lclose<CR> "close locationlist inoremap <leader><leader> <C-x><C-o> "在註釋輸入中也能補全 let g:ycm_complete_in_comments = 1 "在字符串輸入中也能補全 let g:ycm_complete_in_strings = 1 "註釋和字符串中的文字也會被收入補全 let g:ycm_collect_identifiers_from_comments_and_strings = 0 nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳轉到定義處 |