73 votes

Empêcher Vim d'envelopper les lignes au milieu d'un mot

Après avoir fait :set wrap Vim enveloppe les lignes plus longues que la fenêtre.

Mais est-il possible de faire en sorte que Vim passe à une nouvelle ligne uniquement sur les espaces vides, et non au milieu d'un mot ?

2 votes

91voto

Cat Plus Plus Points 53385

:help wrap

Cette option modifie la façon dont le texte est affiché. Elle ne modifie pas le texte dans le tampon, voir 'textwidth' pour cela. Lorsqu'elle est activée, les lignes plus longues que la largeur de la fenêtre s'enrouleront et s'effaceront. l'affichage continue sur la ligne suivante. Lorsqu'il est désactivé, les lignes ne seront pas enveloppées et seule une partie des longues lignes sera affichée. Lorsque le curseur est curseur est déplacé vers une partie qui n'est pas affichée, l'écran défile. horizontalement. La ligne sera interrompue au milieu d'un mot si nécessaire. Voir Saut de ligne' pour obtenir une rupture à la limite d'un mot.

:help linebreak

Si cette option est activée, Vim terminera les longues lignes par un caractère dans 'breakat' plutôt que par le dernier caractère qui tient à l'écran. plutôt qu'au dernier caractère qui tient sur l'écran.

:help breakat

breakat" "brk string (par défaut " ^I!@*-+;:,./?" )

Donc, :set linebreak et cela devrait fonctionner dès la sortie de la boîte. Ou vous pouvez restreindre breakat pour ne casser que sur les espaces, au lieu d'espaces + ponctuation.

24voto

sidyll Points 20176

Utilisez

:set linebreak

Ou 'lbr' pour faire court. Il brisera les lignes sur les caractères inclus dans votre 'breakat' qui inclut un espace par défaut.

4voto

bluesman Points 835

Avec vim ouvert, appuyez sur esc et entrez

:set lbr

2voto

Stryker Points 1474

Le texte suivant effectuera un retour à la ligne sans rompre aucun mot et préservera les lignes les plus courtes.

:set formatoptions+=w
:set tw=80
gggqG

Pour essayer de formater le paragraphe actuel, essayez ce qui suit :

:nnoremap Q gqip

1voto

user127440 Points 1

Les commandes suivantes fonctionnent pour moi, et j'utilise Red Hat 7.x au travail, et Cygwin 3.1.4 à la maison. Le point d'exclamation agit comme un opérateur not.

:set wrap
:set wrap!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X