回答:
Emacsには、マニュアルに記載されているように、initファイルを探す場所がいくつかあります。Emacsをカスタマイズする場合は、これらのファイルのいずれかから開始する必要があります。
一般的なアプローチは、ファイルを使用することでinit.el
、あなたにuser-emacs-directory
代わり有するので、.emacs
ホームディレクトリにあります。
user-emacs-directory
デフォルトでは~/.emacs.d
、それはまだあなたの家に相対的であるが、このアプローチの利点は、一つの場所にあなたのEmacsの設定に関連するすべてのものを維持することができます。そのディレクトリは、バージョン管理下に置かれ、バックアップされ、複数のマシン間で共有さmklink
れます。Windows上のシンボリックリンクを使用して、ファイルを他の場所に保持できます。
たとえば、人々がGithubでEmacsの設定を管理するのを見るのは非常に一般的です。init.elファイルでelispプロジェクトをGithubで検索すると、この例がたくさん見つかります。
user-emacs-directory
Emacsを使用するすべてのWindowsインストール.emacs
では、リストされた場所のファイルに次のコードがあります。
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
このように、私は私を置くことができます.emacs
し、.emacs.d/
どこでも私が欲しいです。
.emacsファイルはHOME
ディレクトリに保存されます。Emacsマニュアルから:
Windowsと同等のHOMEは、ユーザー固有のアプリケーションデータディレクトリです。実際の場所は、Windowsのバージョンによって異なります...
システムの任意のディレクトリを指すように環境変数HOMEを明示的に設定することにより、HOMEのこのデフォルト値をオーバーライドできます。HOMEは、コマンドシェルプロンプトまたは「マイコンピュータ」の「プロパティ」ダイアログから設定できます。HOMEはシステムレジストリでも設定できます。MS-Windowsレジストリを参照してください。
HOME
ディレクトリを通常とは大きく異なるものに変更することです。したがって、なぜ私はそれをハックと呼ぶのでしょう。適切な値に設定することは明らかに問題ありません。
あなたは言う:
私はホームディレクトリを設定する方法を知っていますが、バージョン管理の理由で、別のディレクトリから読み取るようにemacsを設定できるようにしたいので(emacsに固有のディレクトリを持つことができます)。
initファイルはホームディレクトリに格納され、どこにでも配置できます。どうやら、Emacsがロードするもの用に別のディレクトリが必要になります。それは問題ではありません。initファイルをホームディレクトリに配置し、そのファイルに変数の値に別のディレクトリを追加してから、load-path
使用する他のEmacsライブラリを要求します。それらのライブラリを別のディレクトリに配置します。
IOW、initファイルには、ロードしたいEmacsライブラリを保持するディレクトリの設定以外のものを含める必要はありません。
完全を期すために、次のリンクを提供します。
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
これはHOME
、レジストリパスに値を設定できることを示しています。
HKCU\SOFTWARE\GNU\Emacs\HOME
ただし、この値は環境変数によって上書きされますHOME
。
(setq user-init-file "C:/path/to/.emacs")
@ryanが提案した他の行をsite-start.elに入れることができると思います
サイトには、サイトスタートアップファイルもあります。存在する場合、これはsite-start.elという名前です。default.elと同様に、EmacsはLispライブラリの標準検索パスを介してこのファイルを見つけます。Emacsは、initファイルをロードする前にこのライブラリをロードします。
site-start.el
自分自身をロードするためにinit.el
、もはや必要性を、あなたA.emacs
。この例では、ホームディレクトリをいじる必要はありません(コンピューター上の他の誰かがそこに何かを置いている場合を除きます)。言い換えると、空白にすることができ、それに触れる必要はありません。