この記事ではプラグインマネージャーを使ってneovimにプラグインをインストールし、設定する方法を解説します。
Neovimには様々なプラグインマネージャーが存在しますが、今回はPacker.nvimを使って解説します。Packerは100%luaで書かれており、neovimのluaサポートをうまく活かしているプラグインマネージャーです。
まずはPackerをgitでインストールします。
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
プラグイン設定ファイル
次にプラグインを設定するplugins.luaを以下の通り作成します。
nvim ~/.config/nvim/lua/user/plugins.lua
このファイルに追加したいプラグインを記載していきます。
Packerをインストールすると様々なPackerコマンドをNeovimのコマンドラインで使えるようになります。例えばPackerUpdateはプラグインを最新の状態に更新するコマンドで、PackerCompileはインストールしたプラグインをコンパイルするコマンドになります。
最も頻繁に使うのはPackerSyncで、これはPackerUpdateとPackerCompileが1つになったコマンドで、plugins.luaで設定を更新する度に以下のように実行するべきものです。
:PackerSync
ただ、plugins.luaを保存する度に手動でPackerSyncを実行するのは大変なので、以下のようにautocmdを使って自動化します。
vim.cmd [[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerSync
augroup end
]]
なお参考までに、Packerでインストールしたプラグインが保存されるディレクトリーは、~/.local/share/nvimになります。
プラグインの記載方法
さて、いよいよプラグインの記載方法ですが、以下のようになります。
return require('packer').startup(function(use)
-- Packerに自分自身を管理させる
use 'wbthomason/packer.nvim'
-- インストールしたいプラグイン例
use 'rstacruz/vim-closer'
end)
まず最初のプラグインですが、これはPackerのレポジトリー名で、plugin.luaを更新する際にPacker自身も更新されるようにするためのものです。
use "wbthomason/packer.nvim"
その次の行から、追加したいレポジトリーを一行づつ記載していきます。ほとんどのプラグインはgithubのレポジトリーなので、以下のようにuseの後にレポジトリー名を記載します。
use 'rstacruz/vim-closer'
なお、Packerにはプラグインのロードを起動時以外にする機能があります。これを有効にすると、~/.local/share/nvim/site/pack/packer/startディレクトリーではなく~/.local/share/nvim/site/pack/packer/optディレクトリーにプラグインがインストールされ、Neovim起動時にロードされなくなります。起動時の代わりに、いつロードするかはcmdやft(ファイルタイプ)で指定出来ます。
もしこの機能を使いたい場合は、useでopt = trueとします。
use {'rstacruz/vim-closer', opt = true, cmd = {'Dispatch', 'Make'}}
プラグイン設定ファイルの読み込み
最後にplugins.luaの読み込みですが、~/.config/nvim/init.luaに以下の一行を加えるだけです。
require "user.plugins"
これでインストールした様々なプラグインがNeovim起動時にロードされ使えるようになります。
Neovimには多くのプラグインが存在しますので、ぜひ様々なプラグインを試して自分に合ったものを見つけてみましょう。
