1. 程式人生 > >ubuntu下vim安裝與配置

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。

  1. 插入當前日期 (trigger: date)

    date

  2. 插入當前時間(trigger: datetime)

    datetime

  3. 在 erb 中插入 if 語句                                                                      ife

建立自定義程式碼塊

在 ~/.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命令就可以啦!

javascripts補全工具tern_for_vim安裝

python

Markdown