最低限の労力で、MacにVimのパッケージ管理ツールdein.vimと、入力補完プラグインddc.vimのインストールする
最低限の労力で、MacにVimのパッケージ管理ツールdein.vimと、入力補完プラグインddc.vimのインストールする
業務ではVS Codeを使っているが、プライベートではVimを使っていこうと思い、dein.vimというVimのプラグイン管理ツールをインストールした
カスタマイズ性が高く、一番シンプルな方法が分かりづらかったので、メモを残しておく
dein.vimのインストール
パッケージ管理ツールdein.vimのありかはこちら
https://github.com/Shougo/dein.vim
Readmeに従ってインストールしていく
% curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2135 100 2135 0 0 5531 0 --:--:-- --:--:-- --:--:-- 5545
% ls installer.sh
% sh ./installer.sh ~/.cache/dein Install to "$HOMEi/.cache/dein/repos/github.com/Shougo/dein.vim"... git is /usr/local/bin/git Begin fetching dein... Cloning into '$HOMEi/.cache/dein/repos/github.com/Shougo/dein.vim'... remote: Enumerating objects: 64, done. remote: Counting objects: 100% (64/64), done. remote: Compressing objects: 100% (53/53), done. remote: Total 64 (delta 1), reused 33 (delta 0), pack-reused 0 Unpacking objects: 100% (64/64), done. Done. Please add the following settings for dein to the top of your vimrc (Vim) or init.vim (NeoVim) file: "dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=$HOMEi/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('$HOMEi/.cache/dein') " Let dein manage dein " Required: call dein#add('$HOMEi/.cache/dein/repos/github.com/Shougo/dein.vim') " Add or remove your plugins here like this: "call dein#add('Shougo/neosnippet.vim') "call dein#add('Shougo/neosnippet-snippets') " Required: call dein#end() " Required: filetype plugin indent on syntax enable " If you want to install not installed plugins on startup. "if dein#check_install() " call dein#install() "endif "End dein Scripts------------------------- Done. Complete setup dein! %
インストール結果に出力されている通り、「dein Scripts—————————–」配下のコードを「$HOME/.vimrc」の先頭に記載する
vimを立ち上げるときに必要パッケージを自動インストールしたいので、「if dein#check_install()」以下のコメントアウトは外しておく
(自動アンインストールは、手動でやるか追加でスクリプトを書く必要がある)
% cat ~/.vimrc "dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=$HOMEi/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('$HOMEi/.cache/dein') " Let dein manage dein " Required: call dein#add('$HOMEi/.cache/dein/repos/github.com/Shougo/dein.vim') " Add or remove your plugins here like this: "call dein#add('Shougo/neosnippet.vim') "call dein#add('Shougo/neosnippet-snippets') " Required: call dein#end() " Required: filetype plugin indent on syntax enable " If you want to install not installed plugins on startup. if dein#check_install() "★コメントアウトを外す call dein#install() "★コメントアウトを外す endif "★コメントアウトを外す "End dein Scripts-------------------------
これでdein.vimのインストールは完了
パッケージ管理ツールdein.vimで、入力補完プラグインddc.vimのインストール
次に、dein.vimを使って、入力補完パッケージのddc.vimをインストールする
ddc.vimのありかはこちら
https://github.com/Shougo/ddc.vim
ddc.vimの前提条件として、「deno」と「denops.vim」の二つが必要なのでインストールする
自分はMacなので、homebrewを使ってインストール
% brew install deno
denops.vimは、denoをvimで扱える様にしたものなので、~/.vimrcに追記すればOK
必ず、「call dein#begin(‘$HOME/.cache/dein’)」と「call dein#end()」の間に記載する
(dein.vimのパッケージはtomlファイルで管理することもできるが、今回はシンプルにvimrcにベタ書き)
% cat ~/.vimrc "dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=$HOME/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('$HOME/.cache/dein') " Let dein manage dein " Required: call dein#add('$HOME/.cache/dein/repos/github.com/Shougo/dein.vim') " Add or remove your plugins here like this: " call dein#add('Shougo/neosnippet.vim') " call dein#add('Shougo/neosnippet-snippets') " Ddc: call dein#add('Shougo/ddc.vim') "★ 追記 call dein#add('vim-denops/denops.vim') "★ 追記 " Required: call dein#end() " Required: filetype plugin indent on syntax enable " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif "End dein Scripts-------------------------
ddc.vimを動かすためには、sourcesとfiltersとやらが必要なので、インストールしておく
色々あるが作者様のブログでインストールしていたものを追加
「call dein#end()」の直後に設定も追記しておく
参考:新世代の自動補完プラグイン ddc.vim
% cat ~/.vimrc "dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=$HOME/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('$HOME/.cache/dein') " Let dein manage dein " Required: call dein#add('$HOME/.cache/dein/repos/github.com/Shougo/dein.vim') " Add or remove your plugins here like this: " call dein#add('Shougo/neosnippet.vim') " call dein#add('Shougo/neosnippet-snippets') " Ddc: call dein#add('Shougo/ddc.vim') call dein#add('vim-denops/denops.vim') call dein#add('Shougo/ddc-around') "★ 追記(filter) call dein#add('Shougo/ddc-matcher_head') "★ 追記(filter) call dein#add('Shougo/ddc-sorter_rank') "★ 追記(filter) call dein#add('Shougo/ddc-nextword') "★ 追記(source) " Required: call dein#end() " Ddc: "★ 追記ここから call ddc#custom#patch_global('sources', ['around', 'nextword']) call ddc#custom#patch_global('sourceOptions', { \ 'around': {'mark': 'A'}, \ 'nextword': {'mark': 'nextword'}, \ '_': { \ 'matchers': ['matcher_head'], \ 'sorters': ['sorter_rank']}, \ }) call ddc#enable() "★ 追記ここまで " Required: filetype plugin indent on syntax enable " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif "End dein Scripts-------------------------
以上で、bein.vimを使ったddc.vimのインストール完了
動作確認
開いていればVimを一旦閉じて、再度Vimで適当なファイルを編集すると補完機能が動くことが確認できた
ちなみに、vimの基本設定(set hogehoge)は、dein設定の後に書いておくで良さそう
% cat ~/.vimrc "dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath+=$HOME/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin('$HOME/.cache/dein') " Let dein manage dein " Required: call dein#add('$HOME/.cache/dein/repos/github.com/Shougo/dein.vim') " Add or remove your plugins here like this: " call dein#add('Shougo/neosnippet.vim') " call dein#add('Shougo/neosnippet-snippets') " Ddc: call dein#add('Shougo/ddc.vim') call dein#add('vim-denops/denops.vim') call dein#add('Shougo/ddc-around') " filter call dein#add('Shougo/ddc-matcher_head') " filter call dein#add('Shougo/ddc-sorter_rank') " filter call dein#add('Shougo/ddc-nextword') " source " Required: call dein#end() " Ddc: call ddc#custom#patch_global('sources', ['around', 'nextword']) call ddc#custom#patch_global('sourceOptions', { \ 'around': {'mark': 'A'}, \ 'nextword': {'mark': 'nextword'}, \ '_': { \ 'matchers': ['matcher_head'], \ 'sorters': ['sorter_rank']}, \ }) call ddc#enable() " Required: filetype plugin indent on syntax enable " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif "End dein Scripts------------------------- " ★vimの基本設定 set number set title set paste set ambiwidth=double set tabstop=2 set expandtab set shiftwidth=2 set smartindent set list set nrformats-=octal set hidden set history=50 set virtualedit=block set whichwrap=b,s,[,],<,> set backspace=indent,eol,start set wildmenu
以上。