Risposte:
Copia e incolla dalle FAQ di Emacs, http://www.gnu.org/software/emacs/windows/ :
Su Windows, il .emacs
file può essere richiamato _emacs
per compatibilità con i file system DOS e FAT in cui i nomi dei file non possono iniziare con un punto. Alcuni utenti preferiscono continuare a usare un nome simile, perché Windows Explorer non può creare un file con un nome che inizia con un punto, anche se il filesystem e la maggior parte degli altri programmi possono gestirlo. In Emacs 22 e versioni successive, può anche essere chiamato il file init .emacs.d/init.el
. Molti degli altri file creati dai pacchetti Lisp sono ora memorizzati anche nella .emacs.d
directory, quindi questo mantiene tutti i file relativi a Emacs in un unico posto.
Tutti i file menzionati sopra dovrebbero andare nella directory HOME. La directory HOME viene determinata seguendo i passaggi seguenti:
C:\.emacs
esiste, usa C:/
. Questo è per compatibilità con le versioni precedenti, poiché le versioni precedenti C:/
erano predefinite se HOME non era impostato.All'interno di Emacs, ~
all'inizio del nome di un file viene espanso nella directory HOME, così puoi sempre trovare il tuo file .emacs con C-x C-f ~/.emacs
.
Ulteriori informazioni sono disponibili in HOME e nelle directory di avvio su MS-Windows .
Dovrebbe essere memorizzato nella variabile user-init-file. Usa C-H v user-init-file RET
per controllare. Puoi anche aprirlo direttamente usandoM-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression
?
Apri il file in questo modo in Emacs per Windows:
C-x C-f ~/.emacs
Maggiori informazioni nel Wiki di Emacs
Sulla mia scatola di Vista è dentro C:\Users\<USER>\AppData\Roaming\
Nota che potrebbe NON essere sufficiente digitare Ctrl-x Ctrl-f ~/.emacs
e creare il file.
È possibile che la tua applicazione Emacs utilizzi un posto diverso per memorizzare il tuo file init, e se è così, la creazione del file ~ / .emacs crea semplicemente un file inutile che la tua applicazione Emacs ignora.
Inoltre, potresti voler fare di più che accedere al file .emacs init, ma potresti voler sapere dove si trova, cioè il suo percorso.
Per arrivare a questo ci sono due metodi:
Modo semplice: digita Ctrl+ H Vuser-init-fileReturn
Modo leggermente più complicato: puoi scoprire dove il tuo sistema sta memorizzando il proprio file .emacs:
c:/Users/user1/AppData/Roaming/.emacs.el
. Questo sito emacswiki.org/emacs/DotEmacsDotD mi ha aiutato a capire che dovevo dare un nome al file, il ~/.emacs.d/init.el
che significava che il file nel file system si trovava in c:\Users\user1\AppData\Roaming\.emacs.d\init.el
(non è affatto quello che mi aspettavo). Preferisco impostare la variabile d'ambiente HOME e posizionare il file nella mia %USERPROFILE%
directory che è la directory HOME logica su Windows (almeno per quanto mi riguarda).
In Windows 7 inserisci il tuo init.el
file C:\Users\user-name\AppData\Roaming\.emacs.d\
, dove nome utente è la tua cartella utente / login.
Fai attenzione in modo che il tuo init.el
file non venga nominato init.el.txt
. Questo è qualcosa che Windows fa se crei il tuo file con un editor come Blocco note.
Devi creare un file di inizializzazione di emacs. Uno non viene creato automaticamente. Ho avuto un problema simile e questa risposta rintraccia quello che ho fatto.
Il mio problema era che il mio ~/.emacs.el
file non veniva caricato. Strano perché questo ha sempre funzionato per me.
Questa domanda / risposta mi ha aiutato, ma ho dovuto inserire il mio file init in %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
perché questo è apparentemente il comportamento predefinito su Windows.
Per risolvere questo problema, ho eseguito quanto segue nel buffer emacs * scratch * .
user-emacs-directory
"~/.emacs.d/"
Quando ho visto user-emacs-directory
era ~/.emacs.d
, ho semplicemente spostato il mio file .emacs.el in %USERPROFILE%\.emacs.d\init.el
. Ma questo ancora non ha funzionato. Ho continuato con expand-file-name
come mostrato di seguito:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Devo amare come funziona Windows. (non) Quindi ho spostato il mio emacs.el
file in %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
e ha funzionato. Il file era ora in fase di lettura. Ma ho ricevuto altri errori perché il mio file di inizializzazione caricava altri file (emacs personali) (in formato ~/myenv/emacs/*.el
.
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
Hum ... Sembra che tutti i miei file ~/myenv/emacs/*.el
avrebbero bisogno di essere spostati affinché funzionasse, ma non volevo farlo. Poi ho capito che poiché la variabile d'ambiente HOME non era impostata, emacs stava eseguendo il suo comportamento predefinito .
SOLUZIONE
Una volta impostata la HOME
variabile di ambiente Windows su, %USERPROFILE%
tutto ha iniziato a funzionare come negli ultimi 25 anni. :-)
Per impostare la variabile d'ambiente HOME, ho digitato WindowsKey + "modifica le variabili d'ambiente per il tuo account" per aprire la finestra di dialogo Variabili d' ambiente e ho inserito HOME=%USERPROFILE%
.
Ora il mio file di inizializzazione di emacs .emacs.el è tornato al suo posto legittimo $HOME/.emacs.el
e non in%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Per essere onesti, se Windows avesse un solo posto in cui mettere i file per i pacchetti installati dall'utente, la soluzione di creare HOME = %USERPROFILE\AppData\Roaming
potrebbe essere accettabile, ma poiché alcune applicazioni lo usano %USERPROFILE%
, alcune lo usano %USERPROFILE\AppData\Roaming
e altre lo usano %USERPROFILE\AppData\Local
rende difficile sapere dove trovare la tua configurazione File.
Preferisco avere tutto nella mia directory% USERPROFILE% o $ HOME.
Un'altra domanda simile era qui:
Come ha risposto kanja, il percorso di questo file è memorizzato nella user-init-file
variabile (o se non esiste alcun file init, la variabile contiene il valore predefinito per dove crearlo).
Quindi, indipendentemente da quale dei possibili nomi di file di inizializzazione stai utilizzando e in quale directory si trova, dovresti essere in grado di visitare il tuo file di inizializzazione con:
M-: (find-file user-init-file)
RET
Oppure visualizza il suo percorso completo nell'area dell'eco con:
M-: (expand-file-name user-init-file)
RET
Su Emacs 23 e Windows 7 funziona solo se imposti:
HKCU\SOFTWARE\GNU\Emacs\HOME
Ho scoperto che Emacs 22 occasionalmente aprirà "C: \ Documents and Settings \ username \ Application Data \ .emacs", o semplicemente "C: \ Documents and Settings \ nomeutente \ .emacs" sulla mia macchina XP. Non ho trovato una spiegazione del motivo per cui a volte cambia idea.
~ punterà sempre a qualunque cosa l'istanza corrente di emacs pensi sia HOME, ma il suggerimento di kanja (Ch v user-init-file) ti dirà sempre a cosa mappa effettivamente ~ / .emacs.
HOME
variabile di ambiente in modo diverso, a seconda di come avvio runemacs.exe
. Se lo avvio da Explorer, HOME
è impostato su C:\Documents and Settings\username
, ma se lo avvio dal menu Start, HOME
è C:\Documents and Settings\username\Application Data
. Strano.
Su Windows XP è:
C:\Documents and Settings\yourusernamehere\Application Data\
È disponibile un elenco di directory basato sulla versione di Windows e informazioni aggiuntive: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
Su Windows 8.1, se Emacs viene avviato da Windows Explorer , un collegamento o dalla console cmd utilizza il file di inizializzazione C: \ Users \ <USER> \ AppData \ Roaming.emacs . Quando avvio Emacs da PowerShell, Emacs cerca il suo file init nella cartella C: \ Users \ <USER> . La soluzione a questo problema consisteva nell'impostare la variabile di ambiente utente HOME (Pannello di controllo \ Sistema e sicurezza \ Sistema-> Impostazioni di sistema avanzate-> Avanzate-> Variabili di ambiente) su C: \ Users \ <USER> . Dopo questa modifica, indipendentemente da come avvio Emacs, utilizza lo stesso file di inizializzazione (vedere la risposta accettata a questa domanda )
Per Windows7 ed Emacs26.3 :
se l' HOME
ambiente è impostato, il .emacs
file dovrebbe essere in quella cartella.
altrimenti, dovrebbe essere in c:\
.
In entrambi i casi, se .emacs
non c'è, _emacs
dovrebbe essere usato.
Questo perché non possiamo creare .emacs
file in base alle regole di denominazione dei file di Windows (ma possiamo scaricarlo o copiarlo da qualche altra parte).