changelog.vim : vimでchangelogメモ

これを読んでみて私もchangelogメモを始めてみることにしました。
Vimには標準でchangelog.vimというプラグインがあります。使い方はこちらが参考になります。
で、このプラグインはヘルプによれば.vimrcに

runtime ftplugin/changelog.vim

とするとグローバルにマッピングされます。この状態でoを押すとカレントディレクトリから再帰的にルートまで、ファイル名が「Changelog」のファイルを探し、もし見つかればそのファイルにエントリーを追加するとなっています(見つからなかったら何もしません)。ところが、私のMacVim-kaoriyaに付属してきた、Last Revision 20009-05-25 のchangelog.vimだと、「E118: 関数の引数が多過ぎます: 15_new_changelog_entry」とエラーになってしまいます。ということで、ソースを見てみると、

173  function! s:new_changelog_entry()

となっているのに、

296  call s:new_changelog_entry(prefix)

とおもいっきり引数有りで呼び出しています。少し調べてみたところ、このページが見つかりました。
Proposed change to ftplugin/changelog.vim
これを読む限り、b:changelog_entry_prefixという関数が定義されてあればそれによって、そうでなければChangelogファイルから現在のファイルまでの総体パスがprefixとなり、エントリーが追加されます。つまり、

Changelog
hoge/
  hogehoge.c

みたいなときに、hogehoge.cを開いているバッファからoとすれば

 * hoge/hogehoge.c : 

と自動で現在のバッファの情報を付け加えてくれるようです。ところがなぜか、changelog.vimはcall s:new_changelog_entry(prefix)となっているのに肝心の関数本体は変更されていません。個人的にはoと押したときに、「Changelog」ファイルが見つからなければChangelogメモを開いてそこにエントリーを追加してくれればいいなと思ったので、そこら辺を修正してみました。

最後の部分で変更してるところがChangelogメモを開くために付け加えたところです(Changelogメモに現在のファイルへのパスを書いてもしかたないので)。それ以外のところは上記のサイトそのままです。これで、どんなファイルを開いていても、oを押せば、
・もしルートまで再帰的に探索していって「Changelog」ファイルがあれば、それに(prefixつきで)エントリーを追加
・そうでなければ、Changelogメモを開いてエントリーを追加
となります。ここら辺はいずれ変更されるんでしょうか。とりあえず今のところはなかなかいい感じです。


(参考)
:help ft-changelog-plugin