Emacs開始時に種々のアクションをリクエストするためにコマンドライン引数を使用できます。Emacsを使う際にはログイン後に一度だけ起動して同一のEmacsセッション内ですべてを行うのが推奨される方法です(Entering Emacs in The GNU Emacs Manualを参照)。この理由によりコマンドライン引数を頻繁に使うことはないかもしれません。それでもセッションスクリプトからEmacsを呼び出すときやEmacsのデバッグ時にコマンドライン引数が有用になるかもしれません。このセクションではEmacsがコマンドライン引数を処理する方法を説明します。
この関数はEmacsが呼び出された際のコマンドライン引数を解析、処理、そして(とりわけ)ユーザーのinitファイルをロードしてスタートアップメッセージを表示する。
この変数の値は一度コマンドラインが処理されるとt
になる。
dump-emacs
(Emacsのビルドを参照)を呼び出すことによりEmacsを再dumpする場合には、新たにdumpされたEmacsに新たなコマンドライン引数を処理させるために最初にこの変数にnil
をセットしたいと思うかもしれない。
この変数はユーザー定義のコマンドライン引数とそれに関連付けられたハンドラー関数のalist。デフォルトでは空だが望むなら要素を追加できる。
コマンドラインオプション(command-line option)は以下の形式をもつコマンドライン上の引数である:
-option
command-switch-alist
の要素は以下のようになる:
(option . handler-function)
CARのoptionは文字列でコマンドラインオプションの名前(先頭のハイフンは含む)。handler-functionはoptionを処理するために呼び出されて、単一の引数としてオプション名を受け取る。
このオプションはコマンドライン内で引数を併う場合がある。この場合には、handler-functionは残りのコマンドライン引数すべてを変数command-line-args-left
(以下参照)で見つけることができる(コマンドライン引数のリスト全体はcommand-line-args
)。
command-switch-alist
の処理はoption内の等号を特別扱いしないことに注意。つまりコマンドラインに--name=value
のようなオプションがなければ、car
が文字通り--name=value
のcommand-switch-alist
のメンバーでなければこのオプションにマッチしない。そのようなオプションをパースしたければ、かわりにcommand-line-functions
(以下参照)を使う必要がある。
コマンドライン引数はstartup.elファイル内のcommand-line-1
により解析される。Command Line Arguments for Emacs Invocation in The GNU
Emacs Manualも参照のこと。
この変数の値はEmacsに渡されたコマンドライン引数のリスト。
この変数の値はまだ処理されていないコマンドライン引数のリスト。
この変数の値は認識されなかったコマンドライン引数を処理するための関数のリスト。次の引数が処理されてそれに特別な意味がないときは、その都度このリスト内の関数が非nil
をリターンするまでリスト内での出現順に呼び出される。
これらの関数は引数なしで呼び出される。関数はその時点で一時的にバインドされている変数argi
を通じて検討中のコマンドラインにアクセスできる。残りの引数(カレントの引数含まず)は変数command-line-args-left
内にあり。
関数がargi
内のその引数を認識して処理したときは引数を処理したと告げるために非nil
をリターンすること。後続の引数のいくつかを処理したときはcommand-line-args-left
からそれらを削除してそれを示すことができる。
これらの関数すべてがnil
をリターンした場合には引数はvisitすべきファイル名として扱われる。