「Vim編集操作」チュートリアルの解説。x / dd での削除、u / Ctrl+r での取り消しとやり直し、yy / p でのコピーと貼り付け、dw / ciw などのオペレータ、. での繰り返し、:%s での一括置換を説明します。
編集操作こそ、Vim の真価が出るところです。ノーマルモードではキーが小さなコマンドとして組み合わさります。オペレータ(削除・変更・コピー)に対象(1文字・単語・行)を続ける文法です。このチュートリアルでは、実際に間違いが仕込まれた下書きファイルを直しながら、毎日使う組み合わせをひと通り体験します。
削除: x・dd・dw
x " カーソル位置の1文字を削除
dd " 行を丸ごと削除
dw " カーソルから次の単語までを削除
x はタイプミスを1文字ずつ直すのに使います。dd は行を丸ごと消し、dw は Vim の文法そのものです。d(削除)と w(単語)の組み合わせです。
dw は丸暗記のコマンドではなく、d(何をするか)と w(どこまでか)の組み合わせ。
取り消しとやり直し: u・Ctrl+r
u " 直前の変更を取り消す
Ctrl+r " やり直す
u があるから、Vim は安心して試せるエディタです。どんなコマンドでもまず試して、結果が予想と違ったら u を押しましょう。
u は編集履歴を1つ戻る移動。Ctrl+r は同じ道を進み直す。
コピーと貼り付け: yy・p
yy " 現在の行をヤンク(コピー)
p " カーソルの下に貼り付け
P " カーソルの上に貼り付け
削除したテキストも同じレジスタに入るので、dd してから p すれば行の移動になります。
単語の置き換え: ciw
ciw " change inner word: 単語を消して挿入モードへ
ciw は単語の中ならどこにカーソルがあっても効くので、手で範囲選択するより速く直せます。新しい単語を入力して Esc を押します。
繰り返し: .
. " 直前の変更を繰り返す
ドットコマンドは、カーソルのある場所で直前の編集を繰り返します。移動や n(次の検索マッチ)と組み合わせると、1回の修正を何箇所にも展開できます。
一括置換: :%s
:%s/old/new/g " ファイル全体の old を new に置換
% はファイル全体、g は各行のすべての出現が対象という意味です。名前を一貫して変えたいときの最速の方法です。
オペレータとモーション、ドットコマンド、:%s が日常の Vim 編集の中核です。ほかの操作もすべてこの文法の延長にあります。