Wie ändert man das Standardverzeichnis in Emacs?

5859
Kim

Wenn ich benutze

M-x gdb 

Wenn viele Quelldateien in Emacs geöffnet sind, unterscheidet sich das Standardverzeichnis in Emacs oft von dem Verzeichnis meiner Arbeitskopie, um die Datei auszuführen, die ich ausführen möchte. Es ist immer schmerzhaft, den korrekten vollständigen Pfad der Datei einzugeben, die ich debuggen möchte. Wie könnte ich dieses Problem lösen? Gibt es eine Möglichkeit, das aktuelle Standardverzeichnis in die Arbeitskopie meines Projekts zu ändern?

3

4 Antworten auf die Frage

12
Ghufran

Ich bearbeitete meine .emacs-Datei mit

(setq default-directory "~/your/path") 

stellte jedoch fest, dass bei jedem Neustart von emacs immer das 'ursprüngliche' Verzeichnis verwendet wurde.

Es stellte sich heraus, dass das Problem darin bestand, dass ich auf dem Standard-Startbildschirm (GNU emacs 23) gelassen wurde. Ich denke, dass der Standard-Begrüßungsbildschirm mit den Links zum Lernprogramm usw. das Standardverzeichnis wieder in das Verzeichnis ändert, in dem sich die Begrüßungsbildschirmdateien befinden. Ich klickte auf den Link "Startup anpassen" und schaltete den Begrüßungsbildschirm aus. Seitdem, wenn ich emacs öffne, wird standardmäßig der Scratch-Puffer verwendet, aber das Standardverzeichnis bei der Verwendung C-x C-fist das Verzeichnis, das ich in der .emacsDatei festgelegt habe.

Hoffe das hilft jemand da draußen, es hat mich verrückt gemacht!

`` `(cd (getenv" HOME "))` `anstelle von` `(setq ...)` `` funktioniert in meinem Fall (Windows 10). Siehe http://emacs.stackexchange.com/questions/18723/setting-default-directory-does-not-change-find-file-directory/18724#18724?newreg=5f82fb84474e4e1ca2ba5dfb9ccd1ee3 Hartmut P. vor 7 Jahren 2
3
Brian Postow

Das aktuelle Arbeitsverzeichnis ist immer der Ort des aktuellen Puffers.

Eine Option ist, in den Shell-Modus zu wechseln und dann in das bevorzugte Verzeichnis zu wechseln. Alles, was Sie öffnen oder von diesem Shell-Puffer aus ausführen, wird standardmäßig in diesem Verzeichnis gespeichert.

Es scheint, als würde sich das Verzeichnis zufällig ändern, wenn ich die GDB in Emacs verwende, und ich kann nicht das richtige Verzeichnis erhalten. Kim vor 13 Jahren 0
Ändert sich innerhalb des Puffers? als würden Sie eine Datei laden, sie befindet sich im Verzeichnis X, Sie führen einige Fehlerbehebungen durch, Sie laden eine Datei, und es befindet sich in einem anderen Verzeichnis Y? Bringt das Programm selbst CD ein? Brian Postow vor 13 Jahren 0
3
Rémi

Wenn Sie sich in einem Puffer befinden, der nicht an eine Datei angehängt ist (z. B. *scratch*gnus 'buffer ...), können Sie M-x cddas aktuelle Verzeichnis ändern. Ein einfaches Öffnen des Verzeichnisses führt auch dazu.

In gdb können Sie einfach ajso eingeben cd /where/i/want/to/go

1
bigstone1998

Normalerweise ist das aktuelle Arbeitsverzeichnis immer der Ort des aktuellen Puffers. Und gdb verwendet dieses Verzeichnis automatisch.

Aber ich hatte in der Tat verzweifelte Erfahrung, dass Mx gdb immer in das ~ -Verzeichnis einging und sich beschwerte, dass die Zieldatei nicht gefunden werden konnte.

Schließlich stellte ich fest, dass dies darauf zurückzuführen ist, dass der Puffer unbeabsichtigt geändert wurde und möglicherweise gesichert wird. Das wurde mir klar, als ich diesen Puffer getötet und wieder geöffnet hatte. Nach dem Kill und dem erneuten Öffnen des Puffers funktioniert Mx gdb wieder einwandfrei.

Wenn dies der Fall ist, beenden Sie emacs und starten Sie ihn erneut, um das Problem zu beheben. Versuchen Sie einfach, den Puffer zu beenden, und öffnen Sie die Datei erneut.