Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Simple Vim plugin manager.

$
0
0

久しぶり(2年ぶり?)にVimの設定を見直そうとして調べたところ、Vim 8.0からパッケージ機能に対応して、このパッケージ機能を使用してプラグインを簡単に管理できそうです。

.vimrcにプラグインマネージャーの設定を書かなくても、ダウンロードしたプラグインを.vim/packに配置するだけで、起動時にプラグインが読み込まれるようです。

パッケージ機能の詳細は以下の記事に詳しく記載されているので、そちらをご参照ください。

Vim 8 時代のがんばらないプラグイン管理のすすめ

Vim 8.0 Advent Calendar 6 日目 パッケージ

パッケージとプラグインの配置

~/.vim|--pack||--pack1|||--start||||--plugin1||||--plugin2|||--opt||||--plugin3||||--plugin4||--pack2

パッケージ機能でpack1pack2と分ける理由がよくわからなかったので、pack1を1つだけ用意して管理したほうが楽かも。

pack1の扱いをどうするか考えた結果、プロファイルとして扱った方が正解かな?(profileと読替えても違和感はないので...)

プロファイル管理用の.vim/profilesを用意して、リンクを.vim/pack/profileに貼る。
有効にするプロファイルは1つだけにして、.vim/pack/profileのリンクを切り替える方がスマートに管理できそう。

プロファイル毎にプラグインをインストールするとアップデートが大変になるので、プラグイン管理用の.vim/pluginsを用意して、各プロファイルにプラグインのリンクを貼るほうが良さそう。

最終的なフォルダ構成は以下のようになりました。

フォルダ構成

~/|--.vim||--pack|||--profile  ->  ../profiles/p0||--plugins|||--plugin1|||--plugin2||--profiles|||--p0||||--start|||||--plugin1  -> ../../../plugins/plugin1||||--opt|||||--plugin2  -> ../../../plugins/plugin2||--vimrc.d|--.vimrc

ここまでくるとプラグインの管理が複雑になって、プロファイルやプラグインのリンクを貼るのが大変...

プラグイン管理用のコマンドを作成するしかないかな...

プラグイン毎の設定は.vim/.vimrc.dに配置して、.vimrcから読み込むべきかな?

.vimrc
source ~/.vim/vimrc.d/plugin1.vimsource ~/.vim/vimrc.d/plugin2.vim

プラグイン管理

プラグインの管理が複雑になったので、プラグイン管理用のコマンドを作成しました。

コマンドはGitHubで公開しています。
grayfox

コマンドの使用例です。

プラグインのインストール。インストール先は~/.vim/plugins/です。

grayfox install 'altercation/vim-colors-solarized'

プラグインのアンインストール。

grayfox uninstall 'altercation/vim-colors-solarized'

プロファイルの作成。プロファイルの作成先は~/.vim/profiles/<profile>です。

grayfox create MyProfile1

作成したプロファイルを使用する。

grayfox use MyProfile1

プロファイルの削除。

grayfox remove MyProfile1

プラグインの有効。

grayfox enable'altercation/vim-colors-solarized'

プラグインの無効。

grayfox disable 'altercation/vim-colors-solarized'

まとめ

これでVimのプラグインの管理がしやすくなったかな...

関連記事

Vim 8 時代のがんばらないプラグイン管理のすすめ

Vim 8.0 Advent Calendar 6 日目 パッケージ


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>