Risposte:
Emacs ha diversi punti in cui cerca i file init, come documentato nel manuale . Se vuoi personalizzare Emacs devi iniziare con uno di quei file.
Un approccio comune è usare il file init.el
nel tuo user-emacs-directory
, invece di avere un .emacs
nella tua directory HOME.
L' user-emacs-directory
impostazione predefinita è ~/.emacs.d
, quindi è ancora relativa alla tua HOME, ma il vantaggio di questo approccio è che puoi tenere tutto in relazione alla tua configurazione Emacs in un unico posto. Tale directory potrebbe essere sotto controllo di versione, backup, condivisione su più macchine, ecc. È possibile utilizzare un collegamento simbolico ( mklink
su Windows) per conservare i file in un'altra posizione.
Ad esempio, è abbastanza comune vedere gente mantenere la propria configurazione di Emacs su Github. È possibile trovare un sacco di esempi di questo per la ricerca Github per i progetti elisp con file init.el .
user-emacs-directory
Su ogni installazione di Windows su cui utilizzo Emacs, ho il seguente codice in un .emacs
file nella posizione elencata:
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
In questo modo posso mettere il mio .emacs
e .emacs.d/
dove voglio.
Il tuo file .emacs va nella tua HOME
directory. Dal manuale di Emacs:
L'equivalente Windows di HOME è la directory dei dati dell'applicazione specifica dell'utente. La posizione effettiva dipende dalla versione di Windows ...
È possibile ignorare questo valore predefinito di HOME impostando esplicitamente la variabile di ambiente HOME in modo che punti a qualsiasi directory sul proprio sistema. HOME può essere impostato dal prompt della shell dei comandi o dalla finestra di dialogo "Proprietà" di "Risorse del computer". HOME può anche essere impostato nel registro di sistema, consultare Registro MS-Windows.
HOME
directory in qualcosa di completamente diverso. Da qui il motivo per cui chiamo quel cambiamento un hack. Impostarlo sul valore appropriato va ovviamente bene.
Tu dici:
So come impostare la directory home, tuttavia per motivi di controllo della versione voglio essere in grado di impostare emacs per leggere da una directory diversa (in modo da poter avere una directory specifica per emacs) .
Il tuo file init va nella tua home directory, che puoi mettere ovunque. Apparentemente vuoi avere una directory diversa per le cose caricate da Emacs. Non è un problema. Metti il tuo file init nella tua home directory, e fai in modo che quel file aggiunga un'altra directory al valore della variabile load-path
e quindi richieda qualunque altra libreria Emacs che vuoi usare. Metti quelle librerie in quell'altra directory.
IOW, il tuo file init non deve contenere altro oltre all'impostazione della directory in cui conservi le librerie Emacs che desideri caricare.
Per motivi di completezza, fornisco un link a:
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
Il che dice che è possibile impostare un HOME
valore nel percorso del registro:
HKCU\SOFTWARE\GNU\Emacs\HOME
Ma questo valore viene sovrascritto dalla variabile d'ambiente HOME
.
Pensa di poter mettere (setq user-init-file "C:/path/to/.emacs")
e altre righe proposte da @ryan in site-start.el
Il tuo sito potrebbe anche avere un file di avvio del sito; questo è chiamato site-start.el, se esiste. Come default.el, Emacs trova questo file tramite il percorso di ricerca standard per le librerie Lisp. Emacs carica questa libreria prima che carichi il tuo file init.
site-start.el
caricare la tuainit.el
e non hai più bisogno a.emacs
. In questo esempio, non è necessario armeggiare con la directory home (a meno che qualcun altro sul computer non stia inserendo roba che influisca su ciò che fai). In altre parole, può essere vuoto e non è mai necessario toccarlo.