Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Couper les lignes dans vi

13 réponses
Avatar
Remi Moyen
Salut,

Ch'uis pas trop sûr que ce soit le meilleur endroit pour causer de vi,
mais bon, y'a surement des gens qui maitrisent...

J'aimerais qu'un texte que je tape soit proprement formaté avec des lignes
de pas plus de 80 caractères. Pour couper les lignes au fur et à mesure de
la frappe, un coup de "set textwidth=79" (pour avoir un caractère de
marge, pour le curseur...) marche très bien.

Mais si j'édite ensuite mon texte, en rajoutant des choses, ben la ligne
n'est pas coupée. Donc, existe-il un moyen de re-justifier un paragraphe
en remettant toutes les lignes à 80 caractères maxi ?

Et, cerise sur le gateau, existe-il une telle commande qui ferait ça en
prenant en compte des commandes LaTeX pour séparer les paragraphes ?

(par exemple, quand je tape :

\begin{itemize}
\item un texte très long qui occuppe plus de 80 caractères, rajoutez-en si
il en manque ;
\item un autre texte très long, enfin pas tant que ça.
\end{itemize}

je veux que chaque \item soit considéré comme un paragraphe différent, et
que, bien qu'il n'y ait pas de saut de ligne ailleurs, il n'aille pas
considérer ces 5 lignes comme un seul paragraphe)

Enfin, je précise que je veux vraiment que ce soit des lignes séparées,
avec saut de ligne à la fin, et pas des coupures "graphiques" des lignes,
comme il y en a avec "set wrap".

Merci !
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

10 réponses

1 2
Avatar
Pascal Bourguignon
Remi Moyen writes:

Salut,

Ch'uis pas trop sûr que ce soit le meilleur endroit pour causer de vi,
mais bon, y'a surement des gens qui maitrisent...

J'aimerais qu'un texte que je tape soit proprement formaté avec des
lignes de pas plus de 80 caractères. Pour couper les lignes au fur et
à mesure de la frappe, un coup de "set textwidthy" (pour avoir un
caractère de marge, pour le curseur...) marche très bien.

Mais si j'édite ensuite mon texte, en rajoutant des choses, ben la
ligne n'est pas coupée. Donc, existe-il un moyen de re-justifier un
paragraphe en remettant toutes les lignes à 80 caractères maxi ?


Moi, je faisais:

:1,$!fmt


Et, cerise sur le gateau, existe-il une telle commande qui ferait ça
en prenant en compte des commandes LaTeX pour séparer les paragraphes ?

(par exemple, quand je tape :

begin{itemize}
item un texte très long qui occuppe plus de 80 caractères,
rajoutez-en si il en manque ;
item un autre texte très long, enfin pas tant que ça.
end{itemize}

je veux que chaque item soit considéré comme un paragraphe différent,
et que, bien qu'il n'y ait pas de saut de ligne ailleurs, il n'aille
pas considérer ces 5 lignes comme un seul paragraphe)

Enfin, je précise que je veux vraiment que ce soit des lignes
séparées, avec saut de ligne à la fin, et pas des coupures
"graphiques" des lignes, comme il y en a avec "set wrap".


Pourquoi n'utilises tu pas emacs ?!

--
__Pascal Bourguignon__ http://www.informatimago.com/

In a World without Walls and Fences,
who needs Windows and Gates?

Avatar
Laurent Wacrenier
Pascal Bourguignon écrit:
Pourquoi n'utilises tu pas emacs ?!


Laisse le, s'il préfère utiliser un debugeur de texte plutôt qu'un
éditeur...

Avatar
Etienne de Tocqueville
Remi Moyen a écrit sur fr.comp.os.unix :

Ch'uis pas trop sûr que ce soit le meilleur endroit pour causer de vi,
mais bon, y'a surement des gens qui maitrisent...


Ne sachant pas non plus trop où on parle de vi, je réponds ici ;-)

J'aimerais qu'un texte que je tape soit proprement formaté avec des
lignes de pas plus de 80 caractères. Pour couper les lignes au fur et à
mesure de la frappe, un coup de "set textwidthy" (pour avoir un
caractère de marge, pour le curseur...) marche très bien.


Moi, j'ai mis "twr", mais ça doit être pareil que "textwidthr"

Mais si j'édite ensuite mon texte, en rajoutant des choses, ben la ligne
n'est pas coupée. Donc, existe-il un moyen de re-justifier un paragraphe
en remettant toutes les lignes à 80 caractères maxi ?


Pour reformatter après coup en fonction de "tw=xx", une solution est de
faire "v" au début de la zone, de sélectionner la zone avec les flèches,
et des faire "gq". Il y a peut-être une autre solution, mais c'est la
seule que je connais

Et, cerise sur le gateau, existe-il une telle commande qui ferait ça en
prenant en compte des commandes LaTeX pour séparer les paragraphes ?


Pour la cerise, aucune idée !

Avatar
Remi Moyen
On Wed, 9 Mar 2005, Pascal Bourguignon wrote:

Mais si j'édite ensuite mon texte, en rajoutant des choses, ben la
ligne n'est pas coupée. Donc, existe-il un moyen de re-justifier un
paragraphe en remettant toutes les lignes à 80 caractères maxi ?


Moi, je faisais:

:1,$!fmt


Ah, bien ! Merci.

Mais ça ne prend pas en compte des définitions de paragraphe complexes.
Bof, tant pis.

Pourquoi n'utilises tu pas emacs ?!


Parce que ça fait des années que je suis habitué à vi. Parce que je n'ai
pas envie de perdre du temps à m'habituer à un nouvel outil, aussi
puissant soit-il, si mon outil actuel fait ce que je veux (*). Parce que
pour chaque personne qui me demande pourquoi je n'utilise pas emacs, y'en
a une autre qui me félicite de ne pas l'utiliser :-)

(*) ce qui est le cas, à 99 %.
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."


Avatar
Loïc Restoux
Le 09 mar, à 16:21, Remi Moyen papotait :
J'aimerais qu'un texte que je tape soit proprement formaté avec
des lignes de pas plus de 80 caractères. Pour couper les lignes
au fur et à mesure de la frappe, un coup de "set textwidthy"
(pour avoir un caractère de marge, pour le curseur...) marche
très bien.


J'ai une manip trouvée sur le net (mais je ne sais plus trop où)
pour justifier des fichiers textes sous vi en utilisant le module
Text::Autoformat en Perl. Je l'utilise essentiellement pour
poster sur Usenet :

map ff gg!Gperl -MText::Autoformat -e'autoformat {all=>1, justify
=> "full" }'<CR>G

Ça reformate et justifie tout le buffer vi.

map fm 0G/^$<CR><C-M>V/^-- $/-1<CR>!perl -MText::Autoformat -
e'autoformat {all=>1, justify => "full", right => 65 }'<CR>G

Ça reformate la partie message d'un message (lorsque l'on utilise
mutt ou slrn par exemple) en gardant les en-têtes et la
signature (et en l'occurrence, c'est réglé à 65 colonnes).

D'ailleurs, le message que vous lisez actuellement est remis en
forme par ces macros. :)

--
Y'en a aussi

Avatar
Loïc Restoux
Le 09 mar, à 18:47, Loïc Restoux papotait :
Ça reformate la partie message d'un message


Faut que j'arrête de poster en sortant du boulot le soir.

--
Y'en a aussi

Avatar
cedric
Pascal Bourguignon wrote:
Pourquoi n'utilises tu pas emacs ?!


emacs, c'est cet éditeur qui refuse d'inserer un TAB entre un # et un
define en C ?

:-)

Avatar
cedric
Avec vim :

:set textwidthy
:set formatoptions=ta

le t veut dire de formater le texte (c pour les commentaires), le a
c'est le mode "automatique" pour formater tout le paragraphe à chaque
ajout / effacement de caractère.

Que reste t-il à Word, on se le demande ! :)
Avatar
Fred
Parce que ça fait des années que je suis habitué à vi. Parce que je n'ai
pas envie de perdre du temps à m'habituer à un nouvel outil, aussi
puissant soit-il, si mon outil actuel fait ce que je veux (*). Parce que
pour chaque personne qui me demande pourquoi je n'utilise pas emacs,
y'en a une autre qui me félicite de ne pas l'utiliser :-)


Pas mieux... ;-)

Avatar
Remi Moyen
On Wed, 9 Mar 2005, cedric wrote:

Avec vim :

:set textwidthy
:set formatoptions=ta

le t veut dire de formater le texte (c pour les commentaires), le a c'est le
mode "automatique" pour formater tout le paragraphe à chaque ajout /
effacement de caractère.


Wow. Parfait (ou presque, mais bon, c'est déjà très bien).

Merci.

Que reste t-il à Word, on se le demande ! :)


Euh, d'être présent même sur les ordis des copains qui ne connaissent rien
à l'informatique :-( (quoique, y'a toujours au moins Acrobat Reader, mais
on peut pas modifier) ?
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

1 2