Bonjour la liste, Elle existe toujours ? Suite à une discussion à propos d'Oh My Zsh avec Marc (Chantreux) sur debian-user-french, je poste ici car ça me semble plus approprié. Je réfléchissais à suivre son conseil, en résumé c'est préférable de maintenir sa base d'alias et de fonctions de complétion plutôt que de déléguer ça à un tiers qui fait le café, et voulais voir quelles en serait les implications me concernant. J'utilise omz pour ses plugins, notamment git qui reste celui qui me sert toute la journée. Ce ne serait pas très compliqué d'ajouter un fichier contenant https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/git.plugin.zsh à mon .zshrc sans prendre toute la plomberie omz autour, et le mettre à jour de temps en temps (à chaque montée de version de debian par ex, ou une fois par an) en contrôlant les changements, mais je me demandais quelle serait la meilleure façon de procéder. J'imaginais un dépôt perso avec mes alias, et des subrepos vers les plugins omz qui m'intéressent, pour avoir la base upstream sous la main et contrôler les merges, mais c'est peut-être pas une si bonne idée… Si vous avez des tuyaux à partager n'hésitez pas ;-) J'ai lu entre autres https://dev.to/rossijonas/how-to-set-up-history-based-autocompletion-in-zsh-... qui suit l'idée de récupérer des fonctionnalités de omz sans le framework qui vient avec, mais vous aurez peut-être d'autres pointeurs utiles. -- Daniel Vous ne sauriez croire avec quelle facilité l'impossible se fait dès qu'il est nécessaire. Anatole France
salut, il ne fallait qu'un message pour la ranimer :)
Suite à une discussion à propos d'Oh My Zsh avec Marc (Chantreux) sur debian-user-french, je poste ici car ça me semble plus approprié.
certes! j'avais fais une proposition de réactivation de cette liste sur duf il y a un moment mais les gens continuent à poser des questions de shell sur la liste.
Je réfléchissais à suivre son conseil, en résumé c'est préférable de maintenir sa base d'alias et de fonctions de complétion plutôt que de déléguer ça à un tiers qui fait le café, et voulais voir quelles en serait les implications me concernant.
alors déjà: astuce du jour: si tu peux écrire une fonction, n'écris pas un alias. PAS BIEN: alias tawk="awk -F'\t'" BIEN: tawk() awk -F'\t' "$@" c'est plus facile à lire mais surtout: si tu ne sais pas qu'alias est en fait un préprocesseur, tu risques de faire des trucs étranges. annonce() { echo "I will $*" "$@" } annonce us mc ca marche avec: us() getent passwd mais pas avec: alias us='getent passwd' parce que l'extension de l'alias se fait avant l'interpolation aussi: qu'affiche h; g dans ce cas: f() echo ok g() f f() echo haha h() f dans celui ci: alias f='echo ok' g() f alias h='echo haha' h() f alors oui c'est puissant d'avoir un preprocesseur dynamique mais je donne le même conseil qu'en C: n'utilise ce préprocesseur que lorsque tu as compris ce que ca fait et que tu n'as pas d'autres options.
Ce ne serait pas très compliqué d'ajouter un fichier contenant https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/git.plugin.zsh
oh misère … que des aliases … et en plus: tu les utilises vraiment tous? perso j'ai tendance à respecter un des 7 conseils de productivité de Bram Moolenar: n'ajouter du code que quand il résoud un truc qui m'irrite régulièrement. mais oui: tu peux très bien avoir un fichier ~/.zsh/rc/omz-git que tu chargerais comme suit dans ton .zshrc . ~/.zsh/rc/omz-git
J'imaginais un dépôt perso avec mes alias, et des subrepos vers les plugins omz qui m'intéressent, pour avoir la base upstream sous la main et contrôler les merges, mais c'est peut-être pas une si bonne idée… Si vous avez des tuyaux à partager n'hésitez pas ;-)
pas d'idée de ce coté.
J'ai lu entre autres https://dev.to/rossijonas/how-to-set-up-history-based-autocompletion-in-zsh-... qui suit l'idée de récupérer des fonctionnalités de omz sans le framework qui vient avec, mais vous aurez peut-être d'autres pointeurs utiles.
que je vais lire. à bientôt, marc
Le 28/06/23 à 20:46, Marc Chantreux <mc@unistra.fr> a écrit :
alors déjà: astuce du jour: si tu peux écrire une fonction, n'écris pas un alias.
PAS BIEN:
alias tawk="awk -F'\t'"
BIEN:
tawk() awk -F'\t' "$@"
c'est plus facile à lire mais surtout: si tu ne sais pas qu'alias est en fait un préprocesseur, tu risques de faire des trucs étranges.
annonce() { echo "I will $*" "$@" }
annonce us mc
ca marche avec: us() getent passwd mais pas avec: alias us='getent passwd'
parce que l'extension de l'alias se fait avant l'interpolation
Ok, je commence à saisir…
Ce ne serait pas très compliqué d'ajouter un fichier contenant https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/git.plugin.zsh
oh misère … que des aliases … et en plus: tu les utilises vraiment tous? perso j'ai tendance à respecter un des 7 conseils de productivité de Bram Moolenar: n'ajouter du code que quand il résoud un truc qui m'irrite régulièrement.
J'en utilise une grosse moitié, et j'en ai ajouté plusieurs autres (pour enchaîner une succession usuelle de commande, du genre retourner sur main, faire un fetch de toutes les branches, un pull de main, virer les branches locales disparues sur leur remote après un merge, etc.)
mais oui: tu peux très bien avoir un fichier ~/.zsh/rc/omz-git que tu chargerais comme suit dans ton .zshrc
En fait depuis le post j'ai testé pour voir, et c'est vrai que c'est assez simple d'avoir un ~/.zshrc avec ce qu'a généré compinstall et zsh-newuser-install, quelques setopt de base, puis à la fin un # (c'est dans ce fichier que l'on fera le source des ~/.zsh/*.zsh qui nous intéressent sur cette machine) if [ -f ~/.zsh/_local.zsh ]; then source ~/.zsh/_local.zsh else # on source juste le prompt [ -f ~/.zsh/prompt.zsh ] && source ~/.zsh/prompt.zsh fi et dans le ~/.zsh_local je liste ce que je veux sourcer parmi ce que j'ai mis dans mon ~/.zsh (qui peut du coup devenir un dépôt git), dont des plugins omz qui m'intéressent, z, git-prompt… Et je peux mettre à jour les plugins piqués à omz ou ailleurs [1] à chaque upgrade debian, faire un diff/merge sur 4~5 fichiers tous les deux ans ça reste gérable (ça vaut pas le coup de faire des subrepo pour si peu, mieux vaut à la limite un script qui fait du wget sur les quelques fichiers concernés puis lance un git diff, pour vérifier les changement avant de commit ces modifs). [1] vu par ex https://github.com/zsh-users/zsh-completions/tree/master/src -- Daniel Avec les philosophes il ne faut jamais craindre de ne pas comprendre. Il faut craindre énormément de comprendre. Paul Valéry
Le 28/06/23 à 23:57, Daniel Caillibaud <ml@lairdutemps.org> a écrit :
En fait depuis le post j'ai testé pour voir
J'en ai fait un dépôt public https://git.sesamath.net/sesamath/zsh C'est pas encore ça (l'ajout du dossier dans fpath[1] ne semble pas pas fonctionner comme ce que j'avais compris), mais ça fait le job (pour mes besoins). [1] https://git.sesamath.net/sesamath/zsh/-/blob/main/_zshrc#L13 -- Daniel Quand l'homme aura pollué et empoisonné tous les cours d'eau, mers et océans, Qu'il aura détruit toutes les forêts et tué tous les animaux, Il se rendra compte qu'il ne peut manger l'argent. I Guayazu
participants (2)
-
Daniel Caillibaud
-
Marc Chantreux