Cambiare la cartella predefinita in Emacs


107

Sono abbastanza nuovo in Emacs e ho cercato di capire come cambiare la cartella predefinita C-x C-fall'avvio. Ad esempio, quando carico per la prima volta Emacs e colpisco la C-x C-fsua cartella predefinita è C:\emacs\emacs-21.3\bin, ma preferirei che fosse il desktop. Credo che ci sia un modo per personalizzare il .emacsfile per farlo, ma non sono ancora sicuro di cosa si tratti.

Aggiornamento: ci sono tre soluzioni al problema che ho riscontrato funzionare, tuttavia credo che la soluzione 3 sia solo Windows.

  • Soluzione 1: aggiungi (cd "C:/Users/Name/Desktop")al .emacsfile

  • Soluzione 2: aggiungi (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")al .emacsfile

  • Soluzione 3: fare clic con il tasto destro del mouse sulla scorciatoia Emacs, selezionare Proprietà e modificare il campo Inizio in nella directory desiderata.

Risposte:


84

Non l'hai detto, ma sembra che tu stia avviando Emacs da una scorciatoia di Windows.

La directory che vedi con cx cf è la cwd, in termini di Emacs, la default-directory(una variabile).

Quando avvii Emacs usando un collegamento MS Windows, default-directoryinizialmente è la cartella (directory) specificata nel campo "Avvia in" delle proprietà del collegamento. Fare clic con il tasto destro del mouse sul collegamento, selezionare Propertiese digitare il percorso del desktop nel Start Incampo.

Se stai usando Emacs dalla riga di comando, default-directoryinizia come la directory in cui hai avviato Emacs (il cwd).

Questo approccio è migliore della modifica del file .emacs, poiché ti consentirà di avere più di una scorciatoia con più di una directory di partenza e ti consente di avere il normale comportamento da riga di comando di Emacs se ne hai bisogno.

CWD = directory di lavoro corrente = PWD = directory di lavoro presente . Ha molto più senso sulla riga di comando che in una GUI.


Sì, sto usando emacs su Windows.
Anton

5
Funziona anche su MacOS. Ho aggiunto questo al mio .emacs: (setq default-directory (concat (getenv "HOME") "/"))
vy32

E se vuoi che Emacs inizi in Dired di quella directory allora, oltre a metterlo nel Start Incampo, aggiungilo alla fine del Targetcampo, dopo uno o più spazi, racchiudendolo tra virgolette doppie ( "). Ad esempio: "d:\path\to\the\folder".
Drew

49

Penso che la riga che devi aggiungere al tuo .emacs sia

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

Emacs si avvierà sul desktop in questo modo, a meno che tu non abbia un file aperto. In caso contrario, inizierà nella stessa directory del file nel buffer corrente.


26

Puoi digitare il comando 'cd' emacs. (Mx cd) per modificare la cartella predefinita come una tantum.


24

Ho messo

(cd "c:/cvsroot/")

nel mio .emacs e ha funzionato


6

La cartella predefinita è in realtà la stessa della cartella di lavoro corrente per il buffer, cioè può essere diversa per ogni file con cui lavori. Supponiamo che il file su cui stai lavorando si trovi C:\dir_a, quindi la directory di lavoro per quel buffer sarà per impostazione predefinita C:\dir_a. Puoi cambiarlo con M-x cde digitare la directory che desideri sia quella predefinita (e per impostazione predefinita intendo quella che verrà visualizzata quando lo fai C-x C-f).

Se avvii emacs senza aprire un file, ti ritroverai con il *scratch*buffer aperto. Se hai avviato emacs da un collegamento di Windows, la directory di lavoro sarà la stessa specificata nelle proprietà del collegamento. Se è stato avviato dalla riga di comando, sarà la directory da cui è stato avviato. È ancora possibile modificare questa directory predefinita con M-x cd, anche dal *scratch*buffer.

Infine, puoi fare come suggerisce e mettere Vadim

(cd "c:/dir_a/")

nel tuo .emacsfile, per rendere quella directory quella predefinita indipendentemente da come avvii emacs.


4

Dato che sei su Windows puoi farlo con un collegamento.

Crea un collegamento a C:\emacs\emacs-21.3\bin\runemacs.exe. Modifica le proprietà della scorciatoia e cambia il valore di Start In:come vuoi che sia la tua directory predefinita.


4

Sto usando emacs 22.2.1 sotto Windows XP e sono stato aiutato dalle risposte sopra per ottenere la risposta nel minibuffer che voglio al comando Cx Cf. Inizialmente stavo ottenendo "Trova file: C: \ Programmi \ emacs \ bin /" come Anton. Ho impostato HOME su "C: \ Documents and settings \ USER NAME \ My Documents". La risposta a Cx Cf che voglio nel minibuffer è "Trova file: ~ /". Aggiungendo (setq default-directory "C: / Documents and Settings / USER NAME / My Documents") al mio file .emacs sono stato in grado di ottenere la risposta "Find file: C: \ Documents and settings \ USER NAME \ My Documents / "che è funzionalmente uguale a" Trova file: ~ / ". Tuttavia, ho notato un ulteriore punto. "Personalizza Emacs" in "Opzioni" mi ha permesso di inibire la schermata di avvio. Ora quando apro emacs vado immediatamente allo scratch buffer. Quando digito Cx Cf nello scratch buffer ottengo la risposta esatta che desidero.


+1 per aver menzionato l'inibizione della schermata di avvio. Ho scoperto che questa è la chiave del mio sistema Windows 10. Ho inviato la mia risposta sulla questione relativa stackoverflow.com/a/38435697/823636
Rob_before_edits

1

Ho aggiunto al mio collegamento (in Gnome, Linux) un pramater che è un nome di file fittizio vuoto e ho specificato la directory. Dato che il mio emacs è impostato su "home", dico semplicemente:

/ Desktop / blank_file

e questo apre un file chiamato "blank_file"

Questo sposta anche la directory di lavoro corrente per quella sessione di emacs sul desktop.

Se mi capita di mettere delle cose in "blank_file", allora salvalo, ovviamente, le ho salvate. Il che potrebbe essere un fastidio o potrebbe essere una buona cosa, a seconda!


1

Per cambiare la directory predefinita in DESKTOP in Dired e la shell mettilo nel tuo ~ / .emacs:

;; Questo funziona per Windows XP.
(setq directory predefinita (concat "C: \ Documents and Settings \ MY_ACCOUNT \ DESKTOP \"))


0

In Windows 8, funziona per creare un collegamento sul desktop e modificare la proprietà "Avvia in:" per il collegamento.

Ora, ho eseguito il programma emacs-23.3 \ bin \ addpm.exe come consigliato, e lo schermo di Windows-8 (quell'orrenda invenzione di Microsoft) è apparso un collegamento icona a Emacs. Ma qui devi cambiare di nuovo la proprietà 'Inizia in'. (È diverso da quello sul desktop). Basta fare clic con il tasto destro, scegliere nella barra inferiore 'Apri il percorso del file' (o simile, l'ho fatto nella mia lingua), e verrai portato alla cartella con un nuovo collegamento, in cui puoi (devi) anche cambiare il proprietà 'Inizia in:'.

Un po 'complicato, ma in realtà molto facile.


0

Poiché la cosa più fastidiosa è avere Windows Emacs che ti scarica in system32 quando stai solo usando il collegamento, ma vuoi che ogni altro caso funzioni, usa un po 'di elisp ...

(quando (stringa <"C: \ WINDOWS \ system32" directory predefinita) (setq directory predefinita "~ /"))

Quindi verrà impostato automaticamente sulla tua directory home solo quando finisci nel sistema. L'unico inconveniente è se vuoi davvero avviare emacs in system32 ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.