View previous topic :: View next topic |
Author |
Message |
Quaker_Fou n00b
Joined: 28 Apr 2006 Posts: 49 Location: Lille
|
Posted: Fri Apr 28, 2006 7:41 pm Post subject: [Presque Résolu ;-)] Chargement ~/.emacs ??? |
|
|
Bonjour a tous,
J'expose mon petit probleme
Je travaille souvent avec emacs et lorsque je lance mon emacs via une console (ou via le menu d'e17), il se lance bien mais ne veut pas charger le ".emacs"
J'ai essayer plusieurs methodes pour resoudre mon probleme comme compiler mon fichier .emacs pour obtenir un .emacs.elc
ou bien meme renommé mon ".emacs" en "_emacs" et en ".emacs.el"
Mais rien a faire, mon fichier de configuration ne se charge pas automatiquement.
Pourtant il est bien dans mon home.
J'ai meme essayé d'emerger une version ultérieure d'emacs a celle que j'avais (21.4) mais rien n'y fait.
Le pire c'est que lorsque je lance "emacs -l ~/.emacs" dans un terminal , emacs charge bien ma configuration mais ce n'est pas très pratique.
(L'option -l permet de faire un load-file sur un fichier lisp)
J'ai remarqué egalement qu'en utilisateur root , emacs charge bien mon fichier .emacs
J'ai egalement essayé de changer les droits d'accés sur ce fichier .emacs mais ca marche pas.
J'ai ensuite tester avec un fichier simpliste de configuration contenant 1 commande (mouse-wheel-mode) mais rien a faire, fonctionne pas
J'ai donc supprimer ce ~/.emacs en tant qu'utilisateur, et j'ai lancé emacs et voulu créer une config d'emacs simple a partir du menu d'emacs.
Tout semble s'etre fait, emacs note meme l'ecriture du fichier de config (wrote "/home/AcidBurn/.emacs") dans le minibuffer.
Mais juste aprés , je relance emacs et rien a faire les options ne sont pas comptabilisés meme si le fichier qui a été crée est valide.
J'ai ensuite tester pour voir ce que penser emacs de ma variable home avec ce code :
(insert (getenv "HOME"))
Il me renvoit bien la bonne valeur.
J'ai meme desesperement crée un autre compte utilisateur en plus du mien pour tester mais ca ne marche pas non plus.
J'avoue que je suis un peu perdu.
Quelqu'un aurait t'il eu un cas similaire?
J'ai beau chercher sur google, je trouve rien de satisfaisant.
La seule solution (si on peut appeller ca une solution) que j'ai trouvé, c'est de créer un alias dans mon bashrc pour qu'il remplace la commande emacs par "emacs -l ~/.emacs".
Je trouve pas ca très très "clean"
Je serais reconnaissant quelque soit l'aide que vous pouvez m'apporter
Cordialement,
Ps : Je paye une tournée a celui qui trouve la solution _________________ La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi.
Last edited by Quaker_Fou on Sat Apr 29, 2006 2:58 pm; edited 1 time in total |
|
Back to top |
|
|
kais n00b
Joined: 02 Dec 2005 Posts: 24
|
Posted: Sat Apr 29, 2006 12:02 am Post subject: |
|
|
as-tu regardé le buffer *Messages* pour d'éventuelles indications ?
tu peux aussi lancer emacs avec l'option --debug-init,
tu peux aussi essayer de le lancer avec l'option --no-site-file, (ce fichier peut contenir des options qui interdisent la lecture du .emacs).
j'ai utilisé emacs depuis bien longtemps, et je n'ai jamais eu ce problème.
Actuellement, je travaille avec emacs-cvs (22.0.50-r2). Tu utilises quelle version?
Enfin tu pourrais aussi consulter le contenu des variables LOGNAME et USER (voir l'info d'emacs, 'How Emacs Finds Your Init File' dans le section customization-->The Init File).
Bonne chance !! |
|
Back to top |
|
|
Enlight Advocate
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Sat Apr 29, 2006 11:26 am Post subject: |
|
|
Tu as le même .emacs dans le $HOME de tous les utilisateurs? |
|
Back to top |
|
|
Ey l33t
Joined: 07 Apr 2005 Posts: 863 Location: Paris
|
Posted: Sat Apr 29, 2006 11:37 am Post subject: |
|
|
Enlight wrote: | Tu as le même .emacs dans le $HOME de tous les utilisateurs? |
Moi j'irais même plus loin : es-tu sur que ta variable d'environnement HOME correspond bien à ton home ?
EDIT : sinon si tu veux contourner le problème tu définis un alias dans ton .bashrc ou équivalent
alias emacs=emacs -l ~/.emacs
EDIT2 (off) (troll) : Quote: | I personally just encourage people to switch to KDE. - Linus Torvalds | ce qu'il y a de bien avec linus c'est que grace à lui maintenant si je veux pas avoir à faire de l'aide de paramétrage d'interface graphique pour des gens qui n'ont pas encore décroché de windows il me suffit d'ignorer tous les messages commencant par KDE. |
|
Back to top |
|
|
Quaker_Fou n00b
Joined: 28 Apr 2006 Posts: 49 Location: Lille
|
Posted: Sat Apr 29, 2006 12:03 pm Post subject: |
|
|
Bonjour a tous
Deja un grand merci pour vos reponses.
Pour repondre un peu a toute les questions, j'ai essayé avec l'option --debug-init, mais puisque c'est pour debugger un fichier lisp et qu'il ne lance pas mon fichier lisp, et bien aucun affichage de debug
Cela dit j'ai meme essayé avec un fichier de configuration d'emacs ultra simpliste qui active juste le scroll de la souris, et le resultat etait le meme.
Sinon je travaille avec la version 21.4 mais j'ai essayé des versions anterieures voir ultérieures.
Pour la variable home , voici comment emacs l'evalue :
Aprés l'evaluation du buffer contenant (insert (getenv "HOME")) je recupere ca dans le buffer :
(getenv "HOME"))/home/AcidBurn
Ce qui correspond bien a mon home
Pour le LOGNAME et le USER, l'evaluation dans emacs donne ca :
(insert (getenv "LOGNAME"))root
(insert (getenv "USER"))root
Dans un terminal
$ echo $LOGNAME
root
$ echo $USER
root
$ whoami
AcidBurn
$ echo $HOME
/home/AcidBurn
Je trouve ca bizarre sachant que emacs arrive a lire correctement le /root/.emacs quand je suis loggué en root.
Pour ce qui est du .emacs du root , le fichier est le meme que celui que j'ai en utilisateur normal (AcidBurn)
Mais ce sont deux fichiers differents et les droits sont bien autorisés sur le fichier .emacs de l'utilisateur normal.
Je pense pas que ca puisse venir de la puisque j'ai essayé egalement de faire un fichier de configuration simpliste a partir du menu d'emacs.
Au fait , est ce normal d'avoir autant de binaire emacs qui font absolument la meme chose?
emacs
emacs.emacs-21
emacs-21
Cordialement,
Ps : Pour le troll du kde Versus E17 , bien essayé
Ps2 : Pour l'instant j'utilise un alias , mais bon ca fait un peu trop bidouille et ca me trouble psychologiquement
Ps3: Je rajoute un pastebin de mon fichier emacs au cas ou : http://pastebin.com/688482
[Edit Quaker_Fou]
J'ai legerement modifié mon ~/.bashrc pour qu'il prenne en compte deux choses :
USER="`id -un`"
LOGNAME=$USER
Avec ces lignes la , ca fonctionne impec, plus besoin des alias
Par contre , comment se fait t'il que je sois obligé de rajouter ces deux lignes la?
C'est quand meme etrange que ces variables etaient mal positionnées non?
Pensez vous que la modification de mon ~/.bashrc soit judicieux ou pensez vous qu'il y a une autre solution plus elegante?
[/Edit] _________________ La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi.
Last edited by Quaker_Fou on Sun Apr 30, 2006 8:50 pm; edited 2 times in total |
|
Back to top |
|
|
kais n00b
Joined: 02 Dec 2005 Posts: 24
|
Posted: Sat Apr 29, 2006 10:57 pm Post subject: |
|
|
cela confirme qu'effectivement ton problème est lié aux variables LOGNAME et USER, et non pas d'emacs, voici ce que dit l'info d'emacs à ce sujet:
Code: |
However, if you run Emacs from a shell started by `su', Emacs tries to find your own `.emacs', not that of the user you are currently pretending to be. The idea is that you should get your own editor customizations even if you are running as the super user.
More precisely, Emacs first determines which user's init file to use. It gets your user name from the environment variables `LOGNAME' and `USER'; if neither of those exists, it uses effective user-ID. If that user name matches the real user-ID, then Emacs uses `HOME'; otherwise, it looks up the home directory corresponding to that user name in the system's data base of users.
|
et donc si tu as accés en lecture au fichier .emacs de root, alors c'est lui qui sera chargé !!!
Est-ce ce que tu n'utiliserais pas emacs depuis une session "su" ? Que donne la commande "env" ?
As-tu le même problème quand tu lances emacs depuis une console ordinaire (sans X)?
Par ailleurs, les binaires /usr/bin/emacs* sont soit des liens matériels ("hardlink") ou symbolique sur le vrai binaire emacs. |
|
Back to top |
|
|
Quaker_Fou n00b
Joined: 28 Apr 2006 Posts: 49 Location: Lille
|
Posted: Sun Apr 30, 2006 8:48 pm Post subject: |
|
|
Merci de tes reponses kais !
En fait j'ai remarqué que ca arrivait quand je me loggue en root après avoir demarré gentoo.
Je suis obligé de le faire une premiere fois pour activer mon wifi (je suis obligé d'utiliser un firmware très exotiques qui necessite une compilation a chaque boot ).
Aprés avoir activé le wifi en mode console, je me loggue en utilisateur normal, et je lance un startx.
Le probleme vient de mes deux variables USER et LOGNAME qui restent positionnées a "root"
Donc a part positionner ces variables la dans mon ~/.bashrc ou mon ~/.bash_profile, je vois pas trop comment faire.
Si vous avez une idée, je suis preneur
Cordialement, _________________ La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|