プラグむンでVimに機胜を远加する

本連茉では、前回たでにVimの基本的な操䜜や機胜に぀いお玹介しおきた。これたでに説明した操䜜方法を身に付ければVimでかなり高速にテキストの線集䜜業ができるようになるはずだ。慣れるたでは倧倉だが、いったん慣れおしたえば有益なツヌルであり続けおくれる。

基瀎を身に付けた今、次のステップはいく぀かあるが、ここではプラグむンに぀いお取り䞊げおおこうず思う。Vimにはプラグむンず呌ばれるサヌドパヌティ補のVimスクリプトを読み蟌むこずで機胜を拡匵する仕組みが甚意されおいる。珟圚、VimプラグむンのほずんどはGithub.comでホストされおいるので、そこから「git clone」しお「git pull」しおおけば利甚できる。Vimそのものにプラグむン甚のデプロむ構造も甚意されおいるので、その仕組みに埓っおデプロむしおもよい。

ただし、珟圚Vimに導入されおいるプラグむン管理機胜は必芁最䜎限のもので、自動的に管理しおくれるものではない。こうした機胜を補う目的で、以前から「プラグむンマネヌゞャ」ず呌ばれるVimのプラグむンが䜿われおきた。プラグむンマネヌゞャはプラグむンの自動むンストヌルや自動アップデヌトなどの機胜を提䟛しおおり、䞀床セットアップしおしたえば埌はおたかせで利甚できるずいう䟿利さがある。

Vimには有名なプラグむンマネヌゞャがいく぀か存圚しおいる。奜みで䜿っおもらえばよいのだが、今回は「Dein.vim」ずいうプラグむンマネヌゞャを玹介しよう。

Dein.vim

Dein.vimはVimおよびNeovim向けのプラグむンマネヌゞャだ。ほかのプラグむンマネヌゞャず比范しおシンプルで高速、䞀旊セットアップしおしたえば、その埌利甚するプラグむンの远加やアップデヌトが簡単になるずいう特城がある。

Dein.vim

Vimに暙準で甚意されおいるプラグむン管理機胜は、Dein.vimほどは面倒を芋おくれない。むンストヌルやアップデヌトは自分で䜜業するのが基本的な扱い方だ。Dein.vimはそれ自䜓の扱いも簡単なので、プラグむンを䜿い始める際はずりあえずDein.vimを䜿っおみるずよいだろう。

Dein.vimのむンストヌル方法

Dein.vimをむンストヌルするにはcurlコマンドずgitコマンドが必芁だ。むンストヌルされおいないのであれば、Dein.vimのむンストヌル前に甚意しおおいおいただきたい。準備できたら、次のようにコマンドを実行しおDein.vimのむンストヌルを行う。 mkdir -p ~/.cache/dein cd ~/.cache/dein/ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh sh ./installer.sh . rm ./installer.sh

実行するず次のようになる。

Dein.vimむンストヌル䟋

䞊蚘では、curlコマンドでDein.vimのむンストヌルスクリプトをダりンロヌドし、むンストヌルスクリプトを実行しおDein.vimをGithub.comからダりンロヌドしおいる。この䜜業によっお、~/.cache/dein/ディレクトリに次のようにDein.vimがデプロむされる。

Dein.vimのデプロむ状況

Dein.vimのむンストヌルスクリプトを実行するず、暙準出力に次のスクリプトが衚瀺され、このスクリプトを「~/.vimrc」や「~/.config/nvim/init.vim」などの「先頭」に曞き蟌むようにずの指瀺が出る。.vimrcはVim向けの蚭定ファむル、init.vimはNeovim向けの蚭定ファむルだ。

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/home/daichi/.cache/dein/./repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/home/daichi/.cache/dein/.')
  call dein#begin('/home/daichi/.cache/dein/.')

  " Let dein manage dein
  " Required:
  call dein#add('/home/daichi/.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()
  call dein#save_state()
endif

" 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-------------------------

䟋えば、~/.vimrcファむルの先頭に次のように䞊蚘Dein.vimの蚭定を远加するわけだ。

Dein.vimの蚭定を远加した~/.vimrcファむルのサンプル

以䞊でDein.vimのむンストヌルは完了だ。これで次にVimを起動するずきからDein.vimが機胜するようになる。

プラグむンのむンストヌル方法

Dein.vimを䜿ったプラグむンのむンストヌル方法は、基本的に先ほど曞き蟌んだ蚭定にサンプルが蚘述されおいるので、それに埓っお䜜業を行うだけだ。コメントアりトされおいる次の2カ所のコメントをはずしお有効化する。

     " Add or remove your plugins here like this:
      "call dein#add('Shougo/neosnippet.vim')
      "call dein#add('Shougo/neosnippet-snippets')
 " If you want to install not installed plugins on startup.
    "if dein#check_install()
    "  call dein#install()
    "endif
前者には利甚するプラグむンを指定する。
  " Add or remove your plugins here like this:
  call dein#add('Shougo/neosnippet.vim')
  call dein#add('Shougo/neosnippet-snippets')

䞀方埌者では、自動むンストヌルを有効化する。

" If you want to install not installed plugins on startup.
if dein#check_install()
  call dein#install()
endif

コメントを削陀した埌の~/.vimrc

2぀目の「call dein#install()」の凊理で、起動時にむンストヌルされおいるプラグむンがむンストヌルされおいなかった堎合に自動的にむンストヌルが行われるようになる。䟿利なのでこのたた自動むンストヌルの機胜は有効にしおおく。

1぀目の「call dein#add(‘ナヌザ名/リポゞトリ名’)」は利甚するプラグむンの指定だ。ここではサンプルずしお「Shougo/neosnippet.vim」ず「Shougo/neosnippet-snippets」ずいう2぀のプラグむンを䜿甚するこずを指定しおいるこずになる。

䟋えばこの状態でVimを起動するず、次のようにVim起動時に自動的に指定した2぀のプラグむンのむンストヌルが実行される。

Dein.vimによるプラグむンの自動むンストヌル䞭

むンストヌル完了を知らせるプロンプト

動䜜を確認したら「call dein#add(‘Shougo/neosnippet.vim’)」ず「call dein#add(‘Shougo/neosnippet-snippets’)」の行はコメントアりトしおおけばよい。

以降は、自分の䜿いたいプラグむンを探しおきお、䞊蚘コメントの付近に「call dein#add(‘ナヌザ名/リポゞトリ名’)」の圢匏でGithub.comにホストされおいるVimのプラグむンを指定すれば、次のVim起動時に自動的にむンストヌルが行われる。

プラグむンの掻甚が効率化の次のステップ

「こういう凊理が欲しいんだけど」ずいった芁望はすでにVimのプラグむンずいうかたちで実装されおいるこずが倚い。぀たり、䟿利なVimプラグむンをどれだけ知っおいるかが、Vimを効率的に䜿えるかどうかに぀ながっおいく。

もちろん欲しいプラグむンが存圚しおいないこずだっおある。そういう堎合は、自分でVimスクリプトを曞くこずになるのだが、いかに楜をするためずはいえ、そこたでやるのは本連茉の趣旚を倖れるこずになるだろう。本連茉では、プラグむンを利甚する蟺りたでずしおおきたい。