クラシックなユースケース:
- マクロの記録を開始します。
C-x (
- あなたはいくつかのことをします、としましょう
hello
。 - エラーをスローするコマンドを
C-g
実行するC-s
とします(たとえば、誤って実行し、それをでキャンセルする必要がある場合C-g
、作業は失われます)。
これで、これまでの録音は失われました。
録音を中断するコマンドを実行する前に中断したところから再開したいと思います。を見てみましたC-h f start-kbd-macro
が、Cで書かれているので、いじれません。私ものような変数を探して回りましたcurrent-kbd-macro
が、今のところ何も見つかりませんでした。
回復できますか?
更新:
なぜうまくいかなかったのかC-u C-x (
はわかりませんが、でテストしていることが原因であることがわかりましたC-g
。
それC-g
は特別なことがわかります-あなたが別の種類のエラーをトリガーした場合
C-x ( M-: (signal 'quit nil)
次に、これは記録を停止しlast-kbd-macro
ますが、を含みます"M-: M-( signal 'quit nil"
が、
C-x ( C-g
これにより、記録が停止し、記録されたものはすべて破棄されます。Cgハッピーなユーザーとして(少なくとも2人の友人と同様に)、これはかなり残念な違いです。編集してみましkeyboard-quit
たが、何もできません。
これを回復する唯一の方法は、を介してrecent-keys
、start-kbd-macro(または同様の)が呼び出された場所を介して自動的に特定することのようkmacro-edit-lossage
です。