Previous: Terminal-Specific, Up: Starting Up
Emacsを始動するときにコマンド行引数を使ってさまざまな動作を要求できます。 一日に一度より多くEmacsを始動する必要はないでしょうし、 しばしばEmacsセッションをそれより長く動かし続けるでしょうから、 コマンド行引数はほとんど使いません。 実際、コマンド行引数を使う癖は避けたほうがよいです。 そのような癖をつけると、Emacsを必要以上に終了したり再始動するからです。 これらのオプションは2つの理由で存在します。 (別のプログラムから起動される)他のエディタと互換性があるようにするのと、 シェルスクリプトから特定のLispプログラムを実行できるようにするためです。
本節では、Emacsがコマンド行引数を処理する方法と、 それらをカスタマイズする方法について述べます。
この変数の値は、コマンド行引数を一度処理し終えると
t
である。
dump-emacs
を呼んでEmacsを再ダンプするときには、 この変数にnil
を設定すれば、 新たにダンプしたEmacsでコマンド行引数を処理するようにできる。
この変数の値は、ユーザー定義のコマンド行オプションの連想リストである。 この変数は、読者が要素を追加できるように存在する。
コマンド行オプション(command line option)は、 つぎの形のコマンド行の引数である。
-option
command-switch-alist
の要素はつぎの形である。(option . handler-function)handler-functionは、オプションoptionを処理するために呼ばれ、 オプション名を唯一の引数として受け取る。
コマンド行のオプションには引数が続く場合もある。 そのような場合、handler-functionは 変数
command-line-args-left
からすべての残りのコマンド行引数を 調べることができる。 (コマンド行引数全体のリストはcommand-line-args
にある。)コマンド行引数は、ファイルstartup.elの 関数
command-line-1
が解析する。 コマンド行引数も参照。
この変数の値は、認識できないコマンド行引数を処理する関数のリストである。 つぎに処理する引数に特別な意味がないと、 このリストの関数を
nil
以外の値を返すまで現れる順に呼び出す。これらの関数は引数なしで呼び出される。 これらの関数では、呼び出し時に束縛される変数
argi
を介して 対象となるコマンド行引数を参照できる。 (いま対象となっている引数を除く)残りの引数は 変数command-line-args-left
にある。関数が
argi
を認識して処理したときには、 その引数を処理したことを表すためにnil
以外の値を返すこと。 後続の引数の一部も処理した場合には、command-line-args-left
から それらを削除することで処理したことを示せる。これらの関数すべてが
nil
を返すと、 訪問するファイル名として引数を用いる。