Vimの便利な使い方まとめ:効率的な編集を実現するテクニック集
Vimは、多機能かつ軽快な操作が魅力のテキストエディタです。慣れれば慣れるほど作業スピードが上がるため、開発者やシステム管理者の間で長年愛され続けています。
本記事では、Vimの基本操作を習得した方を対象に、作業を効率化する実践的なテクニックや便利な使い方を、事例付きで分かりやすく紹介します。
1. 基本操作の再確認:Vimの3大モード
Vimを活用する上で大切なのは、モードの切り替えです。以下の3つのモードを使いこなすことで、Vimの真価が発揮されます。
- ノーマルモード:操作の中心。カーソル移動、コピー、削除、検索など。
- 挿入モード:文字入力時に使用。
i
、a
などで移行。 - ビジュアルモード:テキスト選択。範囲操作が可能。
各モードの切り替えを瞬時にできるようにすることで、無駄な手の動きを減らし、編集効率が向上します。
2. よく使うショートカット集
以下にVimの操作効率を劇的に上げるキーボードショートカットを紹介します。
移動系
w
:単語単位で前進b
:単語単位で後退^
:行頭へ移動(最初の文字)$
:行末へ移動gg
:ファイル先頭へG
:ファイル末尾へ
編集系
yy
:行コピーdd
:行削除p
:貼り付け(後ろに)P
:貼り付け(前に)u
:元に戻す(Undo)Ctrl + r
:やり直し(Redo)
検索・置換
/文字列
:文字列を下方向に検索?文字列
:文字列を上方向に検索:%s/検索語/置換語/g
:全置換
3. 便利な編集テクニック集
3.1 複数行の一括インデント
コードの整形時に便利です。
Vjj ← 3行選択
> ← インデント(Shift)
< ← アウトデント
3.2 複数ファイルの編集
Vimでは複数ファイルを同時に開いて切り替えることができます。
:e file1.txt
:sp file2.txt " 水平分割
:vsp file3.txt " 垂直分割
Ctrl + w w " ウィンドウ間移動
3.3 行のソート
アルファベット順や数値順に並べ替えたいときに便利です。
:'a,'bsort
ビジュアルモードで範囲を選択して、:sort
を使う方法もあります。
3.4 文字の囲み挿入
関数の引数など、文字を括弧で囲む処理も素早く行えます。
ci" ← カーソルが " に囲まれた文字内にある場合、内容を削除して挿入モードへ
ci' ← ' に囲まれた文字列の編集
ci( ← ( ) に囲まれた文字列の編集
3.5 レジスタの活用
Vimではコピーや削除した内容がレジスタに保存され、指定して貼り付けができます。
"ap ← aレジスタの内容を貼り付け
"byy ← 行をbレジスタにコピー
4. 実践:よくある作業をVimでどう解決するか
4.1 同じ単語を一括置換
以下のようなログファイルで、エラーコードを一括で書き換えたいとき:
[ERROR] code 500 - failed
[ERROR] code 500 - failed
[ERROR] code 500 - failed
全ての500
を200
に変更:
:%s/500/200/g
4.2 ファイル全体にコメントアウトを挿入
設定ファイルなどを一括でコメントアウト:
ggVG ← 全選択
:'<,'>s/^/#/
4.3 同じ単語にカーソルを一気にジャンプ
* ← カーソル位置の単語を下に検索
# ← カーソル位置の単語を上に検索
5. 位置マークとジャンプの活用
Vimではカーソル位置にマーク(印)をつけて、あとからジャンプすることができます。
マークの基本操作
ma
:現在のカーソル位置にa
というマークを設定'a
:マークa
の行頭へジャンプ`a
:マークa
の文字位置へジャンプ
事例:修正箇所を一時記憶しておく
長いソースコードの中で、一時的に別の場所を編集したあと元に戻りたい場合に便利です。
ma ← 元の位置にマークをつける
(別の場所で編集)
`a ← マーク位置に復帰
6. 応用テクニック:maを使った範囲コピー
「マーク」と「ヤンク(コピー)」を組み合わせることで、離れた範囲のコピーが簡単にできます。
操作手順
- コピーしたい範囲の開始位置にカーソルを移動
ma
でマークをつける- コピーしたい範囲の終了位置へ移動
y'a
で開始位置から終了位置までの範囲をコピー(行単位)
具体例
(カーソルを5行目に合わせる)
ma
(カーソルを10行目に移動)
y'a ← 5〜10行目までをコピー
※文字単位でコピーしたい場合はy`a
としてください。
まとめ
Vimは、モードとキーボードショートカットを使いこなすことで、非常に強力かつ高速なテキスト編集が可能なエディタです。本記事で紹介したテクニックは、いずれも日常的な作業で役立つものばかりです。
特にma
を使ったマークとコピーは、複雑な編集を行う際の強力な武器になります。最初は難しく感じるかもしれませんが、繰り返し練習すれば自然と手が覚えていきます。
ぜひ、自分の作業フローにVimのテクニックを取り入れて、効率的な編集環境を手に入れてください。