GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Initial-Options.html ・ emacs-doc.conao3.com

C.2 初期オプション

初期オプションでは、Emacsセッションのパラメータを指定します。本節では、より汎用的な初期オプションについて説明します。X Window Systemに特化したその他のオプションについては、以降の節で説明します。

一部の初期オプションは、初期化ファイルの読み込みに影響を与えます。通常、Emacsはまず site-start.el が存在すればそれを読み込み、次に独自の初期化ファイルが存在すればそれを読み込み、最後にデフォルトの初期化ファイル default.el が存在すればそれを読み込みます(Emacs初期化ファイルを参照)。特定のオプションは、これらのファイルの一部の読み込みを妨げたり、別のファイルで代用したりします。

‘-chdir directory’
‘--chdir=directory’

他の処理を行う前に、directory に変更してください。これは主に X のセッション管理で使用され、Emacs が終了時と同じディレクトリから起動するようにします。これにより、デスクトップの保存と復元が容易になります。

‘-t device’
‘--terminal=device’

端末の入出力デバイスとして device を指定してください。このオプションは ‘--no-window-system’ と同等です。

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

X Window Systemを使用し、displayという名前のディスプレイを用いて初期のEmacsフレームを開いてください。詳細については、ディスプレイ名の指定を参照してください。

‘-nw’
‘--no-window-system’

ウィンドウシステムと直接通信せず、DISPLAY 環境変数が設定されていてもそれを無視します。つまり、Emacs はすべての表示および入力に、起動元のターミナルを使用します。

‘-batch’
‘--batch’

Emacsをバッチモードで実行します。バッチモードは、シェルスクリプトやmakefileなどからEmacs Lispで記述されたプログラムを実行する際に使用します。Lispプログラムを呼び出すには、‘-batch’オプションを、‘-l’、‘-f’、または‘--eval’のいずれか1つ以上と組み合わせて使用します(アクション引数を参照)。例については、コマンド引数の例を参照してください。

バッチモードでは、Emacsは編集中のテキストを表示せず、C-zやC-cといった標準的なターミナル割り込み文字は通常通りの動作をします。C-cの場合、その効果は変数kill-emacs-on-sigintに応じて、Emacsを終了させるか、あるいはquitにシグナルを送るかのいずれかになります。

通常はエコーエリアにメッセージを出力するEmacs関数は、代わりに標準出力ストリーム (stdout) または標準エラーストリーム (stderr) に出力します。(正確には、prin1、princ、print などの関数は stdout に、message と error は stderr に出力します。)通常はミニバッファからキーボード入力を読み取る関数は、代わりにターミナルの標準入力ストリーム (stdin) から入力を取得します。

‘--batch’は‘-q’(初期化ファイルを読み込まない)を意味しますが、それでもsite-start.elは読み込まれます。また、これによりEmacsはすべてのコマンドオプションを処理した後に終了します。さらに、明示的に自動保存が要求されたバッファを除き、自動保存が無効になります。また、ファイルを保存する際は、別途要求がない限りfsyncシステムコールが省略されます。

‘--batch’ Emacs を実行した際にエラーが発生すると、Emacs Lisp のバックトレースが出力されます。この動作を無効にするには、backtrace-on-error-noninteractive を nil に設定してください。

‘--script file’

‘--batch’のようにEmacsをバッチモードで実行し、file内のLispコードを読み込んで実行してください。

このオプションの一般的な用途は、Emacsを実行するスクリプトファイルです。これらのファイルは、1行目にこのテキストを記述して開始できます。

#!/usr/bin/emacs --script

これにより、‘--script’ を指定して Emacs が起動し、スクリプトファイル名が file として渡されます。その後、Emacs Lisp はこの1行目の ‘#!’ をコメントの区切り文字として扱います。

‘-x’

このオプションは実行可能なスクリプトファイルでのみ使用でき、次のように呼び出す必要があります。

#!/usr/bin/emacs -x

これは ‘--script’ のようなものですが、initファイルの読み込みを抑制し(--quick のように)、通常のコマンドラインでは使用できません(読み込むスクリプトを指定しないためです)。さらに、スクリプトの末尾に達するとEmacsを終了し、最後のフォームの値をスクリプトの終了値として使用します(最後の値が数値である場合)。それ以外の場合は、常に値 0 で終了します。なお、この場合にEmacsがLispコードを読み込む際、1行目およびファイル末尾付近の local-variables セクションの両方にあるファイルローカル変数(ファイル変数の指定 を参照)は無視される点に注意してください。

‘--no-build-details’

ビルドの再現性を高めるため、Emacsの実行ファイルからシステム名やビルド時刻などの詳細情報を省略します。このスイッチは、system-name のようなコマンドが nil を返すようになるため、通常の(あるいは対話的な)使用には適していません。

‘-q’
‘--no-init-file’

初期化ファイルを読み込まないでください(Emacsの初期化ファイルを参照)。このオプションを指定してEmacsを起動した場合、Customize機能ではオプションを保存できません(Easy Customizationインターフェースを参照)。このオプションはsite-start.elの読み込みを無効にするものではありません。

‘--no-site-file’
‘-nsl’

site-start.el は読み込まないでください(Emacs 初期化ファイルを参照)。‘-Q’ オプションも同様ですが、‘-q’ などの他のオプションはそうではありません。

‘--no-site-lisp’

site-lisp ディレクトリを load-path に含めないでください(Emacs 初期化ファイル を参照)。‘-Q’ オプションでも同様の処理が行われます。

‘--init-directory’

Emacsの初期化ファイルを検索する際に使用するディレクトリを指定します。なお、これは単にuser-emacs-directory(Emacsが通常、初期化ファイルの検索の副産物として決定するディレクトリ。Emacsによる初期化ファイルの検索方法を参照)の値を上書きするものであり、~/.emacs初期化ファイルの検索を変更するものではありません。特に、このオプションで指定されたディレクトリにinit.elファイルが存在しない場合、Emacsはこのオプションがなくても使用していたであろうinit.elファイルを探して使用します(ただし、このオプションで指定されたディレクトリ内で、ユーザーごとの他のEmacsファイルは検索します)。このディレクトリにあるinit.elファイルを強制的に使用させたい場合は、このオプションを指定してEmacsを起動する前に、そのファイルが存在していることを確認してください。

‘--no-splash’

起動画面を表示しないでください。また、初期化ファイルで変数 inhibit-startup-screen に nil 以外の値を設定することでも、この効果を得られます(Emacs への入り方 を参照してください)。

‘--no-x-resources’

Xリソースをロードしないでください。また、初期化ファイルで変数 inhibit-x-resources に t を設定することでも同様の効果が得られます(Xリソースを参照)。

‘-Q’
‘--quick’

最小限のカスタマイズでEmacsを起動してください。これは、‘-q’、‘--no-site-file’、‘--no-site-lisp’、‘--no-x-resources’、および‘--no-splash’を併用するのと同様です。

‘-daemon’
‘--daemon[=name]’
‘--bg-daemon[=name]’
‘--fg-daemon[=name]’

Emacsをデーモンとして起動する:Emacsの起動後、フレームを一切開かずにEmacsサーバーが起動します。その後、emacsclientコマンドを使用してEmacsに接続し、編集を行うことができます。(オプションとして、サーバー用に明示的なnameを指定することも可能です。その場合、emacsclientを呼び出す際に、その--socket-nameオプションを通じて同じnameを指定する必要があります(emacsclient オプションを参照してください)。)Emacsをデーモンとして使用する方法については、「Emacsをサーバーとして使用する」を参照してください。「バックグラウンド」デーモンはターミナルから切断され、バックグラウンドで動作します(「--daemon」は「--bg-daemon」のエイリアスです)。

initファイル(Emacs初期化ファイルを参照)に、グラフィカルディスプレイでしか利用できない各種機能を必要とするカスタマイズや、色、マウス、フォントなどのそうした機能を必要とするオプション機能を有効にする記述がある場合、Emacsをデーモンとして起動すると、デーモンが対応ディスプレイにアクセスできないため、それらのカスタマイズが機能しない可能性があります。代わりに、それらすべてのカスタマイズを実行するLisp関数を定義し、add-hook を使用してその関数をフック server-after-make-frame-hook に追加してください(初期化ファイルの例を参照)。そうすれば、emacsclient を呼び出した際にEmacsがフレームを作成した後、これらのカスタマイズが実行されます。(おそらく、これらのカスタマイズがクライアントフレームの初回作成時に一度だけ実行されるよう設定する必要があるでしょう。)

‘--no-desktop’

保存済みのデスクトップを再読み込みしないでください。Emacsセッションの保存を参照してください。

‘-u user’
‘--user=user’

自前のファイルではなく、userの初期化ファイルを読み込んでください38。

‘--debug-init’

初期化ファイル内のエラーに対して Emacs Lisp デバッガを有効にします。The GNU Emacs Lisp Reference Manual の Entering the Debugger on an Error を参照してください。

‘--module-assertions’

動的にロード可能なモジュールを扱う際に、負荷の高い正当性チェックを有効にします。これは、自身のモジュールがモジュールAPIの要件に準拠していることを検証したいモジュール作成者を対象としています。このオプションを有効にすると、モジュール関連のアサーションがトリガーされた場合にEmacsが中断します。The GNU Emacs Lisp Reference Manualの動的にロード可能なモジュールの作成を参照してください。

‘--dump-file=file’

指定した file から、ダンプされた Emacs の状態を読み込みます。デフォルトでは、インストール済みの Emacs は、アーキテクチャ依存のファイルが配置されるディレクトリ内の emacs.pdmp というファイルからダンプ状態を探します。変数 exec-directory にはそのディレクトリ名が格納されています。emacs は Emacs の実行ファイルの名前で、通常は単に emacs となります。(インストールせずにビルドした src ディレクトリから Emacs を起動した場合、実行ファイルのディレクトリ内でダンプファイルを探します。)ダンプファイルを別の場所にリネームまたは移動した場合は、このオプションを使用して、そのファイルの場所を Emacs に指定できます。


脚注

(38)

このオプションはMS-Windowsには影響しません。