Go to the first, previous, next, last section, table of contents.

コマンドスイッチと引数

GNU Emacsでは,コマンド行に引数を書くことによって,Emacsを呼び出したと きに行なう動作を指示することができます.これには他のエディタとの互換性の ためのものと,高度な処理を行なうためのものがあります.これは普通の使用に は必要ありませんので初心者は飛ばしてもかまいません.

他のエディタでは,どのファイルを編集するかを指定するのにコマンド行を使っ ています.これは他の多くのエディタは編集を開始するときには,常に新しい状 態になるように設計されているためです.1つのファイルを編集したらエディタ を終了します.次に他のファイル,または同じファイルを編集したいときには, エディタをもう一度実行しなくてはなりません.このようなエディタでは,コマ ンド行でどのファイルを編集するかを指定することには意味があります.

GNU Emacsのおすすめの使い方は,Emacsを1回だけ走らせるやり方です.ログ インの直後に呼び出して,すべての編集はこの同じEmacsのプロセスで行ないま す.違うファイルを編集するときには,すでにあるEmacsでそのファイルを読み 込みます.このEmacsは,そのうちたくさんのファイルを編集のために持つよう になります.普通はログアウトのときまでEmacsプロセスを止めません.

ファイルは,たいていすでに走っているエディタに読み込まれているのですか ら,コマンド行の引数でエディタを走らせるときにファイルを指定することはまっ たく無駄です.

Emacsでは,コマンド行の引数として読み込むファイル,呼び出す関数,その 他の動作と動作のモードを指定することができます.

コマンド行の引数はコマンド行に現れる順番で処理されますが,2番目の表の 引数を使うときはコマンド行の先頭になければなりません.

使える引数は,次の通りです.

`file'
find-fileを使って,ファイルを読み込みます.See section ファイルの読み込み
`+linenum file'
find-fileを使ってファイルを読み込み,そのファイルの中の linenumの行番号の行にポイントをおきます.
`-l file'
`-load file'
loadを使って,Lispコードのファイルfileを読み込みます. See section Emacs用のLispコードライブラリ
`-f function'
`-funcall function'
Lisp関数を引数なしで呼び出します.
`-i file'
`-insert file'
fileの内容をカレントバッファに挿入します.M-x insert-buffer にあたる動作をします.See section さまざまなファイル操作
`-kill'
Emacsを終了します.確認を求めることはしません.

以下のスイッチは,コマンド行の最初にあるときのみ認識されます.1つ以上 のスイッチがあるときは,ここの表の順序で現われなければなりません.

`-t device'
編集の入出力のための端末としてdeviceを使います.
`-d display'
Xウィンドウシステムの下で実行するときに,displayの名前のディスプレ イをEmacsの端末を扱うウィンドウにします.
`-batch'
バッチモードでEmacsを実行します.この場合,編集中のテキストは表示 されず,C-zC-cのような標準Unixの割り込み文字は通常の効果を もちつづけます.バッチモードでは,Emacsはプログラム制御下でエコー領域に 通常表示されるものだけをstdoutに出力します. バッチモードは,シェルスクリプトやmakefileなどからEmacs Lispで書かれてい るプログラムを実行するために使われます.同様に`-l'スイッチや `-f'スイッチもバッチ処理を行なうLispプログラムを起動するために使わ れます. `-batch'`-q'(初期化のファイルを読み込まないという意味)を含み ます.また,すべてのコマンドスイッチを処理した後で終了します.また,自動 セーブが設定されたバッファ以外,自動セーブは実行されません.
`-q'
`-no-init-file'
初期化ファイル`~/.emacs'をEmacsに読み込まないことを指示します.
`-u user'
`-user user'
あなたのファイルの変わりに`~user/.emacs'というEmacsの初期化ファ イルを読み込みます.

初期化ファイルから変数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-bufferC-x C-sに割り当てられた関数),それからシェル へ抜けます.`-batch'では,`log'へ出力先を変えても問題がないこ とが保証されています.Emacsは利用できるディスプレイ端末がないと想定しま す.


Go to the first, previous, next, last section, table of contents.