皆さんはVimをご存知でしょうか。
Windowsのメモ帳や秀丸などと同じテキストエディタの一つで、viというエディタの機能強化版です。
Vimは、主にLinuxやBSD等、Unix系OSでよく利用されているのですが、様々なOSで使用でき、当然Windows版もあります。
少々、操作体系に癖のあるエディタなのですが、慣れると強力かつ効率的なテキスト編集が可能です。
なお、敵対勢力にEmacsというエディタがいまして、奴らとは長きにわたり血で血を洗う抗争を繰り広げています*1。今後も、奴らと分かり合えることは永久にないのでしょう*2。
余計な話はさておき、Vimはプラグインによる機能拡張が可能で、有志により様々なプラグインが公開されています。
本日は、数多いプラグインの中から、ファイル名変更に便利なrenamer.vimを紹介します。
なぜこんな記事を?
なぜ唐突にVimプラグインの記事なのかというと、仕事中に「Vimがあればこんな面倒くさいことしなくて済むのに」と思ったからです。
今日、Windowsサーバでのバッチファイル追加作業がありました。既存バッチファイルをコピー・リネームする、という単純作業なのですが、そこそこ数が多い。普段なら、バッチなりスクリプトなりを組んで一括置換をかけるところですが、残念ながら、規則性が今ひとつでスクリプトに落としこもうとすると結構面倒でした。
日常的に行う作業でもなかったので、諦めて一つ一つ変更をかけました。めんどくせえ。
ちなみに、大体こんな感じのリネームになります。
abcd11a.bat → abce21.bat
abcd12b.bat → abce22.bat
abcd13c.bat → abce23.bat
abcd140.bat → abce24.bat
abcd150.bat → abce25.bat
なお、バッチの中身は、パラメータ一つ以外はほぼ同じです。
誰だよ、この運用考えたの…。
renamer.vimとは
さて、こんな時に便利なのが、Vimのプラグイン、renamer.vimです。
規則性が複雑だとか、そもそもあまり規則性が無いとかいった、スクリプト等では対応しづらいファイルのリネームに力を発揮します。
renamer.vim - Use the power of vim to rename groups of files : vim online
インストール方法は上記サイトに記載されていますが、一応説明すると、以下のディレクトリにプラグインをコピーするだけです*3。
Windowsの場合
$HOME/vimfiles/plugin
使い方
Vimを起動して以下コマンドを実行します。
:Rename
カレントディレクトリが表示されます。
リネームしたいファイルがあるディレクトリに移動します。
(移動したいディレクトリにカーソルを合わせてEnter押すと、当該ディレクトリに移動できます。)
目的のディレクトリにたどり着いたら、表示されているファイル名を編集します。
矩形選択や置換、マクロや繰り返し機能などを駆使して、ファイル名を変更しましょう。
編集後、以下のコマンドを実行すると、ファイル名変更が反映されます。
:Ren
今日の作業もこいつが使えれば、あっという間だったのですが…。
最後に
Vimを使ったファイル名変更は、他にもvimfilerなどが使えます。
しかし、renamer.vimはファイル名変更だけの機能しか無い分、シンプルでわかりやすいという利点があります。
唐突でしかもありふれた感じのプラグイン紹介を、どれほどの人が読んでくれるか懸念されるところですが、愚痴代わりだからまあいいや、と自己完結気味に終わります。