📖

インストールしたプラグインのREADME.mdをお手軽に見れるvim-readme-viewer作った

2021/12/07に公開

作った動機

世界中のvimmerは、vimについて知りたいことがあればすぐにhelpを引くと思います。
何しろ:help {知りたいこと}するだけです。
オンラインでも見ることができます。vimならここ(日本語版)、neovimならここ(英語版)です。
プラグインの設定もたいていはhelpを引きながらやれます。

便利にhelpを引くためのTipsもいろいろな人が書いています。

しかし、中にはhelpがないプラグインも存在します。
特に新しめのneovimのプラグインや、colorscheme系のプラグインにはhelpが用意されていないことが多い印象です。
そんなときは、README.mdを見にいきます。helpがなくてもそれを見れば多くの場合解決します。
ですが、困っているときにいちいちGitHubを開くのは正直面倒です。そこで、こんなプラグインを作ってみました。

使い方

詳しくはGitHubを参考にしてください。
まずは使っているプラグインマネージャーをg:readme_viewer#plugin_managerに設定してください。
筆者はdein.vimを使っているので、 下記のようにしました。

let g:readme_viewer#plugin_manager = 'dein.vim'

これによって使用できるコマンドが決まります。現在、指定可能な(サポートしている)プラグインマネージャーと、それぞれのコマンドは以下の通りです。

dein.vim :DeinReadme
vim-plug :PlugReadme
minpac :PackReadme
packer.nvim :PackerReadme

vimを起動し、おもむろに:DeinReadme vim-readme-viewerと実行します。

doing :DeinReadme

これで簡単にREADME.mdを見ることができました🎉

ちなみに、ここからさらに:ReadmeDirと実行すると、プラグインがインストールされているディレクトリを表示します。
これは:e %:p:hをしているだけですが、プラグインの内部構造を知りたいときに、何らかのファイラ系プラグインを使っていると便利です。
筆者はvim-molderというファイラプラグインを使っていて、この動作を<Space>fで行うようにしています。
個人的に使っているプラグインの中を見たくなる機会は多いので、実際のところREADME.mdを見るより重宝しています。

また、:ReadmeHelpと実行すると、そのプラグインのhelpを表示します。helpが存在しないと失敗します。

実装と問題点

vim-readme-viewerはデフォルトで:helpと同じようにウィンドウを開く、つまりもともと開いているヘルプウィンドウを上書きするように開きます。
これは:helpcloseを事前に行うことで再現しています。
また、ユーザーが定義したExコマンドの内部で:executeを使っている場合、:vertical:topleftなどの後に続くコマンドの動作を変更するコマンド[1]は動作しません。
v:countなどど同じようにv:verticalのような変数があればよいのですが…

追記

現在では<q-mods>を使うことによってcommand modifierに対応しています。ちゃんとhelp見ておけばよかった…

最後に

今は上記の4つのプラグインマネージャーにのみ対応していますが、GitHubでStarが100以上あるものは将来的にサポートする予定です。
それにしてもvim-pathogenとかVundle.vimとかもはや使っている人いるんでしょうかね。
NeoBundleは公式にdeprecatedになったのでサポートしません。
コマンドの追加など、Pull-Requestも気軽にお待ちしています。

自分の作ったこのプラグインが多くの人に使ってもらえることはうれしいことです。しかし、それは世の中にhelpが書かれていないプラグインがあるということです。

「すべてのvimmerはhelpを読もう。
すべてのプラグイン開発者はhelpを書こう。」

結局はこれが一番大事です。

脚注
  1. :help :verticalからのセクションに完全なリストがあります ↩︎

GitHubで編集を提案

Discussion