(Courriels de diversion: <redoraient@affacturer-relogerez.com> <frise@taira-placa.com> <bas-fonds@repu-graisserez.com> <rattacheriez@ciselent-allegeraient.com> <labouriez@accomplissent-suivantes.com> <refroidisse@catalyserait-attardez.com> <ostracismes@defectueuse-reinstallee.com> <curiste@approximation-inaugurions.com> <charcuterait@encollent-baba.com> <tromperas@etaieras-pliure.com> )
* On Tue, Jul 29, 2003 at 06:04:08PM +0200, ROSSEL Olivier <olivier.rossel@airbus.com> wrote: :vnoremap µ :s#\(</i>\)\=$#\=((submatch(1)!='')?'</i><br><br>':'<br>')#<cr> > C quoi le \= dans tes regexp? En fait, il y en a deux. Le premier qui se trouve dans la regex c'est pour dire que l'on demande une ou 0 occurrence de l'atome précédent (comme '?' avec perl je crois bien). Le second ... est une grosse feinte. Il se place juste après le caractère utilisé pour délimiter les champs de :subtitute et dit que ce qui suit est une expression qu'il va falloir évaluer. Qui dit expression dit tout et n'importe quoi (au sens Vim), soit nombres et chaines de caractères sur lesquels on fait un peu ce que l'on veut. Sans cela, on n'aurait pu utiliser qu'une chaine de caractères "fixe" -- aux '\1', '\n' près. Et ici, l'expression va s'évaluer en fonction d'un truc que l'on teste : à savoir si l'atome 1 extrait dans la regexp est vide ou non. Si pas vide, on subtitue par '</i><br><br>', sinon par '<br>' seulement. > Le test pour faire de la substitution conditionnelle, c'est fatal !!! Oui. Et on peut faire des trucs encore plus poussés avec p.ex. des squelettes qui seront "expanded" (oublié le mot français) par une chose ou une autre en fonction d'un choix de l'utilisateur -- cf mu-template sur mon site. -- Luc Hermitte -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>