yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
20220726_dein_ddc_vim_check

最低限の労力で、MacにVimのパッケージ管理ツールdein.vimと、入力補完プラグインddc.vimのインストールする

2022-07-26
2022/08/13追記
tomlファイルに設定を書く場合は以下記事参考
deinのプラグイン設定を.vimrc直書きから、tomlファイルへお引越し

最低限の労力で、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で適当なファイルを編集すると補完機能が動くことが確認できた

20220726_dein_ddc_vim_check


ちなみに、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

以上。