Next: emacsclient Options, Up: Emacs Server [Contents][Index]
emacsclientの呼び出しemacsclientプログラムを使う一番簡単な方法は、シェルコマンド‘emacsclient
file’を実行する方法です。ここでfileはファイル名です。これはEmacsサーバーに接続して、Emacsプロセスの既存のフレームの1つ
— グラフィカルなフレーム、またはテキスト端末のフレーム(Framesを参照してください) —
でfileをvisitするよう指示します。それから、そのフレームを選択して編集を開始できます。
Emacsサーバーが存在しない場合、emacsclientはエラーメッセージと共に終了します。Emacsプロセスに既存のフレームがない場合
— これはサーバーがデーモン(Emacs Serverを参照してください)として開始されたときに発生し得ます —
は、emacsclientを呼び出した端末でEmacsフレームをオープンします。
オプション‘-c’および‘-t’を使用して、新しいフレームをグラフィカルなディスプレーまたはテキスト端末で開くように、emacsclientに強制することもできます。emacsclient Optionsを参照してください。
単一のテキスト端末で実行している場合、emacsclientのシェルとEmacsサーバーを、次の2つの方法で切り替えることができます。1つ目は、Emacsサーバーと、別の仮想端末でemacsclientを実行して、emacsclientを呼び出した後にEmacsサーバーの仮想端末に切り替える方法です。2つ目は、Emacsサーバー自身からShellモード(Interactive Shellを参照してください)、またはTermモード(Term Modeを参照してください)を使ってemacsclientを呼び出す方法です。emacsclientは、Emacs配下のサブシェルのときだけブロックするので、依然としてファイルの編集にEmacsを使用できます。
Emacsサーバーでfileの編集を終えたら、そのバッファーでC-x #
(server-edit)とタイプします。これはファイルを保存して、emacsclientプログラムに終了を告げるメッセージを送り返します。通常、EDITORを使うプログラムは、何か他のことを行なう前に“エディター”
— この場合はemacsclient — の終了を待ちます。
複数のファイル名を引数にしてemacsclientを呼び出すこともできます。‘emacsclient
file1 file2
...’は、Emacsサーバーにfile1、file2、...をvisitするよう指示します。Emacsはfile1をvisitしているバッファーを選択して、他のバッファーをバッファーリストの最後に隠します(Buffersを参照してください)。指定されたすべてのファイルを終了したら(たとえば各サーバーバッファーでC-x
#をタイプしたら)、emacsclientプログラムは終了します。
サーバーバッファーを終了すると、そのバッファーがサーバーバッファーを作成する前から存在していたバッファーでないかぎり、そのバッファーもkillされます。しかしserver-kill-new-buffersをnilにセットした場合、別の基準が使用されます。この場合、サーバーバッファーの終了は、ファイル名が正規表現server-temp-file-regexpにマッチするときは、バッファーをkillします。これはある種の“一時ファイル”を区別するための仕組みです。
各C-x
#は、さまざまなファイルを編集する、保留されている外部要求が他にないかチェックして、次のそのようなファイルを選択します。サーバーバッファーに辿り着くのに、C-x
#だけを使わなければならない訳ではありません。サーバーバッファーに手動で切り替えることもできます。しかしC-x
#は、emacsclientに終了したことを告げる方法なのです。
変数server-windowの値をウィンドウやフレームにした場合、C-x
#は常に次のサーバーバッファーを、そのウィンドウまたはそのフレームに表示します。