回答:
Emacs FAQ http://www.gnu.org/software/emacs/windows/からコピーして貼り付けます。
Windowsでは、.emacs
ファイル_emacs
名はドットで開始できないDOSおよびFATファイルシステムとの下位互換性のためにファイルが呼び出される場合があります。ファイルシステムや他のほとんどのプログラムで処理できても、Windowsエクスプローラーでドットで始まる名前のファイルを作成できないため、このような名前を使い続けることを好むユーザーもいます。Emacs 22以降では、initファイルはと呼ばれることもあります.emacs.d/init.el
。Lispパッケージによって作成された他の多くのファイルも.emacs.d
ディレクトリに格納されるようになったため、Emacs関連のすべてのファイルが1か所に保持されます。
上記のすべてのファイルは、HOMEディレクトリに配置する必要があります。HOMEディレクトリは、次の手順に従って決定されます。
C:\.emacs
存在する場合は、を使用しますC:/
。これは下位互換性のためC:/
です。以前のバージョンでは、HOMEが設定されていなかった場合にデフォルトで設定されていました。Emacs内で~
は、ファイル名の先頭でHOMEディレクトリに展開されるため、.emacsファイルは常にで見つけることができますC-x C-f ~/.emacs
。
変数user-init-fileに保存する必要があります。C-H v user-init-file RET
チェックに使用します。を使用して直接開くこともできますM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression
?
私のビスタボックスにはそれが入っています C:\Users\<USER>\AppData\Roaming\
Ctrl-x Ctrl-f ~/.emacs
ファイルを入力して作成するだけでは不十分な場合があることに注意してください。
Emacsアプリケーションがinitファイルを格納するために別の場所を使用している可能性があります。その場合、〜/ .emacsファイルを作成すると、Emacsアプリケーションが無視する役に立たないファイルが作成されます。
また、.emacs initファイルにアクセスするだけではなく、どこにあるか、つまりパス名を知りたい場合もあります。
これを実現するには、2つの方法があります。
簡単な方法:type Ctrl+ H Vuser-init-fileReturn
少しトリッキーな方法:次の方法で、システムが独自の.emacsファイルを格納している場所を確認できます。
c:/Users/user1/AppData/Roaming/.emacs.el
。このサイトemacswiki.org/emacs/DotEmacsDotDは、ファイルに名前を付ける必要があることを理解するのに役立ちました。これ~/.emacs.d/init.el
は、ファイルシステム内のファイルの場所を意味していましたc:\Users\user1\AppData\Roaming\.emacs.d\init.el
(まったく期待したものではありませんでした)。私はHOME環境変数を設定し、ファイル%USERPROFILE%
をWindowsの論理HOMEディレクトリである(少なくとも私が考える限り)ディレクトリに配置することを好みます。
emacs初期化ファイルを作成する必要があります。1つは自動的に作成されません。私にも同様の問題があり、この答えは私がしたことを追跡しています。
私の問題は、~/.emacs.el
ファイルが読み込まれていなかったことでした。これはいつも私のために働いていたので奇妙です。
この質問/回答は役に立ちましたが%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
、これは明らかにWindowsのデフォルトの動作であるため、initファイルをに入れなければなりませんでした。
これをトラブルシューティングするために、私はemacs * scratch *バッファーで以下を実行しました。
user-emacs-directory
"~/.emacs.d/"
私が見user-emacs-directory
たとき~/.emacs.d
、私は単に.emacs.elファイルをに移動しました%USERPROFILE%\.emacs.d\init.el
。しかし、これはまだ機能しませんでした。私はexpand-file-name
以下に示すように続けました:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Windowsの動作を気に入ってもらいました。(ではない)それで私は自分のemacs.el
ファイルをに移動しましたが%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
、これはうまくいきました。ファイルは現在読み取られていました。しかし、私の初期化ファイルが他の(個人のemacs)ファイル(~/myenv/emacs/*.el
。
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
うーん... ~/myenv/emacs/*.el
これが機能するためには、すべてのファイルを移動する必要があるようですが、移動したくありませんでした。次に、HOME環境変数が設定されていないため、emacsがデフォルトの動作を実行していることがわかりました。
解決
Windows HOME
環境変数を設定%USERPROFILE%
すると、過去25年間と同じようにすべてが機能し始めました。:-)
HOME環境変数を設定するには、WindowsKey +「アカウントの環境変数を編集」と入力して[ 環境変数 ]ダイアログボックスを開き、と入力しましたHOME=%USERPROFILE%
。
今、私のemacs初期化ファイル.emacs.elは正しい場所に戻っており$HOME/.emacs.el
、%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Windowsは、ユーザーがインストールパッケージのHOMEを作るの溶液を、ファイルを置くだけで一つの場所を持っていた場合=、公平を期すために、%USERPROFILE\AppData\Roaming
許容できるかもしれませんが、いくつかのアプリケーションが使用しているので%USERPROFILE%
、いくつかの使用%USERPROFILE\AppData\Roaming
と他の人が使用し%USERPROFILE\AppData\Local
、それはちょうどそれが難しいあなたの設定を検索する場所を知ることができますファイル。
私はすべてを%USERPROFILE%または$ HOMEディレクトリに置くことを好みます。
別の同様の質問がここにありました:
Emacs 23とWindows 7では、以下を設定した場合にのみ機能します。
HKCU\SOFTWARE\GNU\Emacs\HOME
私は、Emacs 22が時々 "C:\ Documents and Settings \ username \ Application Data \ .emacs"を開くか、または私のXPマシンで "C:\ Documents and Settings \ username \ .emacs"を開くことを発見しました。それが時々心を変える理由についての説明は見つかりませんでした。
〜は常にemacsの現在のインスタンスがHOMEであると考えるものは何でも指し示しますが、カンジャのヒント(Ch v user-init-file)は常に〜/ .emacsが実際にマップするものを教えてくれます。
HOME
起動方法によって、Windowsが環境変数を異なる方法で設定することに気づきましたrunemacs.exe
。エクスプローラー内から起動した場合HOME
はに設定されC:\Documents and Settings\username
ますが、スタートメニューから起動した場合HOME
はC:\Documents and Settings\username\Application Data
です。奇妙な。
Windowsのバージョンと追加情報に基づいたディレクトリのリストがあります:http : //www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
Windows 8.1では、Windowsエクスプローラー、ショートカット、またはcmdコンソールからEmacsを起動すると、C:\ Users \ <USER> \ AppData \ Roaming.emacs initファイルが使用されます。PowerShellからEmacsを起動すると、EmacsはC:\ Users \ <USER>フォルダーでその初期化ファイルを探します。この問題の修正は、HOMEユーザー環境変数(コントロールパネル\システムとセキュリティ\システム->システムの詳細設定->詳細設定->環境変数)をC:\ Users \ <USER>に設定することでした。この変更後、Emacsをどのように起動しても、同じinitファイルが使用されます(この質問の承認済み回答を参照してください)