coc.nvimを使いVimの自動補完を強化する

Vimで自動補完する

あまり知られていないかもしれませんがVimは標準で自動補完する機能があります。試しに何かファイル(既にある程度文字列が入力されいるファイル)を開いて挿入モードで文字を途中まで入力してから、<Ctrl + n>を入力してみて下さい。ファイル内の文字列などから幾つか単語がサジェストされるかと思います。補完したい単語の上にカーソルを合わせて<Ctrl + y>を入力すると選択した単語が入力されます。

ただしこのVim標準の補完機能だと<Ctrl + n>を押すというひと手間があり少々面倒です。VSCodeなら文字を入力する度に候補が出てきて<Tab>を何回か押すだけで選択が出来るかと思います。

標準のままでは難しいですがcoc.nvimというプラグインをインストールするとVimでも同様な事が可能になります。今回はcoc.nvimプラグインの導入と使い方をまとめてみました。

coc.vimプラグインを導入する

まずはcoc.vimをVimawesomeを参照してインストールして下さい。毎度の事ですがVimプラグインの管理方法はこちらを参考にして下さい。またNode.jsも必要なのでインストールして下さい。一応公式にはNode.js >= 10.12である必要があるそうです。

インストールしたら.vimrcに下記を記述して下さい。

"" coc.nvim
""" <Tab>で候補をナビゲート
function! s:check_back_space() abort
  let col = col('.') - 1
  return !col || getline('.')[col - 1]  =~ '\s'
endfunction

inoremap <silent><expr> <Tab>
      \ pumvisible() ? "\<C-n>" :
      \ <SID>check_back_space() ? "\<Tab>" :
      \ coc#refresh()
""" <Tab>で次、<S+Tab>で前
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

自動補完だけならこの設定だけでもかなり良くなります。Vimを再起動してファイルを編集してみるとさっきまでとは違い自動で単語がサジェストされるようになります。<Tab><Shift + Tab>で単語を選択出来ます。

終わりに

coc.nvimは実は補完機能以外にもたくさんの機能を提供しています。ctagsのジャンプを便利に出来るみたいです。自分がctags自体使い始めたばかりでしたので今回は割愛しました。ゆくゆくは記述します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA