Photoruction工事中!

Photoructionの開発ブログです!

Vimの繰り返し操作まとめ

こんにちは。CREの田島です。

少し前からAI活用エディターのCursorが話題ですよね。

ただし、本記事は生まれたてエディターCursorについてではなく、リリース32周年を迎えたVimについての記事になっていますので注意です。

「AIを活用した」なんて甘美な響きではありませんが、Vimにも魅力的な個性が多いですよね。

キーバインドがその代表かと思いますが、「繰り返し操作のやりやすさ」もそのひとつかなと思ったので、Vimの繰り返し操作についてまとめました。

直前の変更を繰り返す

.(ドット)を使います。

例えば、ddで一行削除した後に、.を押すと一行削除が繰り返されます。

直前のExコマンドを繰り返す

@:を使います。

例えば、:vsでウィンドウを分割した後に、@:とするとさらにウィンドウを分割します。(この場合、:vsをもう一度入力する方が楽かもですが、例として)

履歴からExコマンドを繰り返す

q:を使います。

Exコマンドの履歴と一緒にコマンドラインウィンドウを表示します。

履歴を編集してExコマンドを実行することも可能です。

履歴から検索を繰り返す

q/,q?を使います。

検索履歴と一緒にコマンドラインウィンドウを表示します。

履歴を編集して検索をすることも可能です。

(検索には正規表現を使用できますが、クセがあります)

直前の置換を繰り返す

:&&を使います。(:&&の場合、現在行のみに作用します。)

以下のテキストを編集するとします。

Photoructionは建設業の生産性向上を目的としたクラウドサービスです。
テクノロジーとオペレーションの力で10倍を超える業務効率化を実現します。
大手ゼネコンをはじめ、100,000を超える建設プロジェクトで導入されている国内最大規模のサービスです。

私たちが考えるのは常に建設業で働く皆様のことです。
主力サービスである建設生産支援クラウドPhotoructionは、
リリースして3年半ほどで100,000を超える建設プロジェクトで使われるようになりました。

3行目の100,000を200,000へ置換した後、7行目も同様に置換したい場合は、:&&とすればOKです。

↓入力キーの例

3G
V:s/100,000/200,000/g
7G
:&&

ひとまとまりの操作を繰り返す

1~10の連番生成を例にします。

レジスタaに記録し、それを繰り返します。

↓入力キーの例

i1<Esc>
qa
yyp<C-a>
q
8@a

(単純な連番生成ならマクロ使わない方が楽です)

↓入力キーの例

yy9P
VG
g<C-a>

直前に実行したマクロを繰り返す

@@を使います。

直前に記録したマクロを実行したい場合は、Qです。

まとめ

これらの繰り返し操作がコーディングの中で使われることは稀だと思います。

ただ、エディターとしてではなく、テキスト整形ツールとして見たとき、これらの操作が輝ける瞬間があるかもしれません。

株式会社フォトラクションでは一緒に働く仲間を募集しています