2025/02/17
実装を義務とする
先週末、これを作っていた。mttという名前のnpmパッケージで、個人的にまとまっていると嬉しいファイル操作をコマンド化したものだ。実装はTypeScriptで行っている。
指定する引数によって機能が変わり、mtt -rで$EDITORを呼び出して行う一括リネーム機能、mtt -cでファイルおよびディレクトリを個別に圧縮する機能、mtt -iで画像ファイルを縮小する機能を備えている。npm instal -g @riq0h/mttでインストールできる。
特にエディタを用いる一括リネーム機能は以前から様々なツール(たとえばmmvは有名だ)で世話になっていたこともあり、この機会に自分の手で実装して処理を把握しておきたいモチベが強かった。今回の開発を通して最低限の勘所を掴めたと感じている。
あまり頻繁にリネームをしない人はピンと来ないかもしれないが、GUIベースで数十ものファイルの命名規則を合わせたり一貫性を持たせるのは意外に大変だ。その都度、前提条件に沿ったルールを作成したりいちいちスクリプトを書くのも面倒くさい。しかしエディタを――とりわけVimを――自由に扱えるなら話は別だ。どんなファイル群でもたちまちケリがつく。
Read more