Où puis-je trouver mon fichier .emacs pour Emacs sous Windows?

115

J'ai essayé de rechercher le fichier .emacs pour mon installation Windows pour Emacs, mais je ne l'ai pas trouvé. At-il le même nom de fichier sous Windows que sous Unix?

Dois-je le créer moi-même? Si tel est le cas, dans quel répertoire spécifique va-t-il?

Rayon
la source

Réponses:

108

Copier et coller à partir de la FAQ Emacs, http://www.gnu.org/software/emacs/windows/ :

Où dois-je mettre mon fichier init?

Sous Windows, le .emacsfichier peut être appelé _emacspour une compatibilité descendante 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 un fichier avec un nom commençant 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 être appelé .emacs.d/init.el. La plupart des autres fichiers créés par les packages Lisp sont désormais stockés dans le .emacs.drépertoire également, ce qui permet de conserver tous vos fichiers liés à Emacs 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:

  1. Si la variable d'environnement HOME est définie, utilisez le répertoire qu'elle indique.
  2. Si l'entrée de registre HKCU \ SOFTWARE \ GNU \ Emacs \ HOME est définie, utilisez le répertoire qu'elle indique.
  3. Si l'entrée de registre HKLM \ SOFTWARE \ GNU \ Emacs \ HOME est définie, utilisez le répertoire qu'elle indique. Non recommandé, car les utilisateurs partagent le même répertoire HOME.
  4. S'il C:\.emacsexiste, utilisez C:/. C'est pour la compatibilité descendante, car les versions précédentes C:/étaient par défaut si HOME n'était pas défini.
  5. Utilisez le répertoire AppData de l'utilisateur, généralement un répertoire appelé Application Data sous le répertoire du profil de l'utilisateur, dont l'emplacement varie selon la version de Windows et si l'ordinateur fait partie d'un domaine.

Dans Emacs, ~au début d'un nom de fichier est développé dans votre répertoire HOME, vous pouvez donc toujours trouver votre fichier .emacs avec C-x C-f ~/.emacs.

Vous trouverez de plus amples informations sur les répertoires HOME et de démarrage sur MS-Windows .

Nœud
la source
1
Ou vous devrez peut-être trouver avec Cx Cf ~ / _emacs (au lieu du point). L'utilisation du trait de soulignement pour votre init est une pratique courante (et suggérée) pour Vim et Emacs.
labyrinthe
Emacs se plaint que "_emacs" est obsolète :(
Brian Z
Merci. Cette explication m'a en fait aidé à configurer correctement emacs en suivant un tutoriel de clojure, où ils ne l'ont même pas mentionné. Créé la variable HOME sur Windows et maintenant cela fonctionne.
Siniyas
Pour moi, en référence à votre point 5 ci-dessus, le répertoire emacs recherche pour moi est C: \ Users \ userid \ AppData \ Roaming sur Windows 7 mais bien sûr mon ordinateur est sur un domaine.
user8128167
Sous Windows 10, j'ai défini la variable HOME sur% USERPROFILE% pour éviter le suffixe AppData.
Bae
80

Il doit être stocké dans la variable user-init-file. Utilisez C-H v user-init-file RETpour vérifier. Vous pouvez également l'ouvrir directement en utilisantM-x eval-expression RET (find-file user-init-file) RET

disparu
la source
8
C'est tellement utile que je suis surpris que cela ne soit pas mentionné dans la section du manuel sur les fichiers init.
Brian Z
Je me demande pourquoi quand j'essaye ça, j'obtiens trailing garbage following expression?
Marko Grdinic
Avez-vous utilisé la parenthèse?
Jose Romero
29

Ouvrez le fichier comme ceci dans Emacs pour Windows:

C-x C-f ~/.emacs

Plus d'informations dans le Wiki Emacs

sverrejoh
la source
11
Et puis cliquez sur Fichier> Ouvrir le fichier ... ou Enregistrer sous ... pour voir où se trouve ~ / dans une boîte de dialogue Ouvrir Windows familière.
Yoo
21

Sur ma boîte Vista, c'est dans C:\Users\<USER>\AppData\Roaming\

Alexander Kojevnikov
la source
1
Idem pour Windows 8.1 (Emacs 24) avec une exception. Lorsque Emacs est ouvert à partir de l'Explorateur Windows, un lien ou une console cmd il utilise le fichier de profil C: \ Users \ <USER> \ AppData \ Roaming \ .emacs mais si vous ouvrez Emacs depuis la console PowerShell, Emacs recherchera le fichier .emacs dans C : Dossier \ Users \ <USER>.
kri
Cela a fonctionné pour moi. J'ai créé un fichier .emacs dans le répertoire Roaming d'AppData et fonctionne comme un charme! Windows 10.
Retro Gamer
A travaillé sous Windows 10
Alex Kaszynski
6

Notez qu'il ne suffit pas de taper Ctrl-x Ctrl-f ~/.emacset de créer le fichier.

Il se peut que votre application Emacs utilise un endroit différent pour stocker votre fichier init, et si c'est le cas, la création du fichier ~ / .emacs crée simplement un fichier inutile que votre application Emacs ignore.

De plus, vous voudrez peut-être faire plus que simplement accéder au fichier d'initialisation .emacs, mais vous voudrez peut-être savoir où il se trouve, c'est-à-dire son chemin.

Pour y parvenir, il existe deux méthodes:

Méthode simple: tapez Ctrl+ H Vuser-init-fileReturn

Méthode un peu plus délicate: vous pouvez savoir où votre système stocke son propre fichier .emacs en:

  1. Cliquez sur les options et faites défiler jusqu'à "Définir la police par défaut ..."
  2. Modifiez le paramètre de police et cliquez sur OK
  3. Dans le menu des options, descendez dans "Enregistrer les options"
  4. Lorsque les options sont enregistrées, le système enregistre son fichier .emacs, et vous pouvez lire le chemin du fichier dans le mini-tampon en bas de l'écran Emacs
user3020269
la source
Veuillez consulter la documentation sur la mise en forme de votre réponse. C'est assez facile et vous gagnera plus de réputation.
Bhavik Shah
Lorsque j'ai enregistré un fichier nommé ~ / .emacs.el, il a été créé au format c:/Users/user1/AppData/Roaming/.emacs.el. Ce site emacswiki.org/emacs/DotEmacsDotD m'a aidé à réaliser que j'avais besoin de nommer le fichier, ~/.emacs.d/init.elce qui signifiait que le fichier dans le système de fichiers se trouvait c:\Users\user1\AppData\Roaming\.emacs.d\init.el(pas du tout ce à quoi je m'attendais). Je préfère définir la variable d'environnement HOME et placer le fichier dans mon %USERPROFILE%répertoire qui est le répertoire HOME logique sur Windows (du moins en ce qui me concerne).
PatS
4

Dans Windows 7, placez votre init.elfichier C:\Users\user-name\AppData\Roaming\.emacs.d\, où nom d' utilisateur est votre dossier d'utilisateur / de connexion.

Veillez à ce que votre init.elfichier ne soit pas nommé init.el.txt. C'est quelque chose que Windows fait si vous créez votre fichier avec un éditeur comme le Bloc-notes.

caisah
la source
4

Sur les versions d'Emacs sous Windows au-dessus de 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èmeAvancéVariables d'environnement ).

Le fichier lui-même peut ne pas exister. Dans ce cas, créez-le simplement.

Gauthier
la source
3

Vous devez créer un fichier d'initialisation emacs. Un n'est pas créé automatiquement. J'ai eu un problème similaire et cette réponse retrace ce que j'ai fait.

Mon problème était que mon ~/.emacs.elfichier ne se chargeait pas. Etrange 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.elcar c'est apparemment le 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 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é expand-file-namecomme indiqué ci-dessous:

(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"

Je dois adorer le fonctionnement de Windows. (non) J'ai donc déplacé mon emacs.elfichier vers le %USERPROFILE%\AppData\Roaming\.emacs.d\init.elet cela a fonctionné. Le fichier était en cours de lecture. Mais j'ai eu d'autres erreurs parce que mon fichier d'initialisation chargeait d'autres fichiers (emacs personnels) (au format ~/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/*.elauraient besoin d'être déplacés pour que cela fonctionne mais je ne voulais pas le faire. Puis j'ai réalisé que parce que la variable d'environnement HOME n'était pas définie, emacs exécutait son comportement par défaut .

SOLUTION

Une fois que j'ai défini ma HOMEvariable d'environnement Windows sur %USERPROFILE%tout, tout a commencé à fonctionner comme au cours des 25 dernières années. :-)

Pour définir la variable d'environnement HOME, j'ai tapé WindowsKey + "modifier les variables d'environnement pour votre compte" pour ouvrir la boîte de dialogue Variables d'environnement , et je suis entré HOME=%USERPROFILE%.

Maintenant, mon fichier d'initialisation emacs .emacs.el est de retour à sa juste place $HOME/.emacs.elet non dans%USERPROFILE%\AppData\Roaming\.emacs.d\init.el

Pour être honnête, si Windows n'avait qu'un seul endroit pour placer les fichiers des packages installés par l'utilisateur, la solution consistant à créer HOME = %USERPROFILE\AppData\Roamingpourrait être acceptable, mais comme certaines applications l'utilisent %USERPROFILE%, certaines l'utilisent %USERPROFILE\AppData\Roaminget d'autres l'utilisent, %USERPROFILE\AppData\Localil est simplement difficile de savoir où trouver votre configuration. des dossiers.

Je préfère tout avoir dans mon répertoire% USERPROFILE% ou $ HOME.

Une autre question similaire était ici:

PatS
la source
"Je dois aimer le fonctionnement de Windows. (Pas)" - Ce problème n'a rien à voir avec Windows à part ce que les développeurs d'Emacs ont fait aux personnes qui exécutent Emacs sur Windows.
Chris Charabaruk
2

Comme kanja a répondu, le chemin d'accès à ce fichier est stocké dans la user-init-filevariable (ou si aucun fichier d'initialisation n'existe, la variable contient la valeur par défaut de l'endroit où le créer).

Ainsi, quel que soit le nom de fichier d'initialisation possible que vous utilisez et le répertoire dans lequel il se trouve, vous devriez pouvoir visiter votre fichier d'initialisation 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

phils
la source
2

Sur Emacs 23 et Windows 7, cela ne fonctionne que si vous définissez:

HKCU\SOFTWARE\GNU\Emacs\HOME
ex_
la source
Enfin j'ai trouvé ça! Merci!
Chris
Enfin j'ai trouvé ça! Moi aussi!
lowerkey
Par «set», voulez-vous dire créer cette clé (sans contenu)?
Peter Mortensen
1

J'ai constaté qu'Emacs 22 ouvrirait occasionnellement soit "C: \ Documents and Settings \ username \ Application Data \ .emacs", ou simplement "C: \ Documents and Settings \ username \ .emacs" sur ma machine XP. Je n'ai pas trouvé d'explication pour expliquer pourquoi cela change parfois d'avis.

~ pointera toujours vers ce que l'instance actuelle d'emacs pense être HOME, mais le conseil de kanja (Ch v user-init-file) vous dira toujours à quoi ~ / .emacs correspond réellement.

remcycles
la source
2
J'ai maintenant remarqué que Windows définira la HOMEvariable d'environnement différemment, selon la façon dont je commence runemacs.exe. Si je le lance à partir de l'Explorateur, HOMEest défini sur C:\Documents and Settings\username, mais si je le démarre à partir du menu Démarrer, HOMEest C:\Documents and Settings\username\Application Data. Étrange.
remcycles
1

Sur Windows XP, c'est:

C:\Documents and Settings\yourusernamehere\Application Data\
ours polaire
la source
0

Sous Windows 8.1, si Emacs est démarré à partir de l' Explorateur Windows , d'un raccourci ou de la console cmd, il utilise le fichier d'initialisation C: \ Users \ <USER> \ AppData \ Roaming.emacs . Lorsque je démarre Emacs à partir de PowerShell, Emacs recherche son fichier init dans le dossier C: \ Users \ <USER> . Le correctif à ce problème consistait à définir la variable d'environnement de l'utilisateur HOME (Panneau de configuration \ Système et sécurité \ Système-> Paramètres système avancés-> Avancé-> Variables d'environnement) sur C: \ Users \ <USER> . Après ce changement, peu importe comment je lance Emacs, il utilise le même fichier init (voir la réponse acceptée à cette question )

kri
la source
0

Pour WIndows7 & Emacs26.3 :


si l' HOMEenvironnement est défini, le .emacsfichier doit se trouver dans ce dossier.

sinon, il devrait être dans c:\.


Dans les deux cas, s'il .emacsn'y en a pas, _emacsdoit être utilisé.

C'est parce que nous ne pouvons pas créer de .emacsfichier selon les règles de dénomination des fichiers Windows (mais nous pouvons le télécharger ou le copier ailleurs).

ZhaoGang
la source