GNU Emacsでは,コマンド行に引数を書くことによって,Emacsを呼び出したと きに行なう動作を指示することができます.これには他のエディタとの互換性の ためのものと,高度な処理を行なうためのものがあります.これは普通の使用に は必要ありませんので初心者は飛ばしてもかまいません.
他のエディタでは,どのファイルを編集するかを指定するのにコマンド行を使っ ています.これは他の多くのエディタは編集を開始するときには,常に新しい状 態になるように設計されているためです.1つのファイルを編集したらエディタ を終了します.次に他のファイル,または同じファイルを編集したいときには, エディタをもう一度実行しなくてはなりません.このようなエディタでは,コマ ンド行でどのファイルを編集するかを指定することには意味があります.
GNU Emacsのおすすめの使い方は,Emacsを1回だけ走らせるやり方です.ログ インの直後に呼び出して,すべての編集はこの同じEmacsのプロセスで行ないま す.違うファイルを編集するときには,すでにあるEmacsでそのファイルを読み 込みます.このEmacsは,そのうちたくさんのファイルを編集のために持つよう になります.普通はログアウトのときまでEmacsプロセスを止めません.
ファイルは,たいていすでに走っているエディタに読み込まれているのですか ら,コマンド行の引数でエディタを走らせるときにファイルを指定することはまっ たく無駄です.
Emacsでは,コマンド行の引数として読み込むファイル,呼び出す関数,その 他の動作と動作のモードを指定することができます.
コマンド行の引数はコマンド行に現れる順番で処理されますが,2番目の表の 引数を使うときはコマンド行の先頭になければなりません.
使える引数は,次の通りです.
find-file
を使って,ファイルを読み込みます.See section ファイルの読み込み
find-file
を使ってファイルを読み込み,そのファイルの中の
linenumの行番号の行にポイントをおきます.
load
を使って,Lispコードのファイルfileを読み込みます.
See section Emacs用のLispコードライブラリ
以下のスイッチは,コマンド行の最初にあるときのみ認識されます.1つ以上 のスイッチがあるときは,ここの表の順序で現われなければなりません.
stdout
に出力します.
バッチモードは,シェルスクリプトやmakefileなどからEmacs Lispで書かれてい
るプログラムを実行するために使われます.同様に`-l'スイッチや
`-f'スイッチもバッチ処理を行なうLispプログラムを起動するために使わ
れます.
`-batch'は`-q'(初期化のファイルを読み込まないという意味)を含み
ます.また,すべてのコマンドスイッチを処理した後で終了します.また,自動
セーブが設定されたバッファ以外,自動セーブは実行されません.
初期化ファイルから変数command-line-args
のリストの要素として,コ
マンド行の引数を参照することができます(引数のうち後ろの表にあるものは,
その時点では処理が終っているのでリストにはありません).初期化ファイルで
この変数を変更して,引数の処理を変えることができます.
コマンドスイッチを使って,たくさんのファイルを自動的に読み込むことがで きます.
emacs *.c
は,それぞれの.c
ファイルをわかれた引数としてEmacsに渡します.これ
によってEmacsはそれぞれのファイルを読み込みます(see section ファイルの読み込み).
次は,高度な使い方の例です.`hack-c-program.el'の名前のLispプログ ラムファイルがあるとします.これは,読み込まれたときカレントバッファがC のプログラムテキストであるとして,何か役に立つ編集を行なうものとします.
emacs -batch foo.c -l hack-c-program -f save-buffer -kill > log
この例では,Emacsは`foo.c'を読み込み,`hack-c-program.el'(読み
込んだファイルの編集を行なうもの)をロードし,`foo.c'をセーブし
(save-buffer
はC-x C-sに割り当てられた関数),それからシェル
へ抜けます.`-batch'では,`log'へ出力先を変えても問題がないこ
とが保証されています.Emacsは利用できるディスプレイ端末がないと想定しま
す.