さて、中級編です。ここからはより便利になるviエディタの使い方を解説していきます。この辺りを覚えれば、自由自在に編集が可能となります。下手なWindowsのエディタよりもかゆいところに手が届くようなコマンドも用意されていますので、ぜひ試してみてください。

①入力モードへの入り方あれこれ

前回までは、入力モードへの入り方は「i」キーを中心に説明しましたが、このほかにも様々な方法があります。これらを状況に応じて使い分けることで、細かい所がひと手間省けるようになりますので、入力効率が上がります。

・「i」
現在のカーソル位置から文字を挿入します。

・「a」
現在のカーソル位置の右隣の位置から文字を挿入します。
行末に文字を追加する際など、便利に使うことができます。

・「o」
現在のカーソル行の次の行に行を挿入し、その先頭から文字を入力します。

・「r」
現在のカーソル位置の文字を一文字置換する。
連番で入力する事の多いIPアドレスのような数字を修正するのに重宝します。

・「R」
通常の大文字入力と同様に、Shift+Rキーで入力します。
現在のカーソル位置から置換モードで文字列を入力します。

・「O」
現在のカーソル行の前の行に行を挿入し、その先頭から文字を入力します。

②指定行へのジャンプ

・「行数+G」

10行目にジャンプする場合、10Gと入力します。
この操作はいくつか応用が効きます。先頭行に移動したい場合は、1G、数値を省略してGとだけ入力すれば、最終行へジャンプします。

ファイルの末尾に追記することはよくあると思いますので、起動したらGと一発入力すれば、即座にデータ入力に入ることができるため便利です。

③削除

・「x」
初級編で解説した通り、現在のカーソル位置から一文字削除します。カーソル位置より右にある文字列は自動的に左に一文字分ずれますので、連続して「x」キーを押すことで、任意の文字数分削除することができます。

・「dd」

カーソルのある行を1行まるごと削除できます。削除した行はバッファに保存されますので、後述のペースト操作でカット&ペーストすることが可能です。

また、数字+ddで、指定した数字の行数をまとめて削除することができます。便利に使えるコマンドですが、過剰に削除したときに気が付きにくいという問題もありますので、事後に作業前後のファイルをdiffで比較することを習慣づけるといいでしょう。

・「d$」

現在カーソルがある位置行について、カーソル位置から後ろの文字を行末まで削除します。

・「dw」

1ワード分削除します。ただし現在のカーソル位置より後ろの文字だけが削除対象になります。

④コピー&ペースト

・「数字+yy」

現在のカーソル位置から、入力した数字の行数分コピーし、バッファに保存します。数字を省略すると、1行分になります。

・「p」

現在バッファに入った(yyやddコマンドで指定した)データをカーソル位置にペーストします。

⑤アンドゥ

・「u」

直前に行ったコマンド操作を取り消し(アンドゥし)ます。

⑥リドゥ

・「.」

直前に行ったコマンドを再度繰り返して実行します。

⑦検索

・「/文字列」

文字列で入力した文字をテキストファイル内から検索します。
文字列には正規表現を利用する事もできます。
検索でマッチした文字列は、「n」キーで次の候補に移動できます。また「N」キーで前の候補に移動することができます。

⑧終了操作

・「:q」

編集した結果を保存せずに終了させます。

・「:w」

編集した結果を保存します。

・「:wq」

編集した結果を保存して終了します。

⑨カーソル位置の移動

・「0(ゼロ)」

行頭へカーソルを移動します。

・「$」

行末へカーソルを移動します。