Antworten:
Kopieren und Einfügen aus den Emacs-FAQ, http://www.gnu.org/software/emacs/windows/ :
Unter Windows wird die .emacs
Datei möglicherweise _emacs
aus Gründen der Abwärtskompatibilität mit DOS- und FAT-Dateisystemen aufgerufen, bei denen Dateinamen nicht mit einem Punkt beginnen konnten. Einige Benutzer bevorzugen es, einen solchen Namen weiterhin zu verwenden, da Windows Explorer keine Datei mit einem Namen erstellen kann, der mit einem Punkt beginnt, obwohl das Dateisystem und die meisten anderen Programme damit umgehen können. In Emacs 22 und höher kann auch die Init-Datei aufgerufen werden .emacs.d/init.el
. Viele der anderen Dateien, die von Lisp-Paketen erstellt werden, werden jetzt auch im .emacs.d
Verzeichnis gespeichert , sodass alle Ihre Emacs-bezogenen Dateien an einem Ort bleiben .
Alle oben genannten Dateien sollten sich in Ihrem HOME-Verzeichnis befinden. Das HOME-Verzeichnis wird wie folgt bestimmt:
C:\.emacs
vorhanden, dann verwenden C:/
. Dies dient der Abwärtskompatibilität, da in früheren Versionen standardmäßig C:/
HOME nicht festgelegt wurde.In Emacs wird ~
am Anfang eines Dateinamens Ihr HOME-Verzeichnis erweitert, sodass Sie Ihre .emacs-Datei immer mit finden können C-x C-f ~/.emacs
.
Weitere Informationen finden Sie unter HOME und Startup Directories unter MS-Windows .
Es sollte in der Variablen user-init-file gespeichert werden. Verwenden Sie C-H v user-init-file RET
zu überprüfen. Sie können es auch direkt mit öffnenM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression
?
Öffnen Sie die Datei wie folgt in Emacs für Windows:
C-x C-f ~/.emacs
Weitere Informationen im Emacs Wiki
Auf meiner Vista-Box ist es in C:\Users\<USER>\AppData\Roaming\
Beachten Sie, dass es möglicherweise NICHT ausreicht, nur Ctrl-x Ctrl-f ~/.emacs
die Datei einzugeben und zu erstellen.
Es kann sein, dass Ihre Emacs-Anwendung einen anderen Ort zum Speichern Ihrer Init-Datei verwendet. Wenn dies der Fall ist, wird beim Erstellen der Datei ~ / .emacs einfach eine nutzlose Datei erstellt, die Ihre Emacs-Anwendung ignoriert.
Möglicherweise möchten Sie auch mehr als nur auf die .emacs-Init-Datei zugreifen , aber Sie möchten möglicherweise wissen, wo sich der Pfadname befindet.
Um dies zu erreichen, gibt es zwei Methoden:
Einfacher Weg: Geben Sie Ctrl+ H Vuser-init-file einReturn
Etwas kniffliger: Sie können herausfinden, wo Ihr System seine eigene .emacs-Datei speichert, indem Sie:
c:/Users/user1/AppData/Roaming/.emacs.el
. Diese Seite emacswiki.org/emacs/DotEmacsDotD half mir zu erkennen, dass ich die Datei benennen musste, ~/.emacs.d/init.el
was bedeutete, dass sich die Datei im Dateisystem befand c:\Users\user1\AppData\Roaming\.emacs.d\init.el
(überhaupt nicht das, was ich erwartet hatte). Ich ziehe es vor, die Umgebungsvariable HOME festzulegen und die Datei in meinem %USERPROFILE%
Verzeichnis abzulegen, das unter Windows das logische HOME-Verzeichnis ist (zumindest soweit es mich betrifft).
Geben Sie init.el
in Windows 7 Ihre Datei ein C:\Users\user-name\AppData\Roaming\.emacs.d\
, wobei der Benutzername Ihr Benutzer- / Anmeldeordner ist.
Achten Sie darauf, dass Ihre init.el
Datei nicht benannt wird init.el.txt
. Dies ist etwas, was Windows tut, wenn Sie Ihre Datei mit einem Editor wie Notepad erstellen.
Bei Versionen von Emacs unter Windows über 22 scheint es verschoben worden zu sein
~/.emacs.d/init.el
, ~
Der Wert Ihrer Umgebungsvariable HOME ist (siehe Systemsteuerung → System - → Erweitert → Umgebungsvariablen ).
Die Datei selbst ist möglicherweise nicht vorhanden. In diesem Fall erstellen Sie es einfach.
Sie müssen eine Emacs-Initialisierungsdatei erstellen. Einer wird nicht automatisch erstellt. Ich hatte ein ähnliches Problem und diese Antwort zeigt, was ich getan habe.
Mein Problem war, dass meine ~/.emacs.el
Datei nicht geladen wurde. Seltsam, weil das bei mir immer funktioniert hat.
Diese Frage / Antwort hat mir geholfen, aber ich musste meine Init-Datei in die ablegen, %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
da dies anscheinend das Standardverhalten unter Windows ist.
Um dies zu beheben, habe ich Folgendes im Emacs * Scratch * -Puffer ausgeführt.
user-emacs-directory
"~/.emacs.d/"
Als ich sah , user-emacs-directory
war ~/.emacs.d
, zog ich einfach meine .emacs.el - Datei %USERPROFILE%\.emacs.d\init.el
. Aber das hat immer noch nicht funktioniert. Ich fuhr fort expand-file-name
wie unten gezeigt:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Ich muss lieben, wie Windows funktioniert. (nicht) Also habe ich meine emacs.el
Datei in die verschoben %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
und das hat funktioniert. Die Datei wurde jetzt gelesen. Ich habe jedoch andere Fehler erhalten, weil meine Initialisierungsdatei andere (persönliche Emacs) Dateien geladen hat (in ~/myenv/emacs/*.el
.
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
Hum ... Scheint, als ~/myenv/emacs/*.el
müssten alle meine Dateien verschoben werden, damit dies funktioniert, aber das wollte ich nicht. Dann wurde mir klar, dass emacs sein Standardverhalten ausführt , da die Umgebungsvariable HOME nicht festgelegt wurde .
LÖSUNG
Nachdem ich meine Windows- HOME
Umgebungsvariable auf " %USERPROFILE%
Alles" gesetzt hatte, funktionierte alles wie in den letzten 25 Jahren. :-)
Um die Umgebungsvariable HOME gesetzt, tippte ich WindowsKey + „bearbeiten Umgebungsvariablen für Ihr Konto“ zu öffnen und die Umgebungsvariablen im Dialogfeld und eingegeben HOME=%USERPROFILE%
.
Jetzt ist meine Emacs-Initialisierungsdatei .emacs.el wieder an ihrem richtigen Platz $HOME/.emacs.el
und nicht in%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Um fair zu sein, wenn Windows nur einen Ort hätte, an dem Dateien für vom Benutzer installierte Pakete abgelegt werden %USERPROFILE\AppData\Roaming
könnten, wäre die Lösung, HOME = zu erstellen, möglicherweise akzeptabel. Da jedoch einige Anwendungen verwenden %USERPROFILE%
, andere verwenden %USERPROFILE\AppData\Roaming
und andere verwenden, ist %USERPROFILE\AppData\Local
es nur schwierig zu wissen, wo sich Ihre Konfiguration befindet Dateien.
Ich bevorzuge es, alles in meinem Verzeichnis% USERPROFILE% oder $ HOME zu haben.
Eine andere ähnliche Frage war hier:
Wie Kanja antwortete, wird der Pfad zu dieser Datei in der user-init-file
Variablen gespeichert (oder wenn keine Init-Datei vorhanden ist, enthält die Variable den Standardwert für die Erstellung).
Also unabhängig davon , welche der möglichen init Dateinamen , die Sie verwenden, und welches Verzeichnis es in ist, sollten Sie in der Lage sein , Ihre init - Datei zu besuchen mit:
M-: (find-file user-init-file)
RET
Oder zeigen Sie den vollständigen Pfad im Echo-Bereich mit:
M-: (expand-file-name user-init-file)
RET
Unter Emacs 23 und Windows 7 funktioniert es nur, wenn Sie Folgendes festlegen:
HKCU\SOFTWARE\GNU\Emacs\HOME
Ich habe festgestellt, dass Emacs 22 gelegentlich entweder "C: \ Dokumente und Einstellungen \ Benutzername \ Anwendungsdaten \ .emacs" oder nur "C: \ Dokumente und Einstellungen \ Benutzername \ .emacs" auf meinem XP-Computer öffnet. Ich habe keine Erklärung dafür gefunden, warum es gelegentlich seine Meinung ändert.
~ zeigt immer auf das, was die aktuelle Instanz von emacs für HOME hält, aber Kanjas Tipp (Ch v user-init-file) sagt Ihnen immer, was ~ / .emacs tatsächlich zugeordnet ist.
HOME
Umgebungsvariable unterschiedlich, je nachdem , wie ich anfangen runemacs.exe
. Wenn ich es im Explorer starte, HOME
ist es auf gesetzt C:\Documents and Settings\username
, aber wenn ich es über das Startmenü starte, HOME
ist C:\Documents and Settings\username\Application Data
. Seltsam.
Es gibt eine Liste von Verzeichnissen, die auf Ihrer Windows-Version und zusätzlichen Informationen basieren: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
Wenn Emacs unter Windows 8.1 über Windows Explorer , eine Verknüpfung oder über die Cmd- Konsole gestartet wird, wird die Init-Datei C: \ Users \ <USER> \ AppData \ Roaming.emacs verwendet. Wenn ich Emacs von PowerShell aus starte, sucht Emacs im Ordner C: \ Users \ <USER> nach seiner Init-Datei . Die Lösung für dieses Problem bestand darin, die Benutzerumgebungsvariable HOME (Systemsteuerung \ System und Sicherheit \ System-> Erweiterte Systemeinstellungen-> Erweitert-> Umgebungsvariablen) auf C: \ Benutzer \ <BENUTZER> zu setzen . Nach dieser Änderung wird unabhängig davon, wie ich Emacs starte, dieselbe Init-Datei verwendet (siehe die akzeptierte Antwort auf diese Frage ).
Für Windows 7 & Emacs26.3:
Wenn die HOME
Umgebung festgelegt ist, .emacs
sollte sich die Datei in diesem Ordner befinden.
Andernfalls sollte es in sein c:\
.
In beiden Fällen sollte verwendet werden, wenn dies .emacs
nicht der _emacs
Fall ist.
Dies liegt daran, dass wir keine .emacs
Datei gemäß den Windows-Dateinamenregeln erstellen können (aber wir können sie von einer anderen Stelle herunterladen oder kopieren).