LoginSignup
3
3

More than 5 years have passed since last update.

Vim8でプラグイン管理

Last updated at Posted at 2019-03-24

重い腰を上げてVim8にしました。ついでにvimrcとプラグインの整理も。

できるだけミニマムにしたかったので、使うプラグインをゴリゴリ削りました。
プラグインの管理も、Vim8自体のプラグイン機能を使ってできるぽいとのことだったので、
今まで使っていたdeinをやめました。

pluginを登録する

vimの起動時に自動的に読み込みたいものは
.vim/plugin/hoge/start/
遅延ロード任意のタイミングで読み込みたいものは
.vim/plugin/hoge/opt/
に置きます。
/opt/に置いたものは、:packaddで読み込めます。
gitでvimの設定を管理している場合は、submoduleとして登録しておくと便利。

遅延読み込み?

ここで少しハマったのですが、
「optに置くものは遅延読み込み」という表現をよく見かけますが、それはちょっと違いまして、、、
(:h plugin にも"lazy"という表現は見当たらない)

vimの起動→vimrcの読み込み→/start/のプラグインの読み込み
となります。
この場合、プラグインに対しての設定をvimrcに書くと、「未知の関数です」と言われて死んでしまうんですね。。。

例えば、deniteのキーマッピングをカスタマイズしたくて

.vimrc
nnoremap [denite] <Nop>
nmap <C-c> [denite]
if executable('rg')
  call denite#custom#var('file_rec', 'command', ['rg', '--files', '--glob', '!.git'])
  " 〜いろいろ〜 (詳しくはGitHubへ)
endif

とか書いていたのですが、「denite#custom#varなんて知らねーぞ」と言われました。せやな。

deniteは/opt/に置いて、

.vimrc
packadd denite.nvim
nnoremap [denite] <Nop>
nmap <C-c> [denite]
if executable('rg')
  call denite#custom#var('file_rec', 'command', ['rg', '--files', '--glob', '!.git'])
  " 〜いろいろ〜
endif

としてあげたらいけました。やったね。

余談

整理のついでにいろいろやってみた。
- NERDTree→denite
- ターミナルや:!でrg(grep)→deniteでrg
- tigでGit操作→vim-fugitive
など。

現場からは以上です!

リンク集

.vimrc
dotfiles
Twitter

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3