Next: Basic, Previous: Entering Emacs, Up: Top
Emacsの抜け方には、休止(suspending)する、 終了(killing)するの2種類があるので、 Emacsを抜けるコマンドも2つあります。
休止(suspending)は、一時的にEmacsを止めて、 親プロセス(通常はシェル)に制御を戻します。 こうすると、同じバッファ、同じキルリング、同じアンドゥ履歴を保持したままの 同じEmacsジョブをあとで再開できます。 これが通常の抜け方 1です。
終了(killing)は、Emacsジョブの破壊を意味します。 あとでまたEmacsを起動できますが、新たなEmacs環境です。 終了したあとでは、同じ編集セッションを再開する方法はありません。
iconify-or-deiconify-frame
)。
save-buffers-kill-emacs
)。
Emacsを休止するには、C-z(suspend-emacs
)と打ちます。
すると、Emacsを起動したシェルに戻ります。
ほとんどの一般的なシェルでは、
シェルコマンド‘%emacs’でEmacsを再開できます。
プログラムを休止できないシステムでは、 C-zは、端末と直接やりとりする下位シェルを起動します。 Emacsは、ユーザーがこのサブシェルから抜け出るまで待ちます。 (普通、C-dや‘exit’でサブシェルを終了するはずだが、 使っているシェルに依存する。) このようなシステムでは、 Emacsを起動したシェルに(たとえばログアウトのために)戻るには、 Emacsを終了する以外に方法はありません。
プログラムを休止できるシステムであっても、
プログラムを休止できないシェル上で実行しているEmacsは休止できません。
このような場合、変数cannot-suspend
にnil
以外の値を設定して、
C-zに下位シェルの実行を強制できます。
(適切なジョブ制御をできないEmacsの親シェルを
『下位』と呼ぶこともできるが、これは好みの問題。)
EmacsがXサーバーと直接通信して専用のXのウィンドウを作っている場合には、
C-zは別の意味になります。
専用のXのウィンドウを持つアプリケーションを休止しても、
あまり意味がありませんし、便利なわけでもありません。
そのかわり、C-zは、選択されているEmacsフレーム(see Frames)を
一時的に閉じるコマンドiconify-or-deiconify-frame
を実行します。
シェルウィンドウに戻るには、ウィンドウマネージャの機能を使います。
Emacsを終了するには、C-x C-c
(save-buffers-kill-emacs
)と打ちます。
これを2文字のキーにしてあるのは、少々打ちづらく2するためです。
このコマンドは、まず、変更したバッファを保存するかどうか聞いてきます。
未保存のものがあるとそれらを永久に失うことになるので、
Emacsを終了するまえにyesでの再確認を求めてきます。
Emacsを終了するとサブプロセスもただちに終了されられてしまうため、
サブプロセスが走っている場合にも、それらに関して確認を求めてきます。
一度Emacsを終了してしまうと、Emacsセッションを再開する方法はありません。 しかしながら、終了時に訪問していたファイルなどの 特定のセッション情報を記録するようにEmacsに指示しておけば、 つぎにEmacsを起動し直したときに、 同じファイルを訪問するなどを試みるようになります。 See Saving Emacs Sessions。
オペレーティングシステムは、通常、実行中のプログラムを終了させたり 休止させたりする特定の特殊文字を監視しています。 Emacsを使っているときには、 オペレーティングシステムのこの機能はオフになっています 3 。 EmacsのキーとしてのC-zやC-x C-cの意味は、 いくつかのオペレーティングシステムでプログラムを 休止させたり終了させたりするために用いる文字、 C-zとC-cにヒントを得たものですが、 オペレーティングシステムとの関係はそれだけです。 これらのキーで好きなコマンドを実行するようにカスタマイズできます (see Keymaps)。