フォルダがあります/var/~/
。構成.emacs
では、このフォルダーからいくつかのファイルをロードしたいと思います。使用しようとしまし(load-file "/var/~/foobar.el")
たが、emacs alerts File error: Cannot open load file, ~/foobar.el
. さらに、このフォルダーの下にあるファイルを で開くことさえできませんでしたc-x c-f
。ミニバッファでは、パスは自動的に私の家にリダイレクトされます。そのフォルダにファイルをロードするにはどうすればよいですか?
2 に答える
7
ディレクトリの名前を変更する必要があります。
load-file
load
は、を介して指定されたファイル名を渡す単純なラッパー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 に答える