[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

C. Emacsの起動と終了

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs21&node=Entering%20Emacs"
"texi/emacs21/C.Emacsの起動と終了"へのコメント(無し)

Emacsを起動する普通の方法は、シェルコマンドの`emacs'です。 Emacsは、画面をクリアし、初期ヘルプメッセージとコピーライトを表示します。 オペレーティングシステムによっては、Emacsが起動するまでに 先打ちした入力をすべて破棄してしまうことがあります。 Emacs側ではこれを防ぐことはできません。 したがって、編集コマンドを打ち始めるまえに、 Emacsが画面をクリアするまで待つように推奨します。

Xウィンドウシステム上のシェルウィンドウからEmacsを起動するのであれば、 `emacs&'のようにバックグラウンドで実行するようにしましょう。 こうすれば、Emacsがシェルウィンドウを拘束することがないので、 Emacsが専用のXのウィンドウで動作中でも、 別のシェルコマンドを実行できます。 キーボード入力をEmacsのフレームに向ければ、 ただちにEmacsコマンドを打ち始められます。

Emacsが動き始めると、`*scratch*'という名前のバッファを作ります。 ユーザーはこのバッファから始めます。 バッファ`*scratch*'は、Lisp対話(lisp-interaction)モードですから、 Lisp式を打ち込んでそれを評価できますし、あるいは、 この機能を無視して単なる落書用として使ってもかまいません。 (個人の初期化ファイル中で変数initial-major-modeを設定すれば、 このバッファに別のメジャーモードを指定できる。 see 節 AE.6 初期化ファイル`~/.emacs'。)

シェルのコマンド行でEmacsに引数を与えて、 訪問するファイル、ロードするLispファイル、呼び出す関数を指定できます。 See 節 AF. コマンド行引数。 ただし、これはお勧めしません。 この機能は、主に、他のエディタとの互換性のためにあるのです。

他のエディタの多くは、編集を行うたびに新たに起動するように設計されています。 1つのファイルを編集し終えると、エディタを終了します。 つぎに別のファイルや同じファイルを編集したければ、 再度、エディタを起動する必要があります。 これらのエディタでは、 コマンド行の引数で編集するファイルを指定する意味があります。

しかし、別のファイルを編集するたびに新たにEmacsを起動するのはナンセンスです。 1つには、起動はじれったいほど遅いでしょう。 また、このようにすると、1つの編集セッションで複数のファイルを 扱えるEmacsの利点を活かせません。 さらに、レジスタやアンドゥ履歴、マークリングといった、 それまでに蓄積した内容も失ってしまいます。

GNU Emacsの推奨される使い方は、ログイン後に1度だけEmacsを起動して、 すべての編集を同じEmacsセッションで行うことです。 別のファイルを編集するには、既存のEmacsでそのファイルを訪問します。 そうすると、ついには、多くのファイルをすぐに編集できる状態で 保持することになります。 通常、ログアウトするまで、Emacsを終了する必要はありません。 複数のファイルを訪問することに関して詳しくは、See 節 N. ファイルの扱い方



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

C.1 Emacsの終了

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=emacs21&node=Exiting"
"texi/emacs21/C.1Emacsの終了"へのコメント(無し)

Emacsの抜け方には、休止(suspending)する、 終了(killing)するの2種類があるので、 Emacsを抜けるコマンドも2つあります。

休止(suspending)は、一時的にEmacsを止めて、 親プロセス(通常はシェル)に制御を戻します。 こうすると、同じバッファ、同じキルリング、同じアンドゥ履歴を保持したままの 同じEmacsジョブをあとで再開できます。 これが通常の抜け方 (6)です。

終了(killing)は、Emacsジョブの破壊を意味します。 あとでまたEmacsを起動できますが、新たなEmacs環境です。 終了したあとでは、同じ編集セッションを再開する方法はありません。

C-z
Emacsを休止する、あるいは、フレームをアイコン化する (iconify-or-deiconify-frame)。
C-x C-c
Emacsを終了する(save-buffers-kill-emacs)。

Emacsを休止するには、C-zsuspend-emacs)と打ちます。 すると、Emacsを起動したシェルに戻ります。 ほとんどの一般的なシェルでは、 シェルコマンド`%emacs'でEmacsを再開できます。

プログラムを休止できないシステムでは、 C-zは、端末と直接やりとりする下位シェルを起動します。 Emacsは、ユーザーがこのサブシェルから抜け出るまで待ちます。 (普通、C-dや`exit'でサブシェルを終了するはずだが、 使っているシェルに依存する。) このようなシステムでは、 Emacsを起動したシェルに(たとえばログアウトのために)戻るには、 Emacsを終了する以外に方法はありません。

プログラムを休止できるシステムであっても、 プログラムを休止できないシェル上で実行しているEmacsは休止できません。 このような場合、変数cannot-suspendnil以外の値を設定して、 C-zに下位シェルの実行を強制できます。 (適切なジョブ制御をできないEmacsの親シェルを 『下位』と呼ぶこともできるが、これは好みの問題。)

EmacsがXサーバーと直接通信して専用のXのウィンドウを作っている場合には、 C-zは別の意味になります。 専用のXのウィンドウを持つアプリケーションを休止しても、 あまり意味がありませんし、便利なわけでもありません。 そのかわり、C-zは、選択されているEmacsフレーム(see 節 Q. フレームとXウィンドウシステム)を 一時的に閉じるコマンドiconify-or-deiconify-frameを実行します。 シェルウィンドウに戻るには、ウィンドウマネージャの機能を使います。

Emacsを終了するには、C-x C-csave-buffers-kill-emacs)と打ちます。 これを2文字のキーにしてあるのは、少々打ちづらく(7)するためです。 このコマンドは、まず、変更したバッファを保存するかどうか聞いてきます。 未保存のものがあるとそれらを永久に失うことになるので、 Emacsを終了するまえにyesでの再確認を求めてきます。 Emacsを終了するとサブプロセスもただちに終了されられてしまうため、 サブプロセスが走っている場合にも、それらに関して確認を求めてきます。

一度Emacsを終了してしまうと、Emacsセッションを再開する方法はありません。 しかしながら、終了時に訪問していたファイルなどの 特定のセッション情報を記録するようにEmacsに指示しておけば、 つぎにEmacsを起動し直したときに、 同じファイルを訪問するなどを試みるようになります。 See 節 AD.23 セッションの保存 (2005/05/07)

オペレーティングシステムは、通常、実行中のプログラムを終了させたり 休止させたりする特定の特殊文字を監視しています。 Emacsを使っているときには、 オペレーティングシステムのこの機能はオフになっています (8) EmacsのキーとしてのC-zC-x C-cの意味は、 いくつかのオペレーティングシステムでプログラムを 休止させたり終了させたりするために用いる文字、 C-zC-cにヒントを得たものですが、 オペレーティングシステムとの関係はそれだけです。 これらのキーで好きなコマンドを実行するようにカスタマイズできます (see 節 AE.3.1 キーマップ)。


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]