ubuntu下vim安裝與配置
vim原始碼安裝
2、出現“YouCompleteMe requires Vim compiled with Python 2.x support”;
3、執行該命令:
$ cd vim
$ ./configure --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config
$ make
$ sudo make install
4、找到系統自帶的vim,然後用剛才編譯後的src檔案下的可執行檔案替換(在管理員身份下執行),vim不支援python>=2.7問題就成功解決了;
$ cd ~ $ mkdir .vim $ cd .vim $ mkdir bundle $ cd bundle $ git clone https://github.com/gmarik/vundle.git $ vim
此時進入vim介面,在normal模式下點選執行命令:BundleInstall(B和I字母都是大寫);
注意:在此過程中,有些錯誤是必須的,可以忽略。
6、vim配置檔案:/usr/share/vim。
vundle命令
:BundleList -列舉列表(也就是.vimrc)中配置的所有外掛 :BundleInstall -安裝列表中的全部外掛 :BundleUpdate -更新列表中的全部外掛 :BundleSearch foo -查詢foo外掛 :BundleSearch! foo -重新整理foo外掛快取 :BundleClean -清除列表中沒有的外掛 :BundleClean! -清除列表中沒有的外掛
vim貼上複製
需要gvim才能呼叫貼上板。
YouCompleteMe安裝配置
1、配置.ycm_extra_conf.py
檔案,此檔案在不同的專案執行不同的編譯標誌,YCM 會在當前目錄及上級目錄查詢這個檔案,也可以指定一個全域性檔案作為備用,這個檔案的模板在 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
, 是作者開發 YCM 的時候使用的,修改後檔案https://github.com/Kessity/Documents/blob/master/.ycm_extra_conf.py;
注:可能需要做如下修改:加入一些庫檔案,用命令檢視庫路徑
$ echo | clang -v -E -x c++ -
在輸出的內容中找到如下兩行,這下面的就是庫路徑,將其貼上到 .ycm_extra_conf.py
檔案中
#include "..." search starts here:
#include <...> search starts here:
2、安裝補全庫,具體參考YouCompleteMe資料夾下的readme檔案中的安裝介紹:
3、關於補全c語言全域性問題:
預設情況下輸入 .
, ->
, ::
之後會觸發補全函式和類, 但是預設情況下是不補全全域性函式的,所以 C 語言中的 printf 之類的函式就無法補全解決辦法就是手動呼叫補全,對應的 YCM 函式是 ycm_key_invoke_completion,
將其繫結到快捷鍵 let g:ycm_key_invoke_completion = '<C-a>'
(預設是 <C-Space>
)。
ctags安裝與配置
ctags可以建立原始碼樹的標籤索引(標籤就是一個識別符號被定義的地方,如函式定義),使程式設計師在程式設計時能迅速定位函式、變數、巨集定義等位置去檢視原形,下載並安裝ctags,終端輸入命令$ sudo apt-get install ctags,建立索引檔案命令$ ctags -R *。
UltiSnips安裝配置
UltiSnips 是個程式碼塊引擎,在 .vimrc 中引入(外掛和程式碼塊集合):
Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'
以下是幾個經常用到的程式碼片段 demo。
-
插入當前日期 (trigger: date)
-
插入當前時間(trigger: datetime)
-
在 erb 中插入 if 語句
建立自定義程式碼塊
在 ~/.vim 下建立資料夾,命名為UltiSnips,用來存放自定義的程式碼塊。有的同學會直接修改 ~/.vim/bundle/vim-snippets 中的snippets,建議不要這個幹!因為這個目錄是Git倉庫,每次重灌外掛會丟失未提交的檔案。還是單獨建立一個UltiSnips資料夾來儲存自定義程式碼片段比較穩妥。為了穩妥期間,也可以把vim-snipptes檔案家下的UltiSnips複製一份,本機測試,需要將vim-snippets下的UltiSnipps重新命名。
解決YouCompleteMe和UltiSnips快捷建的衝突
YCM和UltiSnips預設的快捷鍵都是Tab鍵,一起使用會有衝突,so,改鍵:
YCM快捷鍵:
let g:ycm_key_list_select_completion = ['<tab>', '<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']
UltiSnips快捷鍵:
let g:UltiSnipsExpandTrigger="<c-j>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
字典sdcv的安裝
1、安裝字典:
sudo apt install sdcv
2、將字典源放在家目錄下,建立資料夾:.stardict/dic,放入裡面即可;
3、在vim裡面可用:
function! Mydict()
let expl=system('sdcv -n ' .
\ expand("<cword>"))
windo if
\ expand("%")=="diCt-tmp" |
\ q!|endif
28vsp diCt-tmp
setlocal buftype=nofile bufhidden=hide noswapfile
1s/^/\=expl/
1
endfunction
nmap F :call Mydict()<CR>
nmap <C-k> : !sdcv <C-R>=expand("<cword>")<CR><CR>
h5補全工具html5.vim安裝
在此工具資料夾下執行make命令就可以啦!