Bonjour à tous,
j'imagine que je ne suis pas le seul ici à utiliser pour les liens html
dans les mails, la notation 'lynx' iirc, c'est à dire l'utilisation de
[N] définie en fin de mail pour l'utilisation de lien externes.
Est ce quelqu'un se sentrait motivé pour écrire une fonction vim (?) qui
se charge de génrérer les [N] (i.e. on met effectivement [N]) c'est à
dire d'incrémenter une valeur en partant de 1 et de génerer le :
References
[1]
[2]
il n'y aurait alors plus qu'a copier les url..
ca motive quelqu'un ? :p (Marc... au hasard ? :)
Merci
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group
salut,
je viens de faire deux modifs dans la meme page (deux commits distincts)
et une seule m'est reportée dans le RSS. Est-ce normal ?
cordialement,
mc
--
t�l�phone : 03.90.24.00.19
courriel : marc.chantreux(a)ulpmm.u-strasbg.fr
---------------------------------------
Salut,
En allant chercher sur le wiki de la doc pour zsh (si ! si ! votre
prosélytisme paye !) j'ai vu un lien vers cmd.exe. Je me suis dit
"qu'est-ce qu'ils peuvent bien dire de ca ???".
Bon, le wiki est rapide d'ordinaire (d'ailleurs la page zsh s'affiche
bien par exemple), mais la page concernant cmd.exe ... ne s'affiche
pas. Un peu comme si le wiki ne voulait pas me la montrer. Serait-il
raciste envers le shell windows ?
Jeremy
--
Linux Registered User #317862
Linux From Scratch Registered User #16571
Please do not send me .doc, .xls, .ppt, as I will *NOT* read them.
Please send me only open formats, as OpenDocument or pdf.
Bonjour,
Le module zsh/system fourni une fonction sysread (un read simplifié)
mais qui permet l'utilisation d'un timeout (en secondes).
Exemple :
% zmodload zsh/system
% param="default" ; echo -n '> ' ; sysread -t 3 param ; echo $param
hello (entrée utilisateur)
hello
% param="default" ; echo -n '> ' ; sysread -t 3 param ; echo $param
> zsh: exit 4
default
Au cas où...
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group
Pour des commandes comme vi(m), il est inutile de proposer la complétion
sur des fichiers binaires, comme par exemple les .o
Pour cela, il suffit de faire :
zstyle ':completion:*:*:vim:*' ignored-patterns '*.o'
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group
salut a tous,
Je viens de lire la news linuxfr. C'etait une bonne id�e pour faire de
la pub a la liste mais si je voulais troller, il y a de belles
opportunit�s (remarquez, on resterait dans l'ambiance le dlfp).
la phrase suivante est, � mon humble avis, une *enorme* erreur :
"donc plus besoin de faire appel � des outils externes comme grep, sed,
cut, awk, etc"
car si le gain est assez flagrant sur des donn�es de toutes petites
tailles, il n'en faut pas beaucoup (en terme de volume de donn�es tant
en terme de traitements) pour que les shells (zsh inclus) nous
rappellent par leurs lenteurs qu'ils sont mal adapt�s � ce genre de
travaux.
"ceux qui pensent le contraire sont peut-�tre encore un peu jeunes" ;)
a+
marc
--
t�l�phone : 03.90.24.00.19
courriel : marc.chantreux(a)ulpmm.u-strasbg.fr
---------------------------------------
salut a tous,
Mes libs .crites en pur zsh commencent a grossir et il est temps pour
moi de faire un effort de documentation et de tests de mes fonctions.
Je n'ai trouv. aucun outils pour ces deux travaux qui soit adapt.s au
shell. Avant de commencer a .crire mes propres outils (en perl!), je
fais appel a vos m.moires/signets pour savoir si il existerait qqchose
pour moi.
cordialement
mc
--
t�l�phone : 03.90.24.00.19
courriel : marc.chantreux(a)ulpmm.u-strasbg.fr
---------------------------------------
Salut,
Lu sur la page tableau de zsh:
% lists=(global www asyd guest)
% lists[(r)global]=''
% echo $lists
www asyd guest
c'est une erreur ! l'élément est vide mais pas supprimé !
explications :
on crée le tableau et on affiche.
% a=( un test bete )
% index=0; for el ( $a ) { print $(( ++index )) $el }
1 un
2 test
3 bete
j'affecte une chaine vide a a[2]
j'affiche
% a[2]=''
% index=0; for el ( $a ) { print $(( ++index )) $el }
1 un
2 bete
on peut croire que $a n'a plus que 2 elements, ce qui est faux :
% index=0; for el ( "$a[@]" ) { print $(( ++index )) $el }
1 un
2
3 bete
en fait, c'est le contexte d'expansion de a qui change, ce que la
boucle for recupere est une expansion de $a et non $a lui-même.
dans le guide zsh, chapitre 15.2.2 ( Array Element Assignment ), on
peur lire :
To delete an element of an ordinary array, assign `()' to that element.
To delete an element of an associative array, use the unset command:
unset "NAME[EXP]"
donc :
% a[2]=()
% index=0; for el ( "$a[@]" ) { print $(( ++index )) $el }
1 un
2 bete
conclusion : qui corrige ?
marc
--
t�l�phone : 03.90.24.00.19
courriel : marc.chantreux(a)ulpmm.u-strasbg.fr
---------------------------------------
Bonjour à tous,
comme vous le savez sans doute, zsh offre de nombreuses fonctions de
pattern matching qui permettent - dans des cas relativement simples - de
se passer des outils tel que awk, sed, etc..
Je vous propose donc de découvrir ces fonctionnalitées via un petit
exemple pratique.
Soit le fichier suivant :
,------ /etc/zones/index
| # Copyright 2004 Sun Microsystems, Inc. All rights reserved.
| # Use is subject to license terms.
| #
| # ident "@(#)zones-index 1.2 04/04/01 SMI"
| #
| # DO NOT EDIT: this file is automatically generated by zoneadm(1M)
| # and zonecfg(1M). Any manual changes will be lost.
| #
| global:installed:/
| tools:installed:/zones/tools:00000000-0100-0000-2879-0408fb610508
| databases:installed:/zones/databases:00000000-0100-0000-2879-0408fb610508
| public-ejbca:installed:/zones/public-ejbca:00000000-0100-0000-e078-0408fb610508
| public:installed:/zones/public:00000000-0100-0000-c078-0408fb610508
`---
Mon objectif est d'obtenir la liste des premiers mots des lignes non
commentées (c'est à dire global, tools, databases, etc...). Pour y
parvenir, j'ai choisi de créer un tableau de lignes, supprimer les
lignes qui contiennent # au début, puis supprimer des lignes ce qui suit
le premier :
comme on l'a vu ce matin, l'utilisation de ("${(f)$(< fichier)}")
permet de créer un tableau de lignes à partir du fichier donné. En fait,
je rajoute simplement deux substitutions au résultat obtenu.
La première est ##\#* qui permet de supprimer tout ce qui suit #* (la
variable obtenu par ("${(f)$(< fichier)}") étant déjà un tableau, ca
supprime les lignes commentés), notez que # à une signification (1), il
faut donc escaper mon caractère #, et comme je veux supprimer toute la
ligne, je rajoute *, ce qui donne donc ${name##\#*}
La seconde est //:* (2) (sous entendu /:*/) qui permet de supprimer tout
ce qui suit :*
Ce qui pourrait donc nous donner quelque chose du genre :
,------
| % lines=("${(f)$(< /etc/zones/index)}")
| % nocomments=(${lines##\#*})
| % zones=(${nocomments/:*/})
| % echo $zones
| global tools databases public-ejbca public
`---
Ce qui nous donne en oneliner :
,------
| % zones=(${${(a)"${(f)$(< /etc/zones/index)}"##\#*}/:*})
| % print -a $zones
| global tools databases public-ejbca public
`---
Et voilà ! pas de fork, rien que du pur zsh, et du français loin d'être
pur, lui :) J'espère que cela vous sera utile.
Notes (section 13, mais vous commencez à en avoir l'habitude :)
1) ${name#pattern}, ${name##pattern}
If the pattern matches the beginning of the value of name, then
substitute the value of name with the matched portion deleted;
otherwise, just substitute the value of name. In the first form, the
smallest matching pattern is preferred; in the second form, the largest
matching pattern is preferred.
2) ${name/pattern/repl}, ${name//pattern/repl}
Replace the longest possible match of pattern in the expansion of
parameter name by string repl. The first form replaces just the first
occurrence, the second form all occurrences.
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking Solaris User Group