Bonjour,
Je trouve étrange que mes alias de commandes (Zsh et bash) ne soient pas
reconnus par GNU Emacs en mode shell.
Y a-t-il une solution, quelque chose de particulier à mettre dans ~/.emacs?
J'utilise surtout Zsh et mes alias sont définis dans
~/Library/init/zsh/aliases.
Avec bash, ils sont dans ~/.bashrc.
Une dernière précision: je suis sur Mac OS X 10.3.8
Merci
--
François GIRON
fgiron@mac.com
Attention, le shell executé est de « nature différente » selon que vous utilisez la commande `shell' (avec M-x shell) et la commande `shell-command-on-region' : dans le second cas le shell n'est pas interactif, il ne lit pas nécessairement les même fichiers de configuration...
Dans le premier cas, vous ne devriez pas rencontrer de problème si les fichiers d'initialisation du shell sont au point. Notez que vous pouvez toujours bricoler une roue de secours dans un fichier nommé `~/.emacs_SHELLNAME' (cf. la documentation de la commande `shell').
Dans le second cas, c'est le bazar. Par exemple j'ai un alias nommé `ppl' défini dans .bashrc (qui est chargé dans les shells interactifs) ; rien de surprenant dans le truc suivant :
[ ~]$ bash -c ppl bash: line 1: ppl: command not found [ ~]$ ppl chauvin luc marckert meulien thiam # users = 5
En espérant avoir eclairci les choses, -- Matthias
Bonjour,
Attention, le shell executé est de « nature différente » selon que
vous utilisez la commande `shell' (avec M-x shell) et la commande
`shell-command-on-region' : dans le second cas le shell n'est pas
interactif, il ne lit pas nécessairement les même fichiers de
configuration...
Dans le premier cas, vous ne devriez pas rencontrer de problème si les
fichiers d'initialisation du shell sont au point. Notez que vous
pouvez toujours bricoler une roue de secours dans un fichier nommé
`~/.emacs_SHELLNAME' (cf. la documentation de la commande `shell').
Dans le second cas, c'est le bazar. Par exemple j'ai un alias nommé
`ppl' défini dans .bashrc (qui est chargé dans les shells
interactifs) ; rien de surprenant dans le truc suivant :
[meulien@fermat ~]$ bash -c ppl
bash: line 1: ppl: command not found
[meulien@fermat ~]$ ppl
chauvin luc marckert meulien thiam
# users = 5
En espérant avoir eclairci les choses,
--
Matthias
Attention, le shell executé est de « nature différente » selon que vous utilisez la commande `shell' (avec M-x shell) et la commande `shell-command-on-region' : dans le second cas le shell n'est pas interactif, il ne lit pas nécessairement les même fichiers de configuration...
Dans le premier cas, vous ne devriez pas rencontrer de problème si les fichiers d'initialisation du shell sont au point. Notez que vous pouvez toujours bricoler une roue de secours dans un fichier nommé `~/.emacs_SHELLNAME' (cf. la documentation de la commande `shell').
Dans le second cas, c'est le bazar. Par exemple j'ai un alias nommé `ppl' défini dans .bashrc (qui est chargé dans les shells interactifs) ; rien de surprenant dans le truc suivant :
[ ~]$ bash -c ppl bash: line 1: ppl: command not found [ ~]$ ppl chauvin luc marckert meulien thiam # users = 5
En espérant avoir eclairci les choses, -- Matthias
Matthieu Moy
Matthias writes:
[ ~]$ bash -c ppl bash: line 1: ppl: command not found [ ~]$ ppl chauvin luc marckert meulien thiam # users = 5
C'est pour ce genre de raisons que j'utilise très peu les alias.
Moi, j'ai ~/bin au début de mon $PATH, il contient beaucoup de liens symboliques vers les commandes qui vont bien (genre, si je veux que l appelle /bin/ls, je fais "ln -s /bin/ls ~/bin/l") et un certain nombre de scripts de 1 ligne.
C'est indépendant du shell (il faut juste que ~/bin soit au début du PATH), simple a maintenir, ...
-- Matthieu
Matthias <cimosque@free.fr> writes:
[meulien@fermat ~]$ bash -c ppl
bash: line 1: ppl: command not found
[meulien@fermat ~]$ ppl
chauvin luc marckert meulien thiam
# users = 5
C'est pour ce genre de raisons que j'utilise très peu les alias.
Moi, j'ai ~/bin au début de mon $PATH, il contient beaucoup de liens
symboliques vers les commandes qui vont bien (genre, si je veux que l
appelle /bin/ls, je fais "ln -s /bin/ls ~/bin/l") et un certain nombre
de scripts de 1 ligne.
C'est indépendant du shell (il faut juste que ~/bin soit au début du
PATH), simple a maintenir, ...
[ ~]$ bash -c ppl bash: line 1: ppl: command not found [ ~]$ ppl chauvin luc marckert meulien thiam # users = 5
C'est pour ce genre de raisons que j'utilise très peu les alias.
Moi, j'ai ~/bin au début de mon $PATH, il contient beaucoup de liens symboliques vers les commandes qui vont bien (genre, si je veux que l appelle /bin/ls, je fais "ln -s /bin/ls ~/bin/l") et un certain nombre de scripts de 1 ligne.
C'est indépendant du shell (il faut juste que ~/bin soit au début du PATH), simple a maintenir, ...
-- Matthieu
frangi
Je suis très perplexe. Après avoir plusieurs fois essayé vainement mon alias "frpdflatex", motif de mon post, il fonctionne à présent normalement ainsi que tous les autres alias, sans que j'ai rien touché aux fichiers de configuration. J'ai juste modifié ~/Library/init/zsh/login en relisant hier soir en détail le dossier de mosx.net (sur cette page, exactement: http://www.mosx.net/dossiers/Shell-6.shtml).
Enfin, ça n'aura pas été pour rien si cela vous a permis de découvrir une configuration intéressante de zsh (je la trouve personnellement vraiment intéressante). Pourquoi donc cela ne fonctionnait-il pas? Telle est la question. En tout cas, merci à vous. -- François GIRON
Je suis très perplexe. Après avoir plusieurs fois essayé vainement mon
alias "frpdflatex", motif de mon post, il fonctionne à présent
normalement ainsi que tous les autres alias, sans que j'ai rien touché
aux fichiers de configuration. J'ai juste modifié
~/Library/init/zsh/login en relisant hier soir en détail le dossier de
mosx.net (sur cette page, exactement:
http://www.mosx.net/dossiers/Shell-6.shtml).
Enfin, ça n'aura pas été pour rien si cela vous a permis de découvrir
une configuration intéressante de zsh (je la trouve personnellement
vraiment intéressante). Pourquoi donc cela ne fonctionnait-il pas?
Telle est la question. En tout cas, merci à vous.
--
François GIRON
fgiron@mac.com
Je suis très perplexe. Après avoir plusieurs fois essayé vainement mon alias "frpdflatex", motif de mon post, il fonctionne à présent normalement ainsi que tous les autres alias, sans que j'ai rien touché aux fichiers de configuration. J'ai juste modifié ~/Library/init/zsh/login en relisant hier soir en détail le dossier de mosx.net (sur cette page, exactement: http://www.mosx.net/dossiers/Shell-6.shtml).
Enfin, ça n'aura pas été pour rien si cela vous a permis de découvrir une configuration intéressante de zsh (je la trouve personnellement vraiment intéressante). Pourquoi donc cela ne fonctionnait-il pas? Telle est la question. En tout cas, merci à vous. -- François GIRON
drkm
( François Giron) writes:
Je suis très perplexe.
Moi aussi :-)
Après avoir plusieurs fois essayé vainement mon alias "frpdflatex", motif de mon post, il fonctionne à présent normalement ainsi que tous les autres alias, sans que j'ai rien touché aux fichiers de configuration. J'ai juste modifié ~/Library/init/zsh/login en relisant hier soir en détail le dossier de mosx.net (sur cette page, exactement: http://www.mosx.net/dossiers/Shell-6.shtml).
Je n'y ai pas vu grand-chose à propos de ce fichier. Mais d'après la description qu'il en fait, je suppose qu'il l'exécute dans .zlogin, et qu'il n'a donc aucune influence ici (le shell appelé depuis Emacs n'est pas un shell de login).
Enfin, ça n'aura pas été pour rien si cela vous a permis de découvrir une configuration intéressante de zsh (je la trouve personnellement vraiment intéressante). Pourquoi donc cela ne fonctionnait-il pas? Telle est la question.
Oui. Étrange ... Mais si cela fonctionne, c'est déjà un bon point.
En tout cas, merci à vous.
Pas de quoi,
--drkm
frangi@lns-vlq-47-nan-82-252-251-67.adsl.proxad.net ( François Giron) writes:
Je suis très perplexe.
Moi aussi :-)
Après avoir plusieurs fois essayé vainement mon
alias "frpdflatex", motif de mon post, il fonctionne à présent
normalement ainsi que tous les autres alias, sans que j'ai rien touché
aux fichiers de configuration. J'ai juste modifié
~/Library/init/zsh/login en relisant hier soir en détail le dossier de
mosx.net (sur cette page, exactement:
http://www.mosx.net/dossiers/Shell-6.shtml).
Je n'y ai pas vu grand-chose à propos de ce fichier. Mais d'après
la description qu'il en fait, je suppose qu'il l'exécute dans .zlogin,
et qu'il n'a donc aucune influence ici (le shell appelé depuis Emacs
n'est pas un shell de login).
Enfin, ça n'aura pas été pour rien si cela vous a permis de découvrir
une configuration intéressante de zsh (je la trouve personnellement
vraiment intéressante). Pourquoi donc cela ne fonctionnait-il pas?
Telle est la question.
Oui. Étrange ... Mais si cela fonctionne, c'est déjà un bon
point.
Après avoir plusieurs fois essayé vainement mon alias "frpdflatex", motif de mon post, il fonctionne à présent normalement ainsi que tous les autres alias, sans que j'ai rien touché aux fichiers de configuration. J'ai juste modifié ~/Library/init/zsh/login en relisant hier soir en détail le dossier de mosx.net (sur cette page, exactement: http://www.mosx.net/dossiers/Shell-6.shtml).
Je n'y ai pas vu grand-chose à propos de ce fichier. Mais d'après la description qu'il en fait, je suppose qu'il l'exécute dans .zlogin, et qu'il n'a donc aucune influence ici (le shell appelé depuis Emacs n'est pas un shell de login).
Enfin, ça n'aura pas été pour rien si cela vous a permis de découvrir une configuration intéressante de zsh (je la trouve personnellement vraiment intéressante). Pourquoi donc cela ne fonctionnait-il pas? Telle est la question.
Oui. Étrange ... Mais si cela fonctionne, c'est déjà un bon point.
En tout cas, merci à vous.
Pas de quoi,
--drkm
drkm
Matthieu Moy writes:
Moi, j'ai ~/bin au début de mon $PATH, il contient beaucoup de liens symboliques vers les commandes qui vont bien (genre, si je veux que l appelle /bin/ls, je fais "ln -s /bin/ls ~/bin/l") et un certain nombre de scripts de 1 ligne.
C'est indépendant du shell (il faut juste que ~/bin soit au début du PATH), simple a maintenir, ...
Moi, j'ai ~/bin au début de mon $PATH, il contient beaucoup de liens
symboliques vers les commandes qui vont bien (genre, si je veux que l
appelle /bin/ls, je fais "ln -s /bin/ls ~/bin/l") et un certain nombre
de scripts de 1 ligne.
C'est indépendant du shell (il faut juste que ~/bin soit au début du
PATH), simple a maintenir, ...
Moi, j'ai ~/bin au début de mon $PATH, il contient beaucoup de liens symboliques vers les commandes qui vont bien (genre, si je veux que l appelle /bin/ls, je fais "ln -s /bin/ls ~/bin/l") et un certain nombre de scripts de 1 ligne.
C'est indépendant du shell (il faut juste que ~/bin soit au début du PATH), simple a maintenir, ...
Je prends :-)
--drkm
drkm
Matthias writes:
Attention, le shell executé est de « nature différente » selon que vous utilisez la commande `shell' (avec M-x shell) et la commande `shell-command-on-region' : dans le second cas le shell n'est pas interactif, il ne lit pas nécessairement les même fichiers de configuration...
D'après la page dont François dit s'être inspirée :
$ZDOTDIR/aliases : ce fichier est lu à chaque lancement d'un shell interactif. Il doit contenir les définitions des alias.
Je trouve d'ailleurs bizarre de n'évaluer les aliases que dans les shells interactifs ... Mais c'est sans doute là la réponse à sa question.
--drkm
Matthias <cimosque@free.fr> writes:
Attention, le shell executé est de « nature différente » selon que
vous utilisez la commande `shell' (avec M-x shell) et la commande
`shell-command-on-region' : dans le second cas le shell n'est pas
interactif, il ne lit pas nécessairement les même fichiers de
configuration...
D'après la page dont François dit s'être inspirée :
$ZDOTDIR/aliases : ce fichier est lu à chaque lancement d'un shell
interactif. Il doit contenir les définitions des alias.
Je trouve d'ailleurs bizarre de n'évaluer les aliases que dans les
shells interactifs ... Mais c'est sans doute là la réponse à sa
question.
Attention, le shell executé est de « nature différente » selon que vous utilisez la commande `shell' (avec M-x shell) et la commande `shell-command-on-region' : dans le second cas le shell n'est pas interactif, il ne lit pas nécessairement les même fichiers de configuration...
D'après la page dont François dit s'être inspirée :
$ZDOTDIR/aliases : ce fichier est lu à chaque lancement d'un shell interactif. Il doit contenir les définitions des alias.
Je trouve d'ailleurs bizarre de n'évaluer les aliases que dans les shells interactifs ... Mais c'est sans doute là la réponse à sa question.
--drkm
Matthieu Moy
drkm writes:
Je trouve d'ailleurs bizarre de n'évaluer les aliases que dans les shells interactifs ... Mais c'est sans doute là la réponse à sa question.
sans doute pour éviter de modifier completement la sémantique d'un script en fonction de la config utilisateur.
Exemple typique:
====== toto.sh ====== #!/bin/sh
... rm foobar ... ==== fin toto.sh ==== Si l'utilisateur a un alias sur "rm", genre "rm -i", et hop, ton script devient interactif.
Pire :
====== toto.sh ====== #!/bin/sh
... ls | "un truc qui parse la sortie de ls" ... ==== fin toto.sh ==== Si tu t'es amusé a faire
alias ls="ls --avec --pleins-d'options -qui --tuent"
t'es mal !!
-- Matthieu
drkm <usenet.fcaemacs@fgeorges.org> writes:
Je trouve d'ailleurs bizarre de n'évaluer les aliases que dans les
shells interactifs ... Mais c'est sans doute là la réponse à sa
question.
sans doute pour éviter de modifier completement la sémantique d'un
script en fonction de la config utilisateur.
Exemple typique:
====== toto.sh ====== #!/bin/sh
...
rm foobar
...
==== fin toto.sh ====
Si l'utilisateur a un alias sur "rm", genre "rm -i", et hop, ton
script devient interactif.
Pire :
====== toto.sh ====== #!/bin/sh
...
ls | "un truc qui parse la sortie de ls"
...
==== fin toto.sh ====
Si tu t'es amusé a faire
alias ls="ls --avec --pleins-d'options -qui --tuent"