OVH Cloud OVH Cloud

zsh, completion, alias

10 réponses
Avatar
Vincent Bernat
Coucou !

J'ai défini un alias pour sudo qui rappelle sudo. Le problème, c'est
que du coup, la complétion ne marche plus (en fait, mon alias, c'est
"sudo env ...."). Je ne suis pas très au fait de comment la complétion
marche dans ce cas avec zsh (il transforme p'tet l'alias avant de
faire la complétion). Y'a-t-il moyen que zsh complète mon alias comme
un sudo normal ?
--
BOFH excuse #416:
We're out of slots on the server

10 réponses

Avatar
Nicolas George
Vincent Bernat wrote in message :
J'ai défini un alias pour sudo qui rappelle sudo. Le problème, c'est
que du coup, la complétion ne marche plus (en fait, mon alias, c'est
"sudo env ...."). Je ne suis pas très au fait de comment la complétion
marche dans ce cas avec zsh (il transforme p'tet l'alias avant de
faire la complétion). Y'a-t-il moyen que zsh complète mon alias comme
un sudo normal ?


Chez moi ça marche, avec env tout court au moins. Deux choses :

- est-ce que la complétion marche quand tu tapes explicitement « sudo
env » ?

- pourquoi veux-tu mettre un env systématiquement dans tes sudo ?

Avatar
Vincent Bernat
OoO Pendant le repas du mercredi 28 juin 2006, vers 19:37, Nicolas
George <nicolas$ disait:

Vincent Bernat wrote in message :
J'ai défini un alias pour sudo qui rappelle sudo. Le problème, c'est
que du coup, la complétion ne marche plus (en fait, mon alias, c'est
"sudo env ...."). Je ne suis pas très au fait de comment la complétion
marche dans ce cas avec zsh (il transforme p'tet l'alias avant de
faire la complétion). Y'a-t-il moyen que zsh complète mon alias comme
un sudo normal ?


Chez moi ça marche, avec env tout court au moins. Deux choses :

- est-ce que la complétion marche quand tu tapes explicitement « sudo
env » ?


Avec "/usr/bin/sudo env", il propose plein de choses.
Avec "/usr/bin/sudo env MACHIN=truc", il propose juste des fichiers.

- pourquoi veux-tu mettre un env systématiquement dans tes sudo ?


Pour ça :

sudo='sudo env HISTFILE=$HISTFILE-root ZDOTDIR=$HOME HOME=$HOME'

Les sudo su évitent de m'écraser l'historique. Les sudo zsh
fonctionnent avec mes fichiers de config. Et pour HOME, il me semble
qu'il me le fallait à un moment.
--
panic("Oh boy, that early out of memory?");
2.2.16 /usr/src/linux/arch/mips/mm/init.c


Avatar
Stephane Dupille
- pourquoi veux-tu mettre un env systématiquement dans tes sudo ?
Pour ça :

sudo='sudo env HISTFILE=$HISTFILE-root ZDOTDIR=$HOME HOME=$HOME'
Les sudo su évitent de m'écraser l'historique. Les sudo zsh
fonctionnent avec mes fichiers de config. Et pour HOME, il me semble
qu'il me le fallait à un moment.


Est-ce que calife ne serait pas plutôt la solution plutôt que de
bidouiller sudo ?


Avatar
Nicolas George
Vincent Bernat wrote in message :
Avec "/usr/bin/sudo env", il propose plein de choses.
Avec "/usr/bin/sudo env MACHIN=truc", il propose juste des fichiers.


Effectivement. C'est un bug de la complétion de env, tu peux faire remonter
l'information.

sudo='sudo env HISTFILE=$HISTFILE-root ZDOTDIR=$HOME HOME=$HOME'

Les sudo su évitent de m'écraser l'historique. Les sudo zsh
fonctionnent avec mes fichiers de config. Et pour HOME, il me semble
qu'il me le fallait à un moment.


Pour le HISTFILE, pourquoi pas simplement

[[ $UID == 0 ]] && HISTFILE=~/.history-root

dans le .zshrc ? C'est plus robuste, je pense, puisque ça ne dépend pas du
fait que tu exécutes sudo depuis ton shell interactif usuel.

Pour le HOME, la version de sudo que j'ai ici ne le change pas.

Avatar
Vincent Bernat
OoO Pendant le journal télévisé du mercredi 28 juin 2006, vers 20:05,
Nicolas George <nicolas$ disait:

Pour le HOME, la version de sudo que j'ai ici ne le change pas.


Ces histoires d'environnement, c'est suite à un patch Debian qui a
décidé que comme les variables d'environnement, c'est dangereux, on
les vire tous. Ils sont revenus sur leur décision depuis. Je dois donc
pouvoir changer.
--
Don't stop at one bug.
- The Elements of Programming Style (Kernighan & Plauger)

Avatar
Vincent Bernat
OoO Pendant le journal télévisé du mercredi 28 juin 2006, vers 20:00,
Stephane Dupille disait:

sudo='sudo env HISTFILE=$HISTFILE-root ZDOTDIR=$HOME HOME=$HOME'
Les sudo su évitent de m'écraser l'historique. Les sudo zsh
fonctionnent avec mes fichiers de config. Et pour HOME, il me semble
qu'il me le fallait à un moment.


Est-ce que calife ne serait pas plutôt la solution plutôt que de
bidouiller sudo ?


Y'a pas de complétion du tout ;-) Enfin, je suppose que c'est possible
de copier celle de sudo.
--
printk("Penguin %d is stuck in the bottle.n", i);
2.0.38 /usr/src/linux/arch/sparc/kernel/smp.c


Avatar
Vincent Bernat
OoO Pendant le journal télévisé du mercredi 28 juin 2006, vers 20:05,
Nicolas George <nicolas$ disait:

Effectivement. C'est un bug de la complétion de env, tu peux faire remonter
l'information.


C'est fait. En fait, je pense que y'a pas de complétion du tout pour
env, je ne trouve rien dans les fichiers de zsh. Je devrais trouver un
_env quelque part, non ?
--
Watch out for off-by-one errors.
- The Elements of Programming Style (Kernighan & Plauger)

Avatar
Nicolas George
Vincent Bernat wrote in message :
C'est fait. En fait, je pense que y'a pas de complétion du tout pour
env, je ne trouve rien dans les fichiers de zsh. Je devrais trouver un
_env quelque part, non ?


D'après mon .zcompdump, env est complété par _precommand, ça n'est pas
étonnant que ça ne donne rien de satisfaisant.

Avatar
Vincent Bernat
OoO Pendant le temps de midi du jeudi 29 juin 2006, vers 12:26,
Nicolas George <nicolas$ disait:

Vincent Bernat wrote in message :
C'est fait. En fait, je pense que y'a pas de complétion du tout pour
env, je ne trouve rien dans les fichiers de zsh. Je devrais trouver un
_env quelque part, non ?


D'après mon .zcompdump, env est complété par _precommand, ça n'est pas
étonnant que ça ne donne rien de satisfaisant.


J'ai trouvé une complétion ici :
http://www.zsh.org/mla/workers/2006/msg00305.html

Mais à part compléter les arguments, elle ne me semble pas mieux que
_precommand.
--
I WON'T NOT USE NO DOUBLE NEGATIVES
I WON'T NOT USE NO DOUBLE NEGATIVES
I WON'T NOT USE NO DOUBLE NEGATIVES
-+- Bart Simpson on chalkboard in episode BABF02


Avatar
Vincent Bernat
OoO Pendant le temps de midi du jeudi 29 juin 2006, vers 12:26,
Nicolas George <nicolas$ disait:

Vincent Bernat wrote in message :
C'est fait. En fait, je pense que y'a pas de complétion du tout pour
env, je ne trouve rien dans les fichiers de zsh. Je devrais trouver un
_env quelque part, non ?


D'après mon .zcompdump, env est complété par _precommand, ça n'est pas
étonnant que ça ne donne rien de satisfaisant.


J'ai trouvé une complétion ici :
http://www.zsh.org/mla/workers/2006/msg00305.html

Mais à part compléter les arguments, elle ne me semble pas mieux que
_precommand. Quant à l'améliorer, c'est un peu du chinois pour moi.
--
I WON'T NOT USE NO DOUBLE NEGATIVES
I WON'T NOT USE NO DOUBLE NEGATIVES
I WON'T NOT USE NO DOUBLE NEGATIVES
-+- Bart Simpson on chalkboard in episode BABF02