next up previous contents
Next: 便利な上書き訂正 Up: vi 入門 Previous: 文字列、単語のコピーと移動

コマンドの取り消しと繰り返し

操作に失敗はつきものです。間違いを取り消すため、uが用意されています。

直前に行ったテキストの変更を取り消し、元の状態に戻す。

取り消されるのは、直前に行った操作であることは注意が必要です。また、 移動のコマンドや、yyなどは、uの対象にはなりません。

挿入モードに移ってからなされた一連の入力も、uコマンドの対象となります。 たとえば、挿入モードで10行の入力を行い、コマンドモードに戻ってすぐu を実行すれば、その10行は消えてしまいます。(復活させる方法は?)

テキストの修正作業は、たいてい行単位です。特にプログラムを作成する場合に はしばしばですが、1つの行を苦労して変更し、結局元の表現が正しかったこと に気付くということもあります。その時には、Uコマンドが役立ちます。

今いる行に対する変更を全て取り消し、元の状態に戻す。

ただし、変更の対象となるのは、その行に移動してきてからの操作のみです。

テキストの変更の別の操作を行ってしまい、その後でミスに気が付いたとしたら、 どうすればいいでしょう? dコマンドで削除されたデータは、バッファに 保存されますが、幸いなことにバッファは1つだけではないのです。通常の pコマンドの対象となるのは、最近のd(またはy)コマンドですが、 過去の削除の記録も番号を付きで保存されています。(バッファは全部で9個) 番号付きバッファの内容を呼び出すには次のようにします。

”3p
(クォーテンションマークの後に番号 そしてp)

これで、3番目に新しい削除の記録を復活させることができます。 バッファの内容は目に見えないので、番号を間違える可能性もありますが、 その時はuで取り消してください。

逆にテキストの変更を繰り返すコマンドが .(ピリオド)です。繰り返しの対象 となるのは、4ddやpコマンド、あるいは挿入モードになってから付け加えられた 内容の全体です。

なお、番号付きバッファを呼び出す命令は、.で繰り返すと自動的に番号をさか のぼってくれます。 ”1pu.u. のようにすれば目指すバッファにたどり 着けるはずです。viは、なんと親切なのでしょう!



Noriyo Kanayama