Linuxで利用するエディター(vim編)2

  Linux基礎

Vimの便利な使い方まとめ:効率的な編集を実現するテクニック集

Vimは、多機能かつ軽快な操作が魅力のテキストエディタです。慣れれば慣れるほど作業スピードが上がるため、開発者やシステム管理者の間で長年愛され続けています。

本記事では、Vimの基本操作を習得した方を対象に、作業を効率化する実践的なテクニックや便利な使い方を、事例付きで分かりやすく紹介します。


1. 基本操作の再確認:Vimの3大モード

Vimを活用する上で大切なのは、モードの切り替えです。以下の3つのモードを使いこなすことで、Vimの真価が発揮されます。

  • ノーマルモード:操作の中心。カーソル移動、コピー、削除、検索など。
  • 挿入モード:文字入力時に使用。iaなどで移行。
  • ビジュアルモード:テキスト選択。範囲操作が可能。

各モードの切り替えを瞬時にできるようにすることで、無駄な手の動きを減らし、編集効率が向上します。


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

全ての500200に変更:

:%s/500/200/g

4.2 ファイル全体にコメントアウトを挿入

設定ファイルなどを一括でコメントアウト:

ggVG        ← 全選択
:'<,'>s/^/#/

4.3 同じ単語にカーソルを一気にジャンプ

*     ← カーソル位置の単語を下に検索
#     ← カーソル位置の単語を上に検索

5. 位置マークとジャンプの活用

Vimではカーソル位置にマーク(印)をつけて、あとからジャンプすることができます。

マークの基本操作

  • ma:現在のカーソル位置にaというマークを設定
  • 'a:マークaの行頭へジャンプ
  • `a:マークaの文字位置へジャンプ

事例:修正箇所を一時記憶しておく

長いソースコードの中で、一時的に別の場所を編集したあと元に戻りたい場合に便利です。

ma         ← 元の位置にマークをつける
(別の場所で編集)
`a         ← マーク位置に復帰

6. 応用テクニック:maを使った範囲コピー

「マーク」と「ヤンク(コピー)」を組み合わせることで、離れた範囲のコピーが簡単にできます。

操作手順

  1. コピーしたい範囲の開始位置にカーソルを移動
  2. maでマークをつける
  3. コピーしたい範囲の終了位置へ移動
  4. y'aで開始位置から終了位置までの範囲をコピー(行単位)

具体例

(カーソルを5行目に合わせる)
ma

(カーソルを10行目に移動)

y'a   ← 5〜10行目までをコピー

※文字単位でコピーしたい場合はy`aとしてください。


まとめ

Vimは、モードとキーボードショートカットを使いこなすことで、非常に強力かつ高速なテキスト編集が可能なエディタです。本記事で紹介したテクニックは、いずれも日常的な作業で役立つものばかりです。

特にmaを使ったマークとコピーは、複雑な編集を行う際の強力な武器になります。最初は難しく感じるかもしれませんが、繰り返し練習すれば自然と手が覚えていきます。

ぜひ、自分の作業フローにVimのテクニックを取り入れて、効率的な編集環境を手に入れてください。

LEAVE A COMMENT