Windows 7でdot emacs .emacsファイルに別の場所を設定するにはどうすればよいですか?


16

Windows 7コンピューターを使用していますが、管理者アクセス権がありません。そのため、ルートディレクトリにドットemacsファイルを配置できません。ドットemacsファイルに別の場所を指定する方法はありますか?


あなたは(あなたが欲しい、または少なくともインストールへの書き込みアクセス権を持ってどこ例えば、それを入れて)Emacsのインストールの独自の位置を制御することができます場合は、のようなものを使用することにより、完全な制御を取ることができないsite-start.el自分自身をロードするためにinit.el、もはや必要性を、あなたA .emacs。この例では、ホームディレクトリをいじる必要はありません(コンピューター上の他の誰かがそこに何かを置いている場合を除きます)。言い換えると、空白にすることができ、それに触れる必要はありません。
法律家

回答:


4

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
-Startec

私の提案は、本当にシンボリックリンクを使用することでした。他の回答で示されているように、Emacsが初期化中に読み込む標準の場所の1つに何かを置く必要があります。
グルーカス

手動リンクが壊れています。
corvus_192

17

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/どこでも私が欲しいです。


ほんとうに、私が必要としていたものに感謝します。default-directoryとsentenv HOMEは省略しましたが、それ以外はsetqに必要なものです!
グラントボウマン

ライアンの答えを試しました。しかし、今ではAppData \ Roamingフォルダーからemacs内でこのファイルを開くことができません。コメントを追加できなかったので、すみませんが、まだ50ポイントを持っていません。
スリークマールR

@SreekumarRあなたのこの1にリンクし、代わりに「回答」を掲載、新しい質問をする必要がある
アンドリュー・スワン

@SreekumarR新しい質問がある場合は、「質問する」ボタンをクリックして質問してください。コンテキストの提供に役立つ場合は、この質問へのリンクを含めてください。- レビューから
ステファン

5

.emacsファイルはHOMEディレクトリに保存されます。Emacsマニュアルから

Windowsと同等のHOMEは、ユーザー固有のアプリケーションデータディレクトリです。実際の場所は、Windowsのバージョンによって異なります...

システムの任意のディレクトリを指すように環境変数HOMEを明示的に設定することにより、HOMEのこのデフォルト値をオーバーライドできます。HOMEは、コマンドシェルプロンプトまたは「マイコンピュータ」の「プロパティ」ダイアログから設定できます。HOMEはシステムレジストリでも設定できます。MS-Windowsレジストリを参照してください。


1
はい、私は別のディレクトリ(私はemacsのにディレクトリの特定を持つことができるようにということ)から読みセットのemacsにできるようにしたいバージョン管理上の理由から、しかし、ホームディレクトリを設定する方法を知っている
Startec

3
このハックにより、Emacsは他のものをホームディレクトリと見なすことに注意してください。
-wasamasa

@wasamasa-「ハック」とは呼びません。私のEmacs 25のビルドでは、環境変数で「HOME」を設定しないと、デフォルトでEmacsインストールディレクトリが使用されますが、これは明らかに間違っています。「HOME」は、ユーザーがホームディレクトリと見なすものに設定する必要があります。環境変数の設定は、これを行うための標準的な方法です。Unixシステムでは、これは通常、ログインプロセス中にユーザーに対して既に行われていますが、Windowsでは手動で行う必要があります。
TED

これのポイントは、HOMEディレクトリを通常とは大きく異なるものに変更することです。したがって、なぜ私はそれをハックと呼ぶのでしょう。適切な値に設定することは明らかに問題ありません。
wasamasa

2

あなたは言う:

私はホームディレクトリを設定する方法を知っていますが、バージョン管理の理由で、別のディレクトリから読み取るようにemacsを設定できるようにしたいので(emacsに固有のディレクトリを持つことができます)

initファイルはホームディレクトリに格納され、どこにでも配置できます。どうやら、Emacsがロードするもの用に別のディレクトリが必要になります。それは問題ではありません。initファイルをホームディレクトリに配置し、そのファイルに変数の値に別のディレクトリを追加してから、load-path使用する他のEmacsライブラリを要求します。それらのライブラリを別のディレクトリに配置します。

IOW、initファイルには、ロードしたいEmacsライブラリを保持するディレクトリの設定以外のものを含める必要はありません。



0

(setq user-init-file "C:/path/to/.emacs")@ryanが提案した他の行をsite-start.elに入れることができると思います

サイトには、サイトスタートアップファイルもあります。存在する場合、これはsite-start.elという名前です。default.elと同様に、EmacsはLispライブラリの標準検索パスを介してこのファイルを見つけます。Emacsは、initファイルをロードする前にこのライブラリをロードします。

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