caw.vim was changed command name “i, I, a” -> “hatpos, zeropos, dollarpos” on 2016-03-20 and 2016-03-28

2016-03-26にコメントのオンオフの切り替えVimプラグインcawのバージョンをNeobundleでを久しぶりに更新したところ警告が出るようになった。

caw.vimはtyruさんが作成したコメントのオン/オフを即座に切り替えるVimプラグインだ。前身のCommentAnyWay.vimの最初の公開がとなっており、実に7年の歴史のあるプラグインだ。

tyru/caw.vim: sophisticated comment plugin

Vim pluginに関する情報はネット上ではあまり見つからないので参考のために掲載する。

再現方法

以下のコマンドを実行する。または、このコマンドが既定でマッピングされているgciキーを押下する。tyruさんの指摘を受け、<Plug>(caw:I:toggle)<Plug>(caw:i:toggle)(大文字のIが小文字のiに変更)に修正した

<Plug>(caw:i:toggle)

以下の警告が表示された。

<Plug>(caw:i:toggle) was deprecated. please use <Plug>(caw:tildepos:toggle) instead.

<Plug>(caw:i:toggle)は廃止予定なので、<Plug>(caw:tildepos:toggle)を代わりに使ってくれとのこと。

また、同様に<Plug>(caw:I:uncomment)(既定ではgcI)は<Plug>(caw:zeropos:uncomment)を代わりに使ってくれとの警告がでた。

原因

の以下のコミットでコマンド名を変更したようだ。

Rename small_i,capital_i,a -> tildepos,zeropos,dollarpos · tyru/caw.vim@df19123

また、関連するissueも以下に立っていた(2016-03-27追記)。

Refactoring: write tests, rename <Plug> keymappings, global variables by tyru · Pull Request #35 · tyru/caw.vim

以下のコメント欄にもあるとおり、変数名が間違っていた(tildepos->hatpos)ので(以下のissue)さらに修正があった(2016-03-28追記)。

Wrong mapping name <Plug>(caw:tildepos:toggle) by tyru · Pull Request #48 · tyru/caw.vim

この変更によると、今まで使ってきたコマンド名を以下のように変更したようだ。tyruさんの指摘を受け、と2016-03-28に表を修正した。

caw.vimの2016-03-20と2016-03-28のコマンド名の変更点
変更前 変更後 説明
<Plug>(caw:I:toggle) <Plug>(caw:zeropos:toggle) コマンド0での移動位置(行頭)でのコメントオン/オフ
<Plug>(caw:i:toggle) <Plug>(caw:hatpos:toggle) コマンド^での移動位置(文頭)でのコメントオン/オフ
<Plug>(caw:a:toggle) <Plug>(caw:dollarpos:toggle) コマンド$での移動位置(行末・文末)でのコメントオン/オフ

今まで、i、I、aのように短い単語を使っていたのを、意味のわかりやすい単語に変更されたようだ。きちんとしたコードを書くのなら可読性を考えてこのようにわかりやすい名前を使ったほうがいいので、この変更点には納得だ。

また、help caw.vimhelp cawまたはhelp caw-faq-3 指摘を受け修正)でも確認できるが、コマンド名の変更理由としては以前の変数名の理解が難しいことを挙げている(2015-03-27追記)。

*caw-faq-3*
Q. Why you renamed keymappings and variables?
A. Because old keymappings and variables’ names are hard to understand.

caw.vim/caw.txt at release/1.0.0 · tyru/caw.vim

まだ変更していなければ、コマンド実行の度に警告がでてしまうので変更しておこう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です