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

ファイル名

ファイルを操作するEmacsのコマンドには,たいていファイル名の指定が必要 です(セーブとリバートでは,バッファは使用するファイル名を知っているので 例外です).ファイル名は,ミニバッファを使って指定します (see section ミニバッファ).長いファイル名を指定するには,入力補完機能が便利で す.See section 入力補完機能.

RETキーだけを入力して空の引数を入力したときは, 常にデフォルトファイル名が使われます.デフォルトファイル名はカレン トバッファに読み込まれているファイルの名前で,Emacsのファイルコマンドを 使ってそのファイルを操作するのが簡単になります.

バッファにはそれぞれデフォルトディレクトリがあります.通常はそのバッファ に読み込まれているファイルのディレクトリと同じです.Emacsがファイル名を 読みとる場合に,ディレクトリの指定がないときには,デフォルトディレクトリ が使われます.スラッシュで始まらない相対的指定をしたときは,デフォルトディ レクトリからの相対的なものと解釈されます.デフォルトディレクトリは,変数 default-directoryに保存され,それぞれのバッファに個別の値となりま す.

たとえば,デフォルトファイル名が,`/u/rms/gnu/gnu.tasks'であれば, デフォルトディレクトリは,`/u/rms/gnu/'です.ディレクトリを指定せず に`foo'だけを入力したときには,`/u/rms/gnu/foo'を意味します. `../.login'は,`/u/rms/.login'を,`new/foo'はファイル名 `/u/rms/gnu/new/foo'をそれぞれ意味します.

M-x pwdコマンドはカレントバッファのデフォルトディレクトリを表示 し,コマンドM-x cdはそれを(ミニバッファを使って読みとられる値に)設 定します.バッファのデフォルトディレクトリが変更されるのは,cdコ マンドが使われたときだけです.ファイルを読み込んだバッファのデフォルトディ レクトリはそのディレクトリに初期設定されます.バッファがC-x bを使っ て作成された場合は,デフォルトディレクトリはその時点でのカレントバッファ のものと同じになります.

ファイル名を読みとるためにミニバッファが起動されたときは,実際にはデフォ ルトディレクトリがミニバッファに現われます.これには2つの目的があります. 1つはデフォルトが何であるかを示すことです.これにより相対的ファイル名を 入力することができ,その意味が確実にわかります.もう1つは,デフォルトを 編集して別のディレクトリの指定ができることです.デフォルトディレクトリの 挿入は,変数insert-default-directorynilにすると働きませ ん.

テキストの一部としてのデフォルトディレクトリ名を無視して,絶対ファイル 名を入力するのは全く問題ありません.ミニバッファの内容はおかしなものに見 えますが,実際はそうではありません.これに関しては,See section ファイル名用のミニバッファ.

ファイル名中の`$'は,環境変数に展開するのに使われます.たとえば, `FOO'という名前の環境変数を`setenv FOO rms/hacks'というシェル コマンドで設定したなら,`/u/rms/hacks/test.c'`/u/$FOO/test.c'または`/u/${FOO}/test.c'というように表すこと ができます.環境変数の名前には,すべての英数字が使えます.その名前を `$'に続けるか,`$'後ろにかっこで括って表します.ただし, `setenv'がEmacsに影響を与えることができるのは,Emacsを起動する前に 実行したときだけです.

ファイル名に`$'を含むファイルにアクセスするためには,`$$'と タイプしてください.単独の`$'を環境変数に置換するときに,このペアも `$'に変換されます.この置換を行なうLisp関数は substitute-in-file-nameといいます.この置換は,ミニバッファを用い て読みとったファイル名に対してだけ行なわれます.


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