【MacでVim】part3 プラグイン管理

Vim

dein.vimでプラグインの管理をする

有志で公開されているVimのプラグインを利用することで、様々な機能を追加することができます。このプラグインを管理するプラグインマネージャーを導入することで、効率的にプラグインを運用することができます。

下記のコマンドで、dein.vimをインストールします。
2つ目のコマンドで、インストール箇所を任意の場所に変更できます。

curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
sh ./installer.sh ~/.cache/dein

次に.vimrcに以下の設定を追記します

if &compatible
  set nocompatible
endif
" Add the dein installation directory into runtimepath
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim

" tomlセット
let s:toml_dir=expand('~/.cache/dein/')
let s:toml=s:toml_dir . 'dein.toml'
let s:toml_lazy=s:toml_dir . 'dein-lazy.toml'

if dein#load_state('~/.cache/dein')
  call dein#begin('~/.cache/dein')

  call dein#add('~/.cache/dein/repos/github.com/Shougo/dein.vim')
  call dein#add('Shougo/deoplete.nvim')
  if !has('nvim')
    call dein#add('roxma/nvim-yarp')
    call dein#add('roxma/vim-hug-neovim-rpc')
  endif

  call dein#load_toml(s:toml)
  call dein#load_toml(s:toml_lazy, {'lazy': 1})

  call dein#end()
  call dein#save_state()
endif

" インストールしていないプラグインがあればインストール
if dein#check_install()
  call dein#install()
endif

filetype plugin indent on
syntax enable

tomlファイルを生成しておきます

cd ~/.cache/dein/
touch dein.toml dein-lazy.toml

プラグインを追加する

便利だと感じたプラグインをインストールしていきます

nerdtree

preservim/nerdtree
A tree explorer plugin for vim. Contribute to preservim/nerdtree development by creating an account on GitHub.

このプラグインを入れると、Vimでグラフィカルなディレクトリツリーが表示できるようになります。

~/.cache/dein.tomlに以下設定を追記します

[[plugins]]
repo = 'preservim/nerdtree'
hook_add = '''
 let NERDTreeShowHidden=1
  nnoremap <silent><C-a> :NERDTreeFind<CR>:vertical res 30<CR>
'''

Ctrl + Aでディレクトリツリーを開く
:qでディレクトリツリーを閉じる

vim-airline

このプラグインを入れると、見た目のかっこいいステータスバーが表示されるようになります。

~/.cache/dein.tomlに以下設定を追記します

[[plugins]]
repo = 'vim-airline/vim-airline'
[[plugins]]
repo = 'vim-airline/vim-airline-themes'
depends = 'vim-airline'
hook_add = '''
  let g:airline_theme = 'dracula'
  let g:airline#extensions#tabline#enabled = 1
  let g:airline#extensions#tabline#buffer_idx_mode = 1
  let g:airline#extensions#tabline#fnamemod = ':t'
'''