abort-recursive-edit
).
undo
).
また実行が終っていないコマンドを止めるには2つの方法があります. C-gを使ってとりやめるか,C-]かM-x top-levelを使って中 止するかです.とりやめは途中まで入力したコマンドや,すでに実行しているコ マンドを止めます.中止は再帰編集レベルから抜け,その再帰編集を呼び出した コマンドを止めます.
C-gによるとりやめは途中まで入力したコマンドや必要でない数引数を
取り除くためのものです.また,現在実行中のコマンドを途中でも比較的安全に
とりやめることができるので,実行に長くかかるコマンドを誤って入力したら,
これを使うことができます.特に`'削除"の最中にとりやめても大丈夫です.つ
まり,テキストはすべて元の所にあるか,削除リングの中にあります(あるいは
両方にあります).インクリメンタル探索をとりやめると,探索で説明したよう
に特別な動作をします.一般に探索から抜けるには,C-gを二度続けて入
力する必要があります.C-gは入力された時点で,変数quit-flag
をt
にします.Lispは頻繁にこの変数をチェックしていて,
non-nil
になるととりやめます.Emacsが入力待ちの状態のときに入力さ
れたときだけ,コマンドとして実際に実行されます.
最初のC-gが認識される前に続けて二度目のとりやめを行なった場合に は"緊急 Escape"機能が働き,シェルに戻ります.See section 緊急Escape.
C-] (abort-recursive-edit
)による中止は再帰編集レベルから
抜け,さらに呼び出したコマンドを止めるのに用います.C-gによるとり
やめではこれは行なえません.C-gは再帰編集レベル内で途中で入力した
コマンドをとりやめるのに用いられるので,C-gを使って抜けることはで
きないわけです.両方の操作とも役に立ちます.たとえばEmacsのデバッガ
(see section Emacs Lispデバッガ)にいるときに,数引数を入力するためにC-u 8と入
力したけれども,その引数をとりやめたいときにはC-gを使います.デバッ
ガからは抜けません.
コマンドM-x top-levelは"十分な数の"C-]コマンドと等価で, 現在利用者のいるすべての再帰編集レベルから抜けるものです.C-]は一 度に1レベルずつ抜けるものですが,M-x top-levelコマンドでは一度に全 レベルを抜けます.C-]とM-x top-levelはC-gとは違って Emacsが入力コマンドの入力待ちであるときだけ働くという点では他のすべての コマンドと似ています.C-]は通常のキーと同じで,キーマップで割り当 てられているので意味を持っているのです.See section 再帰編集レベル.
C-x u (undo
)は厳密にはコマンドを止める方法とはいえません
が,すでに実行を終了したコマンドの取り消しだと考えることもできるでしょう.
See section 変更の取り消し(Undo).