みなさんIdeaVimをご存知でしょうか。
IdeaVimは、JetBrainsのIDE(IntelliJ IDEA など)でVimのキーバインドを使用できるようにするプラグインです。
本記事ではこのプラグインを使ってできる便利なことの一例を紹介したいと思います。
複数プロパティを同じようにリネームする
こんなクラスがあったとします。
data class User(
val id: String, // ユーザーの一意のID
val firstName: String, // ユーザーの名
val lastName: String, // ユーザーの姓
val department: String, // ユーザーが所属する部署
val email: String, // ユーザーのメールアドレス
val phoneNumber: String, // ユーザーの電話番号
val dateOfBirth: String, // ユーザーの生年月日
val hireDate: String, // ユーザーの採用日
val salary: Double, // ユーザーの給料
val position: String, // ユーザーの役職
val address: String, // ユーザーの自宅住所
val supervisorId: String?, // ユーザーの上司のID(オプション)
val isActive: Boolean, // ユーザーがアクティブかどうか(雇用中かどうか)
val lastLogin: String? // ユーザーの最後のログイン日時(オプション)
)
そしてこう思いました
🤔「すべてのプロパティをprivateにして、プロパティ名の先頭にアンダーバーをつけたいな」
IntelliJのマルチカーソル機能を知っていたあなたは、一括で効率良く編集することができました。(Option+ドラッグでマルチカーソルにしています)
😁「よし。マルチカーソルでいい感じに編集できた。」
😁「あとはプロパティ名の末尾にLocalをつけよう。」
🤔「・・・」
🥺「あれ?これはマルチカーソルじゃできなくない?」
そこでIdeaVimです。
マルチカーソルではできなかった操作も、IdeaVimなら難なくできます。
[解説]
入力したキーはqqf_eaLocal<Esc>+q13@q
です。
Vimにはマクロという編集を記録して、それを繰り返し実行できる機能があります。
qq〜qまでの f_eaLocal<Esc>+
が一行目にLocalを追加する操作で、13@q
によってそれを13回繰り返し実行しています。
このマクロという機能を使うとプロパティが例え100個になっても、繰り返しの数を変更するだけで対応できます。
コメントの位置を変更する
マクロの活用例としてもう一個やってみます。
プロパティの右にあるコメントを上の行に移動させましょう。
[解説]
入力したキーはqqf/hv^do<Esc>p+q13@q
です。
コメント手前までを一度削除し、下に行を追加してペーストしています。それを先程と同様にマクロによって13回繰り返し実行しています。
おわりに
IdeaVimのマクロを活用して、なかなか大変な繰り返し作業をやっつける方法をご紹介しました。
IdeaVimいいな。やってみようかな?と思っていただけたら嬉しいです。