Man On a Mission

システム運用屋が、日々のあれこれや情報処理技術者試験の攻略を記録していくITブログ…というのも昔の話。今や歴史メインでたまに軍事。別に詳しくないので過大な期待は禁物。

ファイル名変更にVimの編集力を使う(renamer.vim)

皆さんはVimをご存知でしょうか。
Windowsのメモ帳や秀丸などと同じテキストエディタの一つで、viというエディタの機能強化版です。
Vimは、主にLinuxBSD等、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

Unix系OSの場合
$HOME/.vim/plugin

Windowsの場合
$HOME/vimfiles/plugin

使い方

Vimを起動して以下コマンドを実行します。

:Rename

カレントディレクトリが表示されます。

f:id:lmacs510:20160512234942p:plain


リネームしたいファイルがあるディレクトリに移動します。
(移動したいディレクトリにカーソルを合わせてEnter押すと、当該ディレクトリに移動できます。)

目的のディレクトリにたどり着いたら、表示されているファイル名を編集します。

f:id:lmacs510:20160512235105p:plain


矩形選択や置換、マクロや繰り返し機能などを駆使して、ファイル名を変更しましょう。

f:id:lmacs510:20160512235120p:plain

編集後、以下のコマンドを実行すると、ファイル名変更が反映されます。

:Ren

f:id:lmacs510:20160512235138p:plain

今日の作業もこいつが使えれば、あっという間だったのですが…。

最後に

Vimを使ったファイル名変更は、他にもvimfilerなどが使えます。
しかし、renamer.vimはファイル名変更だけの機能しか無い分、シンプルでわかりやすいという利点があります。

唐突でしかもありふれた感じのプラグイン紹介を、どれほどの人が読んでくれるか懸念されるところですが、愚痴代わりだからまあいいや、と自己完結気味に終わります。

 

 

*1:いわゆるエディタ戦争です。

*2:vim(またはvi)とEmacsの論争は実際に行われています。しかし、お分かりかと思いますが、この論争は一種のネタであり本気で争っているわけではありません。…ネタですよね? あと、少数ながらvi原理主義者も存在し、彼らはVim勢に対して攻撃をかけることも多く、混乱に拍車をかけています。

*3:最近はVundle等のプラグインマネージャを使用することが多いでしょうが、ここでは言及しません。