この記事「Emacs に redo があるのは、元に戻すときに方向を逆にして、元に戻す操作を取り消すことができるからです」と述べています。
これはどういう意味ですか? ユーザーはどのようにして Emacs で「やり直し」できるのでしょうか?
ベストアンサー1
短いバージョン: 元に戻す操作を元に戻すことによって。元に戻してから、 などの編集以外のコマンドを実行するとC-f、次の元に戻す操作によって元に戻す操作が元に戻され、やり直しになります。
長いバージョン:
元に戻す操作は、操作のスタックに対する操作と考えることができます。C-f一連の元に戻す操作の後に何らかのコマンド ( などのナビゲーション コマンドでも) を実行すると、すべての元に戻す操作が操作スタックにプッシュされます。 そのため、次の元に戻す操作では、最後のコマンドが元に戻されます。 次のような操作シーケンスがあるとします。
- 「foo」を挿入
- 「バー」を挿入
- 「スパムが大好き」と入力
ここで、元に戻します。最後のアクションが元に戻され、次のリストが表示されます。
- 「foo」を挿入
- 「バー」を挿入
この時点で元に戻す以外の操作(たとえば、)を実行するとC-f、操作スタックは次のようになります。
- 「foo」を挿入
- 「バー」を挿入
- 「スパムが大好き」と入力
- 「スパムが大好き」の挿入を元に戻す
さて、元に戻すと、最初に元に戻されるのは元に戻すことです。結果として、元のスタック (およびドキュメントの状態) は次のようになります。
- 「foo」を挿入
- 「バー」を挿入
- 「スパムが大好き」と入力
元に戻すシーケンスを中断する変更コマンドを実行すると、そのコマンドは元に戻すの後に追加され、その後最初に元に戻されるものになります。 を押す代わりに「bar」の上でバックスペースを押したとしますC-f。その場合、
- 「foo」を挿入
- 「バー」を挿入
- 「スパムが大好き」と入力
- 「スパムが大好き」の挿入を元に戻す
- 「バー」を削除
この追加/再追加は無限に行われます。慣れるまでには少し時間がかかりますが、Emacs に非常に柔軟で強力な元に戻す/やり直しのメカニズムが提供されます。