shayne's blog

Vim 插件介紹 - mucomplete/clang-complete/jedi-vim

2019/05/25 Share

本文紀錄Vim中自動補齊插件的安裝與設定方式,亦可同時顯示變數型態或funtion參數等

之前試用過YouCompleteMedeoplete,不過對我的需求來說稍嫌肥大,速度略慢
目前改用mucomplete,使用上順手許多,設置過程也蠻快速的
通常我用Vim的話是寫C與Python,故會搭配clang-completejedi-vim一起使用

安裝

Vim-plug

1
2
3
Plug 'lifepillar/vim-mucomplete'
Plug 'Rip-Rip/clang_complete'
Plug 'davidhalter/jedi-vim'

clang

1
2
# 版本可更換
sudo apt-get install llvm-6.0 libclang-common-6.0-dev clang-6.0

需檢查/usr/lib/llvm-6.0/lib有沒有libclang.so,如果沒有的話要建立一個symbolic link,不然自動補齊插件可能抓不到

1
2
cd /usr/lib/llvm-6.0/lib
sudo ln -s libclang.so.1 libclang.so

基本設置

主要都是照預設,快捷鍵可自行更改綁定方式,clang library路徑要設對在C/C++中才能正常運作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
" mucomplete, clang_complete 
set noinfercase
set completeopt-=preview
set completeopt+=menuone,noselect
let g:mucomplete#enable_auto_at_startup = 1
let g:clang_library_path='/usr/lib/llvm-6.0/lib'
let g:clang_user_options = '-std=c99'
let g:clang_complete_auto = 1

let g:jedi#popup_on_dot = 0 " It may be 1 as well
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif


" jedi-vim
let g:jedi#force_py_version = 3
let g:jedi#completions_command = '<C-N>'
let g:jedi#goto_command = '<leader>jg'
let g:jedi#documentation_command = '<leader>jd'
let g:jedi#usages_command = '<leader>ju'

使用畫面

在自動補齊時可同時顯示變數型態與function參數

CATALOG
  1. 1. 安裝
    1. 1.1. Vim-plug
    2. 1.2. clang
  2. 2. 基本設置
  3. 3. 使用畫面