Page 1 sur 2

[zsh] Votre nouveau shell ?

Publié : dim. 03 févr. 2008, 00:56
par warnaud
Récupération du sujet
http://forums.archlinux.fr/topic1396-15.html qui dérivait :) (par ma faute ..; je me pardonne :p )

Hors-sujet: oui mais peut-on avoir des prompts de geek sous zsh :P ?

Publié : dim. 03 févr. 2008, 02:46
par vincentxavier
Le thread n'est-il pas en train de déraper ?

Cela dit, je n'étais pas sur de pouvoir récupérer une partie de la regexp en bash !

Publié : dim. 03 févr. 2008, 03:16
par _alexmyself
c'est de la daube en barquette bash quand meme....

là je suis en plein dedans, et a vrai dire si c'était pas la grosse base du monde linux ba y'a longtemps qu'il se serait pris un coup de fusil....

autant ca peut etre simple a lire autant c'est l'angoisse a écrire quoi....

je l'ai catalogué au rang des langages systématiques: t'écris, t'essaies, ça marche pas

honnetement je sait pas a quoi vous jouez comme langages mais moi j'ai rien trouvé de plus souple/peinard que du php....mais de loin...ca s'écrit facilement, ca se relit facilement, ca pardonne un max...y'a pas photo....
après je dit pas, c'est interprété, c'est lent, c'est pauvre...

quitte a glisser sur ce topic, c'est quoi votre langage préféré et pourquoi ?

Publié : dim. 03 févr. 2008, 04:53
par bapt
warnaud a écrit :Hors-sujet: oui mais peut-on avoir des prompts de geek sous zsh :P ?
Oui et même beaucoup plus que sous bash : déjà ton prompt est découpé en 5 parties possibles :
1/ partie gauche de ta ligne,
2/ partie droite de ta ligne (qui va disparaitre si ce que tu tapes atteind dépasse une ligne)
3/ partie intéraction : Quand le shell te parle (correction automatique de ta frappe par exemple)
Deux autres dont je ne me souvient pas l'utilité de tête. En gros chez moi ça donne PROMPT ( PROMPT2 PROMPT3 PROMPT4 PROMPT_COMMAND) 5 variables d'environnement à positionner.

(Il est toujours possible de rester sobre avec un simple PS1 à la bash :))

Enfin ça c'est pour la partie basic, si tu eux vraiment aller plus loin dans ton prompt, il y a un sous système qu'il lui est dédié, et la tu peux te lacher à coup de promptinit pour lancer le sous-système, et la tu obtiens des thèmes, avec une dixaine disponible par défaut.

M'enfin la le thread dérive, par ma faute.... Je propose que ceux qui sont intéressé par plus d'info zsh ouvrent un thread spécifique à cet effet ou que les modérateurs split ce thread pour le laisser vivre sa vie.

Publié : dim. 03 févr. 2008, 20:57
par vincentxavier

Publié : dim. 03 févr. 2008, 21:10
par nik11
Des prompts de geek, il y en a à la pelle :D tape prompt -l et tu auras une liste des prompts de base, (essaie prompt elite :) si tu veux vraiment un prompt de geek).

Publié : lun. 04 févr. 2008, 07:51
par FredBezies
Mouais, il a quoi de plus que bash pour un usage basique ? ;)

Publié : lun. 04 févr. 2008, 09:07
par bapt
Il faudrait déjà définir, un usage basique.

Mais chez moi il me corrige automatiquement la frappe par exemple,
Quand une ligne de commande est érronnée il me propose de me la corrigée.

Iil y a le génialissime run-help qui permet d'accéder au man d'une commande que l'on est en train de taper, sans pour autant avoir à supprimer sa ligne en cours.

par exemple :
yaourt -Sy[Esc-H]
Me donne le man yaourt et quand je quitte le man mon prompt est :
yaourt -Sy

AUTOCD, je me déplace dans les rep sans avoir a taper cd
AUTOMENU : une menu pour la completion
les alias suffix et la gestion des mimes-types : ./toto.odt me lance oowriter toto.odt par exemple.
ls *~*.o qui permet de lister tout ce qui n'est pas .o
rm **/*.c qui me fait un find . -name *.c -exec rm {}\;


Bref beaucoup, beaucoup de choses.

Publié : lun. 04 févr. 2008, 10:59
par Skunnyk
les quelques fois que j'ai testé zsh (sur system rescue cd), j'ai trouvé ca tres puissant, niveau auto completion, correction, etc .. même pour un usage basique! (je n'ai jamais scripté en zsh).
Il faudrait que je m'y penche un de ces jours :)
Au passage, une depeche de bapt sur linuxfr sur la sortie de nouvelles version de zsh : http://linuxfr.org/2008/02/03/23650.html

Publié : lun. 04 févr. 2008, 11:24
par warnaud
Y'aurait moyen d'avoir un zouli wiki sur zsh?
Je l'ai installé, j'ai bourriné mon prompt :)
Mais bon je suis pas trop allé plus loin les astuces genre Esc+H ça sent le truc énorme !

Petite question en aparté, dans la doc sur zsh ils disent de se faire un /etc/zprofile j'ai fais un vieux lien vers /etc/profile (car ça m'étonnerait que dans les scripts les 2 fichiers soient pris en compte :D) est-ce une connerie?

J'ai regardé ici pour le wiki : http://wiki.archlinux.org/index.php/Zsh

Publié : lun. 04 févr. 2008, 11:25
par bapt
Skunnyk a écrit :Au passage, une depeche de bapt sur linuxfr sur la sortie de nouvelles version de zsh : http://linuxfr.org/2008/02/03/23650.html
cf 4. posts plus haut :)

Publié : lun. 04 févr. 2008, 13:25
par IdoMcFly
perso j'utilise zsh depuis... 2001 à l'école, puis chez moi qd je suis passé à linux. Bon ma conf est repompée de celle d'un pote donc je ne la maitrise pas. mais un jour j'irais fouiner un peu :)

Publié : mar. 05 févr. 2008, 22:43
par warnaud
Bon, je m'amuse bien, j'ai choisi le prompt adam2 :) (les autres apparaissant bizarrement, surement un délire de fonts)
J'ai encore 2-3 délire genre Fin / Home qui affichent un ~

Edit résolu avec dans ~/.zshrc:

Code : Tout sélectionner

# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[5~" beginning-of-history
bindkey "\e[6~" end-of-history
bindkey "\e[3~" delete-char
bindkey "\e[2~" quoted-insert
bindkey "\e[5C" forward-word
bindkey "\eOc" emacs-forward-word
bindkey "\e[5D" backward-word
bindkey "\eOd" emacs-backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
bindkey "^H" backward-delete-word
# for rxvt
bindkey "\e[8~" end-of-line
bindkey "\e[7~" beginning-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
# for freebsd console
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
# completion in the middle of a line
bindkey '^i' expand-or-complete-prefix

Publié : mer. 06 févr. 2008, 09:59
par milambert
warnaud a écrit :Bon, je m'amuse bien, j'ai choisi le prompt adam2 :) (les autres apparaissant bizarrement, surement un délire de fonts)
je me demande si ce n'est pas parce que zsh n'est pas compilé avec le support de l'unicode.

Publié : mer. 06 févr. 2008, 10:47
par bapt
Voila le PKGBUILD zsh avec support de l'unicode en version 4.3.5

Code : Tout sélectionner

# $Id: PKGBUILD,v 1.22 2007/07/13 05:57:54 eric Exp $
# Maintainer: aurelien <aurelien@archlinux.org>
# Contributor: Jochem Kossen <j.kossen@home.nl>
pkgname=zsh
pkgver=4.3.5
pkgrel=1
pkgdesc="A very advanced and programmable command interpreter (shell) for UNIX"
arch=('i686' 'x86_64')
url="http://www.zsh.org/"
license=('custom')
depends=('ncurses')
install="zsh.install"
source=(ftp://ftp.zsh.org/pub/$pkgname-$pkgver.tar.bz2 usr_zsh.sh)
md5sums=('db0d4b71da8e5877fa1e29d4cea38b8c'
         '7b7afc638a9274cc16a3546ca2fff2ff')

build() {
  cd $startdir/src/$pkgname-$pkgver
  ./configure --prefix=/usr --bindir=/bin \
    --enable-etcdir=/etc/zsh \
    --enable-zshenv=/etc/zsh/zshenv \
    --enable-zlogin=/etc/zsh/zlogin \
    --enable-zlogout=/etc/zsh/zlogout \
    --enable-zprofile=/etc/profile \
    --enable-zshrc=/etc/zsh/zshrc \
    --enable-maildir-support \
    --with-curses-terminfo \
    --enable-multibyte \
    --enable-zsh-secure-free
  make || return 1
  make DESTDIR=$startdir/pkg install

  install -D -m 755 $startdir/src/usr_zsh.sh $startdir/pkg/usr/bin/zsh
  install -D -m644 LICENCE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
}
PS: Non il n'ira pas sur mon AUR, et ce ne sera pas non plus mis à jour avant des plombes puisque ce n'est pas un bug.
PS2 : Oui je suis aigri et oui ça me passera :)

Publié : mer. 06 févr. 2008, 10:50
par bapt
warnaud a écrit :Bon, je m'amuse bien, j'ai choisi le prompt adam2 :) (les autres apparaissant bizarrement, surement un délire de fonts)
Ne te bat pas avec tes fonts, c'est un problème d'unicode, bah oui le package zsh officiel ne supporte pas l'unicode cf mon post précédent, d'ailleurs pour ceux qui veulent jouer avec le nouveau support ncurses préfèreront utiliser aussi le PKGBUILD posté ci-dessus.

Publié : mer. 06 févr. 2008, 12:59
par warnaud
Oki :)
Je peux le compiler et le mettre sur archlinuxfr?
On t'as pas filé l'accès (d'ailleurs)?

Publié : mer. 06 févr. 2008, 13:09
par bapt
warnaud a écrit :Oki :)
Je peux le compiler et le mettre sur archlinuxfr?
On t'as pas filé l'accès (d'ailleurs)?
Oui j'ai les accès, mais je l'ai pété :)

Biensûr que tu peux le mettre sur archlinuxfr, mais attends je suis en train de le modifié car il y a plusieurs choses qui me gêne avec ce PKGBUILD, je reviens avec une nouvelle version du PKGBUILD cet après midi.

Publié : mer. 06 févr. 2008, 14:53
par bapt
Voila le nouveau PKGBUILD :

Code : Tout sélectionner

pkgname=zsh
pkgver=4.3.5
pkgrel=1
pkgdesc="A very advanced and programmable command interpreter (shell) for UNIX"
arch=('i686' 'x86_64')
url="http://www.zsh.org/"
license=('custom')
depends=('ncurses')
install="zsh.install"
source=(ftp://ftp.zsh.org/pub/$pkgname-$pkgver.tar.bz2 usr_zsh.sh)
md5sums=('db0d4b71da8e5877fa1e29d4cea38b8c'
         '7b7afc638a9274cc16a3546ca2fff2ff')

build() {
  cd $startdir/src/$pkgname-$pkgver
  ./configure --prefix=/usr --bindir=/bin \
    --enable-etcdir=/etc/zsh \
    --enable-zshenv=/etc/zsh/zshenv \
    --enable-zlogin=/etc/zsh/zlogin \
    --enable-zlogout=/etc/zsh/zlogout \
    --enable-zprofile=/etc/profile \
    --enable-zshrc=/etc/zsh/zshrc \
    --enable-maildir-support \
    --with-term-lib="ncursesw" \
    --enable-multibyte \
    --enable-function-subdirs \
    --enable-zsh-mem \
    --with-tcsetpgrp \
    --enable-zsh-secure-free
  make || return 1
  make DESTDIR=$startdir/pkg install

  install -D -m 755 $startdir/src/usr_zsh.sh $startdir/pkg/usr/bin/zsh
  install -D -m644 LICENCE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
}
Ce qu'il y a de neuf par rapport à la version officielle archlinux :
- prise en compte de l'unicode
- prise en compte des allocations mémoires spécifiques zsh (=> moins de conso mémoire) pour cette partie je ne suis pas certain que ce soit efficace sous linux, mais au pire c'est identique, au mieux ca consomme moins, donc vaut mieux le mettre
- Prise en compte du découpage officiel en sous répertoires des fonctions , plutôt que de tout mettre (completion, fonctions) dans un seul et unique répertoire incompréhensible.
- Prise en compte du nouveau système de détection des lib de terminal (ncurses/terminfo) ça ne change rien pour l'utilisateur final, mais autant prendre la méthode officielle.

Voila avec cette version vous devriez pouvoir bien jouer avec un zsh propre, il ne manque plus que les expressions régulière, mais ça rajoute une dépendance à pcre, et donc je pense que l'omission de cette fonctionnalité est volontaire.

EDIT: et comme je ne suis pas top rancunier, j'ai comment ajouté une tâche au flyspray : http://bugs.archlinux.org/task/9475 feature request ce coup ci, puisque ce ne sont pas des bugs.

Publié : mer. 06 févr. 2008, 16:32
par warnaud
Ok je le mets sur le repo ce soir.

Merci