4

フォルダがあります/var/~/。構成.emacsでは、このフォルダーからいくつかのファイルをロードしたいと思います。使用しようとしまし(load-file "/var/~/foobar.el")たが、emacs alerts File error: Cannot open load file, ~/foobar.el. さらに、このフォルダーの下にあるファイルを で開くことさえできませんでしたc-x c-f。ミニバッファでは、パスは自動的に私の家にリダイレクトされます。そのフォルダにファイルをロードするにはどうすればよいですか?

4

2 に答える 2

7

ディレクトリの名前を変更する必要があります。

load-fileloadは、を介して指定されたファイル名を渡す単純なラッパーsubstitute-in-file-nameです。substitute-in-file-name(強調鉱山)のdocstringから:

FILENAME で参照される環境変数を置き換えます。FOO が環境変数名である「$FOO」は、その変数の値を置き換えることを意味します。変数名は、文字、数字、アンダースコア以外の文字で終了する必要があります。それ以外の場合は、変数名全体を中括弧で囲みます。

`/~' が現れると、その `/' までのすべての FILENAME が破棄されます。`//' が現れると、最初の `/' までのすべてが破棄されます。

つまり、 のsubstitute-in-file-name前のすべてを捨てて/~、 に変わり/var/~/foo.elます~/foo.el

この動作に理由はまったく見当たりませんが、それが何であり、(簡単に) 回避することはできないため、名前を変更することがこのジレンマから抜け出す最善の方法です。

どう考えても合理的な行為です。ディレクトリ名として使用~することは、Emacs だけでなく、Unix システムでは一般的に悪い考えです。

于 2014-09-30T20:09:40.467 に答える