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

20.7 ファイル名エイリアス

シンボリックリンクとハードリンクは、いずれも複数のファイル名で同じファイルを参照することを可能にします。ハードリンクはファイルを直接参照する別名であり、すべての名前が等しく有効で、どれか一つが優先されることはありません。対照的に、シンボリックリンクは一種の定義済みエイリアスです。fooがbarへのシンボリックリンクである場合、どちらの名前を使ってもファイルを参照できますが、barが本来の名前であり、fooは単なるエイリアスに過ぎません。シンボリックリンクがディレクトリを指している場合には、より複雑なケースが生じます。

通常、Emacsがすでに別の名前で開いているファイルにアクセスすると、Emacsはエコーエリアにメッセージを表示し、そのファイルを開いている既存のバッファを使用します。これは、ハードリンクやシンボリックリンクをサポートするシステムや、長いファイル名を切り捨てるシステム、あるいは大文字小文字を区別しないファイルシステムで長いファイル名を使用した場合に起こり得ます。変数 find-file-suppress-same-file-warnings に nil 以外の値を設定することで、このメッセージを抑制できます。また、変数 find-file-existing-other-name に nil を設定することで、この機能を完全に無効にできます。この設定を行うと、同じファイルに2つの異なる名前でアクセスした際に、ファイル名ごとに個別のバッファが割り当てられます。

変数 find-file-visit-truename が nil 以外の場合、バッファに記録されるファイル名は、指定した名前ではなく、そのファイルの truename(すべてのシンボリックリンクをリンク先の名前に置き換えたもの)となります。また、find-file-visit-truename を設定すると、find-file-existing-other-name の効果も伴います。

通常、ディレクトリにはシンボリックリンク経由でアクセスしますが、Emacsに優先的にそのリンク先名を表示させたい場合があります。これを実現するには、directory-abbrev-alistをカスタマイズします。このリストの各要素は(from . to)という形式である必要があり、これはディレクトリ名にfromが現れるたびにfromをtoに置き換えることを意味します。fromという文字列は正規表現です(正規表現の構文を参照)。これは先頭文字をアンカーとしたディレクトリ名に対して照合され、‘\`’で始まる必要があります(‘^’が機能しなくなるような、改行を含むディレクトリ名をサポートするためです)。toという文字列は、同じディレクトリを指す通常の絶対ディレクトリ名である必要があります。to文字列の中でホームディレクトリを表すために‘~’を使用しないでください。Emacsはこれらの置換を個別に行います。以下に、/home/fsfが通常/fsfという名前のシンボリックリンク経由でアクセスされるシステムの例を示します:

(("\\`/home/fsf" . "/fsf"))