Le mercredi 15 janvier 2003 à 15:58, Luc Hermitte a écrit:
> Salut,

Lut,

> Je suis intrigué par le titre de ton message ... Pourquoi continues-tu à
> utiliser des autocommands ? Procéder avec les mail ftplugins est bien
> plus propre.

oki oki... je promet que je vais me pencher sur la
question...mais j'ai pas trop le courage ;)

> * On Wed, Jan 15, 2003 at 01:18:06PM +0100, Sébastien MICHEL <[EMAIL PROTECTED]> 
>wrote:
> >   Je suis entrain de revoir mes fonction de remise en forme
> > de mail.
> > Voici ce que j'ai pour l'instant
> > map ;vide :0<CR>/^$<CR>
> > map ;par ;vide<CR>:.,$normal vgq<CR>
> > 
> > voici ce que je veux faire:
> > map ;para ;vide<CR>/^.\{75\}.\+$<CR>v/\.$<CR>gqj
> 
> Utilises &tw plutot que 75. Comme ça si un jour tu veux changer de
> valeur ou en faire profiter d'autres personnes, tu n'auras rien d'autre
> à faire qu'un :
>     :set tw=72

marche pas il me fait: "Syntax error in \{...}"

> Sinon, j'imagine que tu considères que les paragraphes sont délimités par
> des points et non par des lignes vides.

maintenant voici comment je fais:
map ;par ;vide<CR>:.,$g/^.\{75\}.\+$/normal V)gq<CR>
autocmd BufRead .followup,.article*,.letter,/tmp/mutt*,*.txt normal ;par

> > mais j'aimerai le faire dans une boucle du genre
> > while /^.\{75\}.\+$
> >     ;para
> > endwhile
> 
> > L'ideale serai de ne pas touche ma signature aussi... ;)
> > je vais essayer de remplacer ce while par un g// pour eviter
> > la creation d'une fonction mais c'est pas gagné ;p
> 
> Faire des fonctions n'a rien de sale. C'est bien plus lisible et
> maintenable que les mappings 100 vi (sans 'm').
> Pourquoi pas un truc du style (pas testé):

J'ai pas dis que c'était sale... Je voulais juste evité car
je n'ai pas assez de connaissance en script vim... mais avec
ton exemple ça ira mieux :)

> function s:Toto()

A quoi sert le "s:" d'après ce que j'ai compris tu n'en a
pas besoin si tu appelle ta fonction avec une majuscule ?

>     let pos = line('.')
>     normal! G
>     let fin = search('^-- $', 'b')
>     if fin <= 0 | let fin = line('$') | endif
>     exe pos
>     while pos < fin
>       let pos = search('^.\{'.&tw.'}.\+$', 'W') 
>       " Sans le 'W', la function pourrait boucler et revenir à la
>       " section des entêtes. Chose que fait aussi '/' si 'wrapscan'
>       " n'est pas mis à faux.
>       if pos <= 0
>           break 
>       endif
>       :normal! gq/\.$j
>       " forme simplifiée sans passer par 'v' vu que 'gq' nous laisse
>       " dans l'/operator-pending mode/, cf |motion.txt|
>       " :normal! gq'} 
                 ^

' est vraiment utile ?

>       "   +--> pour: jusqu'à la fin du paragraphe plutot que le point
>       "        suivant. Tout le monde ne pense pas à mettre des points
>       "        à la fin ses phrases. Sauter des lignes est plus
>       "        fréquent.
>     endwhile
> endfunction
> 
> :nnoremap ;doit gg'}:call <sid>Toto()<cr>
                            ^^^^^ ???

Cool... Tu as de la doc pour apprendre a faire des scripts
vim je n'en trouve pas... a part regarder les scripts des
autres ;).

> Par contre, c'est totalement inadapté à des messages comme celui-ci qui
> contient du code.

Pour quel raison c'est inadequat ?

Merci .

-- 
@+, Sébastien aka. MichouX 
"J'ai réalisé que j'étais un fan de Vim quand je l'utilisais 
pour éditer mon .emacs", GnuVince

Répondre à