2008-09-13 13 views
94

Ich bin ziemlich neu in Emacs und ich habe versucht, herauszufinden, wie Sie den Standardordner für C-x C-f beim Start ändern. Zum Beispiel, wenn ich zuerst Emacs lade und C-x C-f schlägt, ist sein Standardordner C:\emacs\emacs-21.3\bin, aber ich würde es lieber der Desktop sein. Ich glaube, es gibt eine Möglichkeit, die Datei .emacs dafür anzupassen, aber ich bin mir immer noch nicht sicher, was das ist.Ändern des Standard-Ordners in Emacs

Update: Es gibt drei Lösungen für das Problem, die ich gefunden habe zu arbeiten, aber ich glaube, Lösung 3 ist nur Windows.

  • Lösung 1: In (cd "C:/Users/Name/Desktop") zur .emacs Datei

  • Lösung 2: In (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/") zur .emacs Datei

  • Lösung 3: Recht der Emacs Abkürzung klicken, schlugen Eigenschaften und die Änderung Beginnen Sie im Feld zum gewünschten Verzeichnis.

Antwort

70

Sie nicht so sagtest, aber es klingt wie Sie Emacs fängst von eine Windows-Verknüpfung.

Das Verzeichnis, das Sie mit c-x c-f sehen, ist das cwd, in Emacs-Begriffen default-directory (eine Variable).

Wenn Sie Emacs mit einer MS Windows-Verknüpfung starten, ist default-directory zunächst der Ordner (Verzeichnis), der im Feld "Start In" der Verknüpfungseigenschaften angegeben ist. Klicken Sie mit der rechten Maustaste auf die Verknüpfung, wählen Sie Properties, und geben Sie den Pfad zu Ihrem Desktop in das Feld Start In ein. Wenn Sie Emacs über die Befehlszeile verwenden, wird default-directory als das Verzeichnis gestartet, in dem Sie Emacs (das cwd) gestartet haben.

Dieser Ansatz ist besser als die Bearbeitung Ihrer .emacs-Datei, da Sie mehr als eine Verknüpfung mit mehr als einem Anfangsverzeichnis haben können und Sie das normale Befehlszeilenverhalten von Emacs haben, wenn Sie es benötigen.

CWD = current working directory = PWD = present working directory. Es macht viel mehr Sinn in der Befehlszeile als in einer GUI.

+0

Ja, ich benutze Emacs auf Windows. – Anton

+4

Dies funktioniert auch auf MacOS. Ich habe dies zu meinem .emacs hinzugefügt: '(setq default-Verzeichnis (concat (getenv" HOME ")"/")) – vy32

+0

Und wenn Sie Emacs in Dired dieses Verzeichnis starten möchten, dann zusätzlich zu dem Einfügen in die 'Start In'-Feld, füge es am Ende des 'Ziel'-Felds nach einem oder mehreren Leerzeichen ein und schließe es zwischen doppelte Anführungszeichen (' "'). ZB: '" d: \ path \ to \ the \ folder " – Drew

23

Ich habe

setzen
(cd "c:/cvsroot/") 

in meiner .emacs und es hat den Job

4

Da Sie auf Windows sind, können Sie es mit einer Verknüpfung tun.

Erstellen Sie eine Verknüpfung zu C:\emacs\emacs-21.3\bin\runemacs.exe. Bearbeiten Sie die Eigenschaften der Verknüpfung und ändern Sie den Wert Start In: so, wie Sie es für das Standardverzeichnis festlegen möchten.

6

Der Standardordner ist eigentlich derselbe wie der aktuelle Arbeitsordner für den Puffer, d.h.Es kann für jede Datei, mit der Sie arbeiten, unterschiedlich sein. Angenommen, die Datei, mit der Sie arbeiten, befindet sich in C:\dir_a, dann ist das Arbeitsverzeichnis für diesen Puffer standardmäßig C:\dir_a. Sie können dies mit M-x cd ändern und geben Sie stattdessen das Verzeichnis ein, das Sie als Standard verwenden möchten (und standardmäßig meine ich das, das angezeigt wird, wenn Sie C-x C-f tun). Wenn Sie Emacs starten, ohne eine Datei zu öffnen, wird der Puffer *scratch* geöffnet. Wenn Sie Emacs über eine Windows-Verknüpfung gestartet haben, entspricht das Arbeitsverzeichnis dem in den Verknüpfungseigenschaften angegebenen Arbeitsverzeichnis. Wenn Sie es über die Befehlszeile gestartet haben, ist es das Verzeichnis, in dem Sie es gestartet haben. Sie können dieses Standardverzeichnis immer noch mit M-x cd ändern, auch aus dem Puffer *scratch*.

Schließlich können Sie tun, wie Vadim und

(cd "c:/dir_a/") 

in Ihrer .emacs Datei setzen vermuten lässt, dass die Standard-Verzeichnis zu machen, egal wie Sie Emacs starten.

42

ich denke, die Linie, die Sie zu Ihrem .emacs hinzufügen müssen ist

(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/") 

Emacs wird in Ihrem Desktop auf diese Weise beginnen, es sei denn, Sie eine Datei geöffnet haben. Es startet normalerweise im selben Verzeichnis wie die Datei in Ihrem aktuellen Puffer.

+2

Das funktioniert gut unter Linux. – Matt

3

load-path ist nicht die Variable, die Sie festlegen müssen. Das teilt emacs mit, wo beim Laden von elisp-Bibliotheken nachzusehen ist.

+0

Yep ich erkannte, dass dank Bart, als er mir in einem Kommentar – Anton

4

Ich benutze Emacs 22.2.1 unter Windows XP und wurde durch die Antworten oben geholfen, um die Antwort im Minibuffer zu erhalten Ich möchte den Befehl C-x C-f. Anfangs bekam ich "Finde Datei: C: \ Programme \ emacs \ bin /" wie Anton. Ich habe HOME auf "C: \ Dokumente und Einstellungen \ USER NAME \ My Documents" eingestellt. Die Antwort auf C-x C-f möchte ich in der Minipuffer ist "Datei suchen: ~ /". Durch Hinzufügen (Standardverzeichnis "C:/Dokumente und Einstellungen/Benutzername/Eigene Dateien") zu meiner .emacs-Datei konnte ich die Antwort "Datei suchen: C: \ Dokumente und Einstellungen \ Benutzername \ Meine Dokumente/"das ist funktionell das Gleiche wie" Datei suchen: ~/". Allerdings bemerkte ich einen weiteren Punkt. "Customize Emacs" unter "Optionen" erlaubte mir, den Startbildschirm zu sperren. Jetzt, wenn ich Emacs öffne, gehe ich sofort zum Scratch-Buffer. Wenn ich C-x C-f in den Scratch-Buffer eintippe, bekomme ich genau die Antwort, die ich möchte.

+0

+1 für die Erwähnung der Sperrung der Start-up-Bildschirm sagte. Ich fand dies Schlüssel auf meinem Windows 10-System. Ich hat meine Antwort auf die verwandte Frage http://StackOverflow.com/a/38435697/823636 geschrieben –

1

Ich habe zu meiner Verknüpfung (in Gnome, Linux) einen Pramater hinzugefügt, der ein leerer Dummy-Dateiname ist, und ich spezifiziere das Verzeichnis. Da meine Emacs standardmäßig auf „home“, sage ich einfach:

/Desktop/blank_file

und öffnet eine Datei „blank_file“ genannt

, die auch das aktuelle Arbeitsverzeichnis auf die für die Emacs-Sitzung bewegt Desktop.

Wenn ich zufällig Sachen in "blank_file" stecke, dann speichere es natürlich, ich habe das Zeug gerettet. Was ein Ärgernis sein könnte oder es könnte eine gute Sache sein, abhängig!

24

Sie können den Befehl 'cd' emacs eingeben. (M-x cd), um den Standardordner als einmaligen Eintrag zu ändern.

1

Um Standardverzeichnis zu DESKTOP in Dired und Shell zu ändern, setzen Sie dies in Ihrem ~ /.emacs:

;; Dies funktioniert für Windows XP.
(setq default-Verzeichnis (concat "C: \ Dokumente und Einstellungen \ my_account \ DESKTOP \"))

0

In Windows 8 funktioniert es eine Verknüpfung auf dem Desktop erstellen und ändern Sie die Eigenschaft 'Start in:' für die Verknüpfung.

Jetzt lief ich das Programm emacs-23.3 \ bin \ addpm.exe wie empfohlen, und der Windows-8-Bildschirm (diese schreckliche Erfindung von Microsoft) erschien ein Icon-Link zu Emacs. Aber da muss man wieder die Eigenschaft "Start In" ändern. (Es unterscheidet sich von dem auf dem Desktop). Klicken Sie einfach mit der rechten Maustaste, wählen Sie in der unteren Leiste 'Dateispeicherort öffnen' (oder ähnlich, ich habe es in meiner Sprache gemacht), und Sie werden in den Ordner mit einer neuen Verknüpfung gebracht, in der Sie auch ändern können (müssen) die Eigenschaft 'Start In:'.

Ein wenig beteiligt, aber in der Tat sehr einfach.

0

Da das nervigste ist Sie Fenster Emacs mit Dump in system32, wenn Sie nur die Verknüpfung verwenden, sondern wollen, dass jeder andere Fall zu arbeiten, nur ein bisschen elisp verwenden ...

(wenn (string < "C: \ WINDOWS \ system32" default-Verzeichnis) (setq default-Verzeichnis "~ /"))

Es wird also nur auf Ihr Home-Verzeichnis zurückgesetzt, wenn Sie im System landen. Der einzige Nachteil ist, wenn Sie wirklich emacs in system32 starten möchten ...