Vimで元に戻す方法

LinuxでVimを使って編集していると、間違いを起こしやすいです。幸い、それらを元に戻すのも簡単です。

Vimの編集を元に戻す方法

簡単なVimの元に戻す操作は、Microsoft Word、LibreOffice Writer、Googleドキュメントなどの最新のワードプロセッサで使用した元に戻す機能に似ています。Vimはファイルに加えた変更を追跡し、必要に応じてロールバックできます。

Vimは、挿入モードで行った操作やコマンドモードのすべてのコマンドを変更とみなします。たとえば:

  • 挿入モードで数行入力し、すぐに元に戻す操作を実行すると、それらの行は削除されます。
  • 行を入力し、コマンドモードに切り替え、次に挿入モードに戻ってさらにテキストを入力すると、2つの変更が作成されます。元に戻す操作は、それぞれを個別に削除します。

また、「3dd」のようにVimコマンドを繰り返して3行を削除することもできます。これらの複合コマンドの1つを実行すると、これも最新の変更としてやり直されます。ファイルを開いたとき、または作成したときまで、元に戻す操作を繰り返すことができます。

Vimで意図しない編集を行ったことに気づいた場合は、それを元に戻すのは簡単な2ステップのプロセスです:

  1. Escを押してコマンドモードになっていることを確認します。
  2. uを押して前の変更を元に戻します。

以上です。たとえば、「n行少ない」など、どのような変更が行われたかについてのメッセージが表示されます。

複数の変更を元に戻したい場合は、それを行うこともできます。ほとんどの他のVimコマンドと同様に、元に戻すコマンドの前に元に戻したい変更の数を入力します。たとえば、2つの変更を元に戻したい場合は、次の操作を実行します:

2u

Vimでやり直す方法

元に戻すコマンドが望ましくない動作をする場合、または単に気が変わった場合があります。この場合は、やり直しコマンドを実行してファイルを前の状態に戻すことができます。

Vimは変更を追跡するだけでなく、元に戻す操作も追跡します。そのため、やり直し操作によって元に戻す操作を元に戻すことができます。Vimは、入力モードで入力された複数の行を1つの変更として扱うことに注意してください。したがって、操作をやり直すと、1つのコマンドで複数の行が戻ります。

これを行うコマンドは「やり直し」のCtrl + rです。Escを押してコマンドモードになっていることを確認します。やり直しは元に戻す操作と同じ原則で機能します。たとえば、やり直す回数を前に付けることで、やり直しを繰り返すことができます。

元に戻す操作と同様に、ファイルに追加された行数など、やり直された変更に関する簡単なメッセージが表示されます。ファイルの現在の状態に戻るまで、何度でもやり直すことができます。