Wie richte ich eine .emacs-Initialisierungsdatei ein?

Wie richte ich eine .emacs-Initialisierungsdatei ein?

Ich verwende Linux Fedora 13 (Constantine) und Emacs 23.1.1. Ich versuche, eine .emacs-Datei zur Initialisierung einzurichten, indem ich Emacs selbst verwende, um eine .emacs-Datei in meinem Home-Verzeichnis zu bearbeiten und zu speichern. Obwohl die Datei vorhanden ist, scheint Emacs sie jedoch nicht zu erkennen. Was mache ich möglicherweise falsch und gibt es einen einfachen Text für .emacs, der mir anzeigt, ob sie verwendet wird, und der beim Start von Emacs eine Meldung anzeigt?

Antwort1

DerInit-Dateiist traditionell ~/.emacs, aber moderne Versionen betrachten auchandere Namen. Es kann Verwirrung darüber geben, was Ihr Home-Verzeichnis ist (auf Unix-Plattformen sollte es das jedoch nicht geben; dies ist hauptsächlich ein Problem unter Windows); das Öffnen ~/.emacsin Emacs ist immer richtig. Nachdem Emacs gestartet ist, prüfen Sie, ob Nachrichten im *Messages*Puffer vorhanden sind. Stellen Sie sicher, dass Sie Emacs nicht mit Optionen wie diesen ausführen, die -qihm veranlassen würden, Ihre Init-Datei zu umgehen.

Antwort2

Wahrscheinlich liegt ein Fehler in Ihrer .emacs-Datei in Ihrem Home-Verzeichnis vor. Öffnen Sie Ihre .emacs-Datei und führen Sie dann Mx eval-buffer RET aus, um zu prüfen, ob Sie Fehler erhalten, die Sie möglicherweise übersehen haben. Emacs führt die .emacs-Datei in jedem Fall aus.

Antwort3

Wenn Sie am Anfang der .emacs-Datei etwas Unzulässiges einfügen und Emacs es tatsächlich liest, würde ich erwarten, dass es beim Start fehlschlägt. Wenn ich beispielsweise eine Zeile mit folgendem Inhalt einfüge:

Hello William

in der ersten Zeile meiner .emacs gibt mir das Programm die Warnung

Symbol's value as variable is void: Hello

und der Rest der Datei kann nicht geladen werden.

Sie könnten (oder das Fedora-Äquivalent, vielleicht truss, dtruss usw.) verwenden strace, um die Systemaufrufe zu verfolgen und zu suchen, wo Emacs versucht, .emacs in der Ausgabe zu öffnen. Zum Beispiel unter der Bash-Shell:

strace emacs 2> strace-ouput.txt 

verwandte Informationen