Emacs で「元に戻す」後に変更を「やり直す」にはどうすればいいですか? 質問する

Emacs で「元に戻す」後に変更を「やり直す」にはどうすればいいですか? 質問する

この記事「Emacs に redo があるのは、元に戻すときに方向を逆にして、元に戻す操作を取り消すことができるからです」と述べています。

これはどういう意味ですか? ユーザーはどのようにして Emacs で「やり直し」できるのでしょうか?

ベストアンサー1

短いバージョン: 元に戻す操作を元に戻すことによって。元に戻してから、 などの編集以外のコマンドを実行するとC-f、次の元に戻す操作によって元に戻す操作が元に戻され、やり直しになります。

長いバージョン:

元に戻す操作は、操作のスタックに対する操作と考えることができます。C-f一連の元に戻す操作の後に何らかのコマンド ( などのナビゲーション コマンドでも) を実行すると、すべての元に戻す操作が操作スタックにプッシュされます。 そのため、次の元に戻す操作では、最後のコマンドが元に戻されます。 次のような操作シーケンスがあるとします。

  1. 「foo」を挿入
  2. 「バー」を挿入
  3. 「スパムが大好き」と入力

ここで、元に戻します。最後のアクションが元に戻され、次のリストが表示されます。

  1. 「foo」を挿入
  2. 「バー」を挿入

この時点で元に戻す以外の操作(たとえば、)を実行するとC-f、操作スタックは次のようになります。

  1. 「foo」を挿入
  2. 「バー」を挿入
  3. 「スパムが大好き」と入力
  4. 「スパムが大好き」の挿入を元に戻す

さて、元に戻すと、最初に元に戻されるのは元に戻すことです。結果として、元のスタック (およびドキュメントの状態) は次のようになります。

  1. 「foo」を挿入
  2. 「バー」を挿入
  3. 「スパムが大好き」と入力

元に戻すシーケンスを中断する変更コマンドを実行すると、そのコマンドは元に戻すの後に追加され、その後最初に元に戻されるものになります。 を押す代わりに「bar」の上でバックスペースを押したとしますC-f。その場合、

  1. 「foo」を挿入
  2. 「バー」を挿入
  3. 「スパムが大好き」と入力
  4. 「スパムが大好き」の挿入を元に戻す
  5. 「バー」を削除

この追加/再追加は無限に行われます。慣れるまでには少し時間がかかりますが、Emacs に非常に柔軟で強力な元に戻す/やり直しのメカニズムが提供されます。

おすすめ記事