J'ai essayé de rechercher le fichier .emacs pour mon installation Windows pour Emacs, mais je ne l'ai pas trouvé. Est-ce qu'il a le même nom de fichier sous Windows que sous Unix?
Dois-je le créer moi-même? Si oui, dans quel répertoire spécifique va-t-il?
Copié et collé à partir de la FAQ Emacs, http://www.gnu.org/software/emacs/windows/ :
Sous Windows, le fichier .emacs
peut être appelé _emacs
pour assurer la compatibilité ascendante avec les systèmes de fichiers DOS et FAT où les noms de fichiers ne peuvent pas commencer par un point. Certains utilisateurs préfèrent continuer à utiliser un tel nom, car l'Explorateur Windows ne peut pas créer de fichier dont le nom commence par un point, même si le système de fichiers et la plupart des autres programmes peuvent le gérer. Dans Emacs 22 et versions ultérieures, le fichier init peut également s'appeler .emacs.d/init.el
. La plupart des autres fichiers créés par les packages LISP sont désormais également stockés dans le répertoire .emacs.d
, de sorte que tous vos fichiers liés à Emacs sont conservés au même endroit.
Tous les fichiers mentionnés ci-dessus doivent aller dans votre répertoire HOME. Le répertoire HOME est déterminé en suivant les étapes ci-dessous:
C:\.emacs
existe, utilisez C:/
. Ceci est destiné à la compatibilité ascendante, car les versions précédentes étaient définies par défaut sur C:/
si HOME n'était pas défini.Dans Emacs, ~
au début d'un nom de fichier est étendu à votre répertoire HOME, vous pouvez donc toujours trouver votre fichier .emacs avec C-x C-f ~/.emacs
.
Des informations complémentaires sont disponibles sur HOME et les répertoires de démarrage sous MS-Windows .
Il devrait être stocké dans la variable user-init-file. Utilisez C-H v user-init-file RET
pour vérifier. Vous pouvez également l'ouvrir directement en utilisant M-x eval-expression RET (find-file user-init-file) RET
Ouvrez le fichier comme ceci dans Emacs pour Windows:
C-x C-f ~/.emacs
Plus d'informations dans le Emacs Wiki
Sur ma boîte Vista c'est en C:\Users\<USER>\AppData\Roaming\
Notez qu'il ne suffit PAS de taper Ctrl-x Ctrl-f ~/.emacs
et de créer le fichier.
Il se peut que votre application Emacs utilise un emplacement différent pour stocker votre fichier init. Si c'est le cas, créer le fichier ~/.emacs crée simplement un fichier inutile que votre application Emacs ignore.
De plus, vous voudrez peut-être faire plus que simplement accès le fichier .emacs init, mais vous voudrez peut-être savoir où il se trouve, c’est-à-dire son chemin.
Pour y arriver, il y a deux méthodes:
Moyen facile: tapez Ctrl + HV utilisateur-init-file Return
Façon légèrement plus délicate: Vous pouvez savoir où votre système stocke son propre fichier .emacs en:
Dans Windows 7, placez votre fichier init.el
dans C:\Users\user-name\AppData\Roaming\.emacs.d\
, où nom_utilisateur est votre dossier utilisateur/connexion.
Faites attention à ce que votre fichier init.el
ne soit pas nommé init.el.txt
. C’est quelque chose que Windows fait si vous créez votre fichier avec un éditeur tel que Notepad.
Sur les versions d’Emacs sous Windows supérieures à 22, il semble s’être déplacé vers
~/.emacs.d/init.el
, ~
étant la valeur de votre variable d'environnement HOME (voir Panneau de configuration → Système → Avancé → Variables d'environnement ).
Le fichier lui-même peut ne pas exister. Dans ce cas, il suffit de le créer.
Comme kanja a répondu, le chemin d'accès à ce fichier est stocké dans la variable user-init-file
(ou, en l'absence de fichier init, la variable contient la valeur par défaut de l'endroit où le créer).
Donc peu importe lequel des noms de fichiers init possibles que vous utilisez et dans quel répertoire il se trouve, vous devriez pouvoir visiter votre fichier init avec:
M-: (find-file user-init-file)
RET
Ou affichez son chemin complet dans la zone d'écho avec:
M-: (expand-file-name user-init-file)
RET
Sous Emacs 23 et Windows 7, cela ne fonctionne que si vous définissez:
HKCU\SOFTWARE\GNU\Emacs\HOME
Vous devez créer un fichier d'initialisation emacs. On n'est pas automatiquement créé ... J'ai eu un problème similaire et cette réponse retrace ce que j'ai fait.
Mon problème était que mon fichier ~/.emacs.el
ne se chargeait pas. Étrange parce que cela a toujours fonctionné pour moi.
Cette question/réponse m'a aidé mais j'ai dû mettre mon fichier init dans le %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
car il s'agit apparemment du comportement par défaut sous Windows.
Pour résoudre ce problème, j’ai exécuté ce qui suit dans le tampon emacs * scratch *.
user-emacs-directory
"~/.emacs.d/"
Quand j'ai vu que user-emacs-directory
était ~/.emacs.d
, j'ai simplement déplacé mon fichier .emacs.el vers %USERPROFILE%\.emacs.d\init.el
. Mais cela ne fonctionnait toujours pas . J'ai continué avec expand-file-name
comme indiqué ci-dessous:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
Il faut aimer le fonctionnement de Windows. (pas) J'ai donc déplacé mon fichier emacs.el
vers le %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
et cela a fonctionné. Le fichier était en train d'être lu. Mais j'ai eu d'autres erreurs parce que mon fichier d'initialisation a chargé d'autres fichiers (personnels emacs) (dans ~/myenv/emacs/*.el
.
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
Hum ... On dirait que tous mes fichiers ~/myenv/emacs/*.el
doivent être déplacés pour que cela fonctionne, mais je ne voulais pas le faire. Ensuite, j'ai réalisé que, la variable d'environnement HOME n'étant pas définie, emacs effectuait son comportement par défaut.
SOLUTION
Une fois que j'ai défini ma variable d'environnement HOME
de windows sur %USERPROFILE%
, tout a commencé à fonctionner comme il le fait depuis 25 ans. :-)
Pour définir la variable d’environnement HOME, j’ai tapé WindowsKey + "modifier les variables d’environnement de votre compte" pour ouvrir la boîte de dialogue Variables d’environnement et saisi HOME=%USERPROFILE%
.
Maintenant, mon fichier d’initialisation emacs .emacs.el est de nouveau à sa place légitime $HOME/.emacs.el
et non dans %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
Pour être juste, si Windows n’avait qu’un seul emplacement pour placer les fichiers dans les packages installés par l’utilisateur, la solution consistant à créer HOME = %USERPROFILE\AppData\Roaming
pourrait être acceptable, mais certaines applications utilisant %USERPROFILE%
, certaines utilisant %USERPROFILE\AppData\Roaming
et d’autres utilisant %USERPROFILE\AppData\Local
, il est difficile de savoir où pour trouver vos fichiers de configuration.
Je préfère avoir tout dans mon répertoire% USERPROFILE% ou $ HOME.
Une autre question similaire était ici:
Sous Windows XP, c'est:
C:\Documents and Settings\yourusernamehere\Application Data\
J'ai constaté qu'Emacs 22 ouvrait occasionnellement soit "C:\Documents and Settings\nom d'utilisateur\Application Data\.emacs", soit simplement "C:\Documents and Settings\nom d'utilisateur\.emacs" sur mon XP. machine. Je n'ai pas trouvé d'explication pourquoi cela change parfois d'esprit.
~ indiquera toujours ce que l'instance actuelle d'emacs considère comme étant HOME, mais le conseil de kanja (C-h v user-init-file) vous indiquera toujours ce que ~/.emacs mappe réellement.
Il existe une liste de répertoires basés sur votre version Windows et des informations supplémentaires: http://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
Sous Windows 8.1, si Emacs est lancé à partir de la console Explorateur Windows, d'un raccourci ou de la console cmd, il utilise C:\Utilisateurs\<UTILISATEUR>\AppData\Roaming.emacs fichier init. Lorsque je lance Emacs à partir de PowerShell, Emacs recherche son fichier init dans le dossier C:\Users\<USER>. La solution à ce problème consistait à définir la variable d'environnement utilisateur HOME (Panneau de configuration\Système et sécurité\Système-> Paramètres système avancés-> Options avancées-> Variables d'environnement) sur C:\Utilisateurs\<USER>. Après ce changement, peu importe comment je démarre Emacs, il utilise le même fichier init (voir la réponse acceptée de cette question )