この記事はVim Advent Calendar 2012の341日目の記事です。
前回(84日前)Vimプラグインのスクリプトファイルからヘルプファイルを生成するというのをやりました。
しかしGitHubではREADME.md
ファイルがリポジトリの窓口であり、説明であり、これによってそのプラグインの概要を知り、それを導入するかどうかが判断されます。
README.md
を置いていないとプラグインの詳細を知るためには、リポジトリトップから2クリックもかかるdoc/xxx.txt
を見に行かなければいけませんし、リポジトリトップにはGitHubがREADME.md
を置けと勧めてきます。
つまり我々はREADME.md
を書くことを暗に強いられているのです。
しかし、すでにhelpに概要含め色々書いているのにさらに別の場所で二重に概要を書かなければいけないなんて苦痛です。
なぜhelpに書いたことを改めて書かなければいけないのでしょうか。
そこでLeafCage/vimhelpgeneratorに:HelpIntoMarkdown
というコマンドを追加しました。*1
ヘルプファイル内でREADME.md
に含めたいところをビジュアル行選択(“概要”や“使い方”などを選択すると良いでしょう)して、
:HelpIntoMarkdown
を実行すると、
そのヘルプファイルの上にあるREADME.md
ファイルが開かれます。*2
ここでP
すると、先ほど行選択されたテキストがmarkdown形式に変換されてput
されます。(README.md
を初めて作成するときにはプラグイン名と説明もhelpファイルの第1行目から生成されます。)
手直しした後、:write
しましょう。
:HelpIntoMarkdown
はアンダースコア(_)のエスケープには対応していません*3。自力で対応させて下さい。
もしもヘルプファイルを改修したときには改修した箇所をビジュアル行選択して:HelpIntoMarkdown
して下さい。その部分の変換結果がレジスタにセットされるのでREADME.md
にて貼り付けて手直しして下さい。
これでヘルプファイルとREADME.md
を管理する手間を大幅に減らすことが出来ました。
:VimHelpGeneratorVirtualでヘルプを仮想バッファに出力する
vimhelpgeneratorには、:VimHelpGeneratorVirtual
というコマンドも加わっています。
:VimHelpGenerator
が生成したバッファをそのまま書き込むのに対し、:VimHelpGeneratorVirtual
は仮想バッファに出力します。
これにより、vimhelpgenerator
の、ヘルプファイルを初めて作るときにしか使えなかったという欠点を解消しました。
プラグインに機能を追加するなどしてヘルプの改修の必要性が生じたとき、:VimHelpGeneratorVirtual
を実行して、出力された仮想バッファ内で必要な部分だけを、既存のヘルプファイルにコピーペースト(Vim風に言うとヤンクプット)すれば良いのです。
単純にVimHelpGenerator
の出力を確認したいときにも利用できます。
:VimHelpGenerator
を実行したときにすでにヘルプファイルが存在している場合もこのモードで出力されます。