ddc.vimは、Vimで自動補完を行うことができる、とても優れたプラグインです。
今回は、ddc.vimの使い方を紹介します。
ddc.vimについて
ddc.vimは、Shougoさんが開発している、Vimの自動補完プラグインです。
GitHub: Shougo/ddc.vim
このプラグインの大きな特徴は、小さなパーツを組み立てていく形で、自分が欲しい機能だけを持った自動補完機能を作っていくことができる、というところだと思います。
たとえば、「ddc-around」というsourceと「ddc-matcher_head」というfilterを組み合わせることで、カーソルの近くにあるワードを入力候補として表示してくれます。
ddc.vimを動かすために必要なツール
ddc.vimを動かすには、denops.vimというツールが必要になります。
さらに、denops.vimを使うには、Denoというランタイムが必要になります。
denops.vimはこのあとvim-plugを使って管理するとして、まずはDenoをインストールしてみましょう。
インストール方法は、以下のサイトにコマンドが書かれていますので、自分の環境に合わせたものを実行してください。
Deno : https://deno.land/
ddc.vimのインストール
では、ddc.vimをインストールしていきましょう。
今回、インストールにはvim-plugを使います。
ddc.vimと、これを動かすために必要なdenops.vimをインストールします。
call plug#begin()
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
call plug#end()
さらに、以下のコマンドを実行します。
:source $MYVIMRC
:PlugInstall
これでddc.vimのインストールが完了しました。
しかし、ddc.vimは、それ単体では動作しません。
sourceとfilterというものがあり、これらを入れてはじめて、ddc.vimが動作するのです。
sourceについて(ddc-around)
ddc.vimはsourceやfilterを使うことで、動かすことができます。
ここではまず、sourceを使って、実際にddc.vimを動かしてみます。
さまざまなsourceがありますが、今回は「ddc-around」というsourceを使ってみます。
ddc-aroundは、カーソル付近のワードを取得してくれるものです。
つまり、そのカーソル付近のワードが、候補としてカーソルの下に表示されるようになります。
call plug#begin()
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
call plug#end()
さらに、以下のコマンドを実行します。
:source $MYVIMRC
:PlugInstall
これでddc-aroundをインストールすることができました。
さらに、設定をしていきましょう。
call plug#begin()
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
call plug#end()
" 使いたいsourceを指定する
call ddc#custom#patch_global('sources', ['around'])
" ddc.vimの機能を有効にする
call ddc#enable()
これで、2文字入力すると、入力候補の一覧が表示されるようになります。
しかし、このままでは入力した文字には対応しておらず、関係のないワードばかりが並びます。
そこで、filterの出番です。
「ddc-matcher_head」というフィルターを使うことで、ワードの候補を入力中のものに制限することができます。
filterについて(ddc-matcher_head)
つづいてfilterを使ってみましょう。
ここでは「ddc-matcher_head」というフィルターを使ってみます。
「ddc-matcher_head」は、ワードの候補を入力中のものに絞ってくれるものです。
call plug#begin()
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
Plug 'Shougo/ddc-matcher_head'
call plug#end()
さらに、以下のコマンドを実行します。
:source $MYVIMRC
:PlugInstall
つづいて、設定をしていきましょう。
call plug#begin()
Plug 'Shougo/ddc.vim'
Plug 'vim-denops/denops.vim'
Plug 'Shougo/ddc-around'
Plug 'Shougo/ddc-matcher_head'
call plug#end()
" 使いたいsourceを指定する
call ddc#custom#patch_global('sources', ['around'])
" sourceOptionsのmatchersにfilter指定することで、候補の一覧を制御できる
call ddc#custom#patch_global('sourceOptions', {
\ '_': {
\ 'matchers': ['matcher_head'],
\ }})
" ddc.vimの機能を有効にする
call ddc#enable()
これで、表示される候補が、入力した文字から始まるものだけになりました。
まとめ
ddc.vimは、Shougoさんによる開発の、Vimの自動補完プラグインです。
小さなパーツを組み合わせて欲しい機能だけを組み込んでいく、という作りなので、他のプラグインとの衝突をうまく回避できるようになっています。