Previous: , Up: Emacs Server   [Contents][Index]


39.3 emacsclientのオプション

以下のようなオプション引数をemacsclientプログラムに渡すことができます:

emacsclient -c +12 file1 +4:3 file2

引数‘+line’および‘+line:column’は、その後に続くファイルの行番号、または行番号と列番号を指定します。これらはEmacs自身に対するコマンドライン引数と同じように機能します。 Action Argumentsを参照してください。

その他のemacsclientにより認識されるオプション引数を以下にリストします:

‘-a command’
‘--alternate-editor=command’

emacsclientが、Emacsとの接続に失敗したとき実行するシェルコマンドを指定します。これはスクリプト内でemacsclientを実行するとき便利です。このコマンドには、\"like this\"のようにクォートされた引数が含まれるかもしれません。現在のところ、クォートのエスケープはサポートされていません。

特別な例外として、commandが空文字列の場合、接続に失敗したらemacsclientは(‘emacs --daemon’のように)Emacsをデーモンモードで開始して、再度接続を試みます。

環境変数ALTERNATE_EDITORは、‘-a’オプションと同じ効果をもちます。両方が指定された場合は、後者のオプションが優先されます。

‘-c’
‘--create-frame’

既存のEmacsフレームを使うかわりに、新しいグラフィカルなクライアントフレーム(client frame)を作成します。クライアントフレームでの、C-x C-cの特別な振る舞いについては、以下を参照してください。(Xサーバーに接続できない等で)新たにグラフィカルなフレームを作成しない場合、あたかも‘-t’オプションが指定されたかのように、テキスト端末でクライアントフレームの作成を試みます。

MS-Windowsでは、単一のEmacsセッションがグラフィカルなフレームとテキスト端末のフレームの両方を表示することはできず、複数のテキスト端末のフレームを表示することもできません。したがってEmacsサーバーがテキスト端末で実行されている場合、‘-c’オプションは‘-t’オプションのように、サーバーのカレントテキスト端末で新たなフレームを作成します。Windows Startupを参照してください。

‘-c’オプションを指定するときに、ファイル名の引数を省略した場合、新しいフレームはデフォルトで*scratch*バッファーを表示します。変数initial-buffer-choiceでこの振る舞いをカスタマイズできます(Entering Emacsを参照してください)。

‘-F alist’
‘--frame-parameters=alist’

新たに作成される、グラフィカルなフレームのパラメーターをセットします(Frame Parametersを参照してください)。

‘-d display’
‘--display=display’

与えられたファイルを、(複数のXディスプレーがあることを想定して)Xディスプレーdisplayで開くようEmacsに指示します。

‘-e’
‘--eval’

ファイルをvisitするかわりに、Emacs Lispコードを評価するようEmacsに指示します。このオプションが与えられた場合、emacsclientは引数をvisitするファイルではなく、式のリストと解釈します。

‘-f server-file’
‘--server-file=server-file’

TCPを通じてEmacsサーバーに接続するためのserverファイル(TCP Emacs serverを参照)を指定します。かわりにserverファイルを示すように、環境変数EMACS_SERVER_FILEをセットできます(コマンドラインオプションは、環境変数をオーバーライドする)。

Emacsサーバーは通常は接続にたいしてローカルソケットをlistenしますが、TCPを通じた接続もサポートします。TCPによりEmacsサーバーに接続するためには、emacsclientがEmacsサーバーへの接続に関する詳細を含むserverファイル(server file)を読み込む必要があります。このオプションでserverファイル名を指定します。これは~/.emacs.d/serverからの相対ファイル名か、絶対ファイル名です。TCP Emacs serverを参照してください。

‘-n’
‘--no-wait’

すべてのサーバーバッファーが終了するのを待つかわりに、emacsclientが即座に終了するようにします。Emacsのサーバーバッファーで編集したいときに、このオプションを指定します。C-x #をタイプしても、これらはkillされません。

‘--parent-id id’

XEmbedプロトコルを通じて、IDがidの親Xウィンドウでクライアントフレームとして、emacsclientフレームをオープンします。現在のところ、これは主に開発者に有用なオプションです。

‘-q’
‘--quiet’

emacsclientがEmacsを待つメッセージ、またはリモートのサーバーソケットに接続するメッセージを表示しないようにします。

‘-u’
‘--suppress-output’

サーバーからリターンされた結果を、emacsclientが表示しないようにします。これは主に‘-e’と併用し、評価が結果ではなく副作用を目的としているとき有用です。

‘-s server-name’
‘--socket-name=server-name’

名前がserver-nameのEmacsサーバーに接続します(このオプションはMS-Windowsではサポートされない)。サーバー名は、Emacsサーバー上の変数server-nameにより与えられます。このオプションが省略された場合、emacsclientは見つかったサーバーに接続します。Emacsサーバーのserver-nameに絶対ファイル名をセットした場合は、emacsclientがそのサーバーに接続するよう指示するために、server-nameに同じ絶対ファイル名を与えてください。Emacsをデーモンとして開始(Initial Optionsを参照)して、そのデーモンにより開始されたサーバーに名前を指定した場合には、このオプションを使用する必要があります。

‘-t’
‘--tty’
‘-nw’

既存のEmacsフレームを使うかわりに、カレントテキスト端末に新たなクライアントフレームを作成します。これはテキスト端末のフレームを作成する点を除き、上記で説明した‘-c’と同じように振る舞います(Non-Window Terminalsを参照してください)。

MS-Windowsでは、Emacsサーバーがグラフィカルなディスプレーを使っている場合は‘-c’のように振る舞いますが、Emacsサーバーがテキスト端末で実行されている場合は、カレントテキスト端末に新たなフレームを作成します。

‘-T tramp-prefix’
‘--tramp-prefix=tramp-prefix’

EmacsがTRAMP (The Tramp Manual in The Tramp Manualを参照)を使用してリモートマシンにファイルを配すとき(Remote Filesを参照)、ファイル名に追加されるプレフィクスをセットします。これは主に、TCP上でのEmacsサーバーの使用と併用すると有用です(TCP Emacs serverを参照)。listenするポートをsshフォワードして、リモートマシンでserver-fileを利用可能にすることにより、リモートマシン上のプログラムはEDITOR、および同種の環境変数にたいする値にemacsclientを使用できますが、リモートマシンからEmacsサーバーと通信するかわりに、そのファイルはTRAMPを使用してローカルのEmacsセッションによりvisitされます。

環境変数EMACSCLIENT_TRAMPは、‘-T’オプションと同じ効果をもちます。両方が指定された場合は、コマンドラインのオプションが優先されます。

たとえば2つのホスト‘local’および‘remote’があり、ローカルのEmacsはTCPポート12345をlistenしているとします。さらに/homeが共有ファイルシステム上にあるとすると、serverファイル~/.emacs.d/server/serverは両方のホストから読み込めることになります。

local$ ssh -R12345:localhost:12345 remote
remote$ export EDITOR="emacsclient \
        --server-file=server \
        --tramp=/ssh:remote:"
remote$ $EDITOR /tmp/foo.txt #Should open in local emacs.

オプション‘-c’または‘-t’で作成された、グラフィカルなフレームおよびテキスト端末のフレームは、クライアントフレーム(client frames)とみなされます。クライアントフレームから作成した新たなフレームも、クライアントフレームとみなされます。クライアントフレームでC-x C-c (save-buffers-kill-terminal)とタイプした場合、それが通常行なうようなEmacsセッションのkill(Exitingを参照してください)は行なわれません。かわりにEmacsはクライアントフレームを削除します。さらに、制御を取り戻すために待っているemacsclientをクライアントフレームがもつ場合(たとえば‘-n’オプションを与えなかった場合)、Emacsは同じくクライアントの他のすべてのフレームを削除し、(それらすべてにたいしてC-x #をタイプしたかのように)クライアントのサーバーバッファーが終了したとマークします。クライアントフレームが削除された後、残ったフレームが存在しない場合、Emacsセッションは終了します。

例外として、Emacsがデーモンとして開始された場合、すべてのフレームはクライアントフレームとみなされ、C-x C-cがEmacsをkillすることはありません。デーモンセッションを終了するには、M-x kill-emacsとタイプします。

‘-t’と‘-n’は、矛盾するオプションであることに注意してください。‘-t’はカレントテキスト端末に新たにクライアントフレームを作成して制御することを指示し、‘-n’はテキスト端末で制御を行なわないことを指示するからです。両方のオプションを与えた場合、‘-t’の効果は打ち消されて、Emacsは新たにフレームを作成せず、既存のフレームで指定されたファイルをvisitします。