初期化ファイルの相対パス


7

カスタムディレクトリからテーマなどをロードする場合、絶対パスではなくinit.elファイルからの相対パスを指定できますか?

私のOSXとWindowsマシンで同じ設定ファイルを使用できるようにしたいので、〜/ .emacs.d / themesのような絶対パスが各マシンで異なるものを意味するので私は尋ねます(Windowsがどのように処理するかさえわかりません〜)


1
MS Windows ~/は同じ方法で処理します。ホームディレクトリとして、環境変数の値ですHOME
2015

@Drew cd ~/cmdで試しましたが、HOME変数が正しく設定されているにもかかわらず、パスが見つかりませんでした...
Simon

通常cdは、ホームディレクトリに移動するのに十分です。また、Powershellを使用した方がいいです。cmdは確実に古くなっています。
ヌスカミ_

で始めましたemacs -Qか?環境変数を定義しましたHOMEか?しましたM-x cd RET ~/ RETか?私のために働く。
2015

1
Windowsのcmd.exeシェルは〜を理解しませんが、WindowsのEmacsはそれを処理します。@Nsukami_:cd(cmdプロンプトで)は、現在のディレクトリを出力しますが、ホームディレクトリに変更しません。
glucas

回答:


10

initファイルで〜/を使用すると、Windowsで正常に動作します。私は常にHOME環境変数を定義し、そこに.emacs.dを置きますが、他のアプローチもあります。Emacsが家庭で何を使うかを決定する方法の詳細についてはFAQを参照してください

user-emacs-directory必要に応じて、変数を使用してパスを作成することもできます。

 (expand-file-name "foo.el" user-emacs-directory)

私の場合、これは単にと交換可能"~/.emacs.d/foo.el"です。


メモリが機能する場合は、ファイル名にMS Windows環境変数を使用することもできます(それらは展開されます)。ただし、UNIX構文を使用する必要があります(つまりの$PROGRAMFILES代わりに%PROGRAMFILES%、現時点では確認できません)。
wvxvw

1
代わりにLocate-user-init-fileを使用することもできます。

0

load-relativeはこのようなことをするように書かれました。その目的は、パッケージ内で相対リンクを行うことでしたが、ここでも使用できると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.