Section Next | Prev


1.6 テキストの削除と修正

メインバッファ中のテキストを削除するコマンドには次のものがあります。
コマンド解説
テキストの削除
xカーソル位置の1文字を削除する。
D現在のカーソル位置から行末までを削除する。
dd現在カーソルが位置している行を1行削除する。
dw現在カーソルが位置しているところから1単語を削除する。
db現在カーソルが位置している単語をカーソルの前まで削除する。
dL現在カーソルが位置している行から、その行を含め画面の最後までを削除する。
5dL と指定すると、画面の最後から 5行目( 5 行目も含む)までを削除する。
テキストの修正
rcカーソル位置の1文字を、文字c に置き換える。
s カーソル位置の1文字を、エスケープまでの文字列と置き換える。
cw カーソル位置の単語を置き換える。
cc カーソル位置の行を、エスケープまでの入力文列と置き換える。
~ カーソル位置の1文字を大文字/小文字を置き換える
これらのコマンドは最初に数字を指定することで、繰り返し実行できます。
【例】
	3x   : 3文字削除
	5dd  : 5行削除
誤って削除したテキストをもとに戻したい場合は次のような方法があります。
コマンド解説
u直前のコマンドを取消し、もとの状態にもどします。
u は直前のコマンド1回分しか回復することができません。
U特定の1行について何度も変更を行ったときに、その行を最初の状態にもどします。
"1p削除した行を回復します。 詳しくは1.7 テキストのコピーと移動 を参考にしてください。

※ vi のコマンドのほとんどは以下の形式になっています。
コマンド d や c はその後ろにカーソルの移動コマンドを伴っています。 つまり dw は d(削除) コマンドに、単語移動の w コマンドを指定していると解釈されます。
よって、vi コマンドの文法を正確に表記すると以下のようになります。

[繰り返し回数] コマンド文字 [移動範囲]

例えば 3dw は、以下のようになります。

	This is a pen.
		↓
	This .
is の i にカーソルがあったとして、単語3つを削除(最後のピリオドは単語に数えられません)

Section Next | Prev

Copyright ycosSystems 2007, vi/Body16.html