GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/File-Names.html ・ emacs-doc.conao3.com

20.1 ファイル名

ファイルを操作する多くのEmacsコマンドでは、ミニバッファを使用してファイル名を指定する必要があります(ファイル名用のミニバッファを参照)。

ミニバッファ内では、通常の補完コマンドや履歴コマンドを使用できます(ミニバッファを参照)。なお、ファイル名の補完では、拡張子が変数 completion-ignored-extensions に含まれるファイル名は無視されます(補完オプションを参照)。また、ほとんどのコマンドでは、ファイル名の読み取り時に確認を伴う寛容な補完が採用されています。存在しないファイル名を入力することも可能ですが、存在しないファイル名まで補完した後に直ちに RET と入力すると、Emacs は ‘[Confirm]’ と表示し、確認のために2つ目の RET を入力する必要があります。詳細は 補完の終了 を参照してください。

ミニバッファ履歴コマンドには、ファイル名を読み取るためのいくつかの特殊な機能が備わっています。詳細はミニバッファ履歴を参照してください。

各バッファには、バッファローカル変数 default-directory に格納されたデフォルトディレクトリがあります。Emacs がミニバッファを使用してファイル名を読み込む際、通常はデフォルトディレクトリをミニバッファの初期内容として挿入します。この挿入を抑制するには、変数 insert-default-directory を nil に変更してください(ファイル名用のミニバッファを参照)。いずれにせよ、Emacs は相対ファイル名を常にデフォルトディレクトリからの相対パスであるとみなします。例えば、ディレクトリを指定せずにファイル名を入力した場合は、デフォルトディレクトリ内のファイルが指定されることになります。

ファイルを訪問すると、Emacsは訪問バッファの default-directory にそのファイルのディレクトリを設定します。C-x b のようなコマンドで、ファイルを訪問していない新しいバッファを作成する場合、デフォルトのディレクトリは通常、その時点でカレントだったバッファからコピーされます(バッファの作成と選択 を参照)。M-x pwd コマンドを使用すると、現在のバッファにおける default-directory の値を確認できます。M-x cd コマンドはディレクトリ名の入力を求め、バッファの 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 が指定されます。

ミニバッファにファイル名を入力する際、いくつかのショートカットを利用できます。ダブルスラッシュを使うと、ペアの2番目のスラッシュより前の部分がすべて無視され、‘~/’はホームディレクトリを指します。ファイル名用のミニバッファを参照してください。

文字 ‘$’ は、ファイル名に環境変数を置換するために使用されます。環境変数の名前は、‘$’ 以降のすべての英数字で構成されます。あるいは、‘$’ の後に波括弧で囲むこともできます。例えば、シェルコマンド export FOO=rms/hacks を使用して FOO という名前の環境変数を設定した場合、/u/$FOO/test.c と /u/${FOO}/test.c はどちらも /u/rms/hacks/test.c の略記となります。環境変数が定義されていない場合は置換が行われないため、文字 ‘$’ はそのままの文字を表します。なお、Emacs 外で設定された環境変数は、Emacs の起動前に適用された場合にのみ Emacs に影響することに注意してください。

ファイル名に ‘$’ が含まれるファイルにアクセスする場合、‘$’ が展開を引き起こすなら、‘$$’ と入力してください。このペアは、単一の ‘$’ に対して変数置換が行われるのと同時に、単一の ‘$’ に変換されます。あるいは、ファイル名全体を ‘/:’ で囲んでください(引用符で囲まれたファイル名を参照)。リテラルの ‘~’ で始まるファイル名は、‘/:./’ で囲んでください。

ファイル名にASCII以外の文字を含めることができます。ファイル名の符号化方式を参照してください。