C言語の自動補完を実装する方法はいくつかありますがその中でも簡単な clang_complete を使って実装する方法を紹介します。
Vim-plugをインストール
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
プラグインマネージャーをインストールします。
※これを使わず直接Gitからインストールしてプラグインを管理することも可能ですが管理が煩雑になり、アップデートやアンインストールを手動で行う必要があるため非推奨です。
.vimrcファイルの設定
" Vim-Plug設定
call plug#begin('~/.vim/plugged')
" Clang Completeプラグインを追加
Plug 'Rip-Rip/clang_complete'
call plug#end()
Vim-plug を使用するために、Vimの設定ファイルである .vimrc に Vim-plug の設定を追加します。
今回の場合は ‘Rip-Rip/clang_complete’ リポジトリをインストールするように指定しています。
vim ~/.vimrc コマンドで編集画面を開けます
プラグインのインストール
:PlugInstall
.vimrcファイルを保存したら、Vimを再起動してプラグインをインストールします。
Clang Completeプラグインの設定
" clang_completeプラグインの設定
let g:clang_use_library = 1
let g:clang_library_path = '/usr/lib/llvm-11/lib'
let g:clang_snippets = 1
" 自動補完を有効にする
autocmd FileType c setlocal omnifunc=clang_complete#Complet
.vimrcファイルにプラグインの設定を追加して有効にします。
let g:clang_use_library = 1: このグローバル変数は、Clang CompleteプラグインがClangライブラリを使用してC/C++のコード解析を行うかどうかを制御します。1はClangライブラリを使用することを有効にします。
let g:clang_library_path = ‘/usr/lib/llvm-11/lib’: このグローバル変数は、Clang CompleteプラグインがClangライブラリのインストールパスを知るために使用します。ここでは /usr/lib/llvm-11/lib というパスを指定しています。
let g:clang_snippets = 1: このグローバル変数は、コードスニペットのサポートを制御します。1はコードスニペットのサポートを有効にします。
autocmd FileType c setlocal omnifunc=clang_complete#Complete: autocmd コマンドを使用して、C言語ファイルタイプに対してomnifunc オプションを clang_complete#Complete に設定しています。
※omnifunc は、Vimの機能の一部で、コード補完やコード分析のために使用されるオプション
まとめ
YouCompleteMeプラグイン(自動補完)の設定で少し躓いたので、それよりも簡単そうなプラグインを導入してみました。まあ、設定ファイルに凝りだすと日が暮れてしまうのでどこからかテンプレのようなものを引っ張ってきたほうがいいなと思いました笑
コメント