Enveloppe souple à 80 caractères dans Vim dans une fenêtre de largeur arbitraire

Je veux utiliser la fonction de bouclage logiciel de Vim ( :set wrap ) pour envelopper du code avec 80 caractères, quelle que soit la largeur de la fenêtre.

Je n’ai pas encore réussi à trouver un moyen de le faire – tous les emballages souples semblent liés à la largeur de la fenêtre

  • textwidth et wrapmargin sont tous les deux pour le wrapping dur (ils insèrent des caractères de nouvelle ligne dans le fichier)
  • division verticale en plusieurs fenêtres et utilisation de :vertical resize 80 (éventuellement avec :set breakat= pour autoriser les ruptures sur n’importe quel caractère) sur l’une d’entre elles (même si elle est un peu piratée), mais se casse :set number les numéros de ligne prennent un nombre variable de colonnes (en fonction de la longueur du fichier) et font partie des 80.

Y a-t-il un moyen de le faire en vim? Selon d’autres sources, cela ne semble pas prometteur .

En ce moment, mon approximation est juste d’avoir /^.\{80}\zs.\+ comme recherche par défaut, de sorte qu’elle soit au moins mise en évidence. J’ai pensé à append un élément :syntax , mais celui-ci s’est brisé lorsqu’il a chevauché d’autres éléments de syntaxe. J’ai donc abandonné cette idée.

Vous pourriez

  • définir une grande largeur minimum pour la colonne des numéros de lignes via :set numberwidth=6 et
  • alors vous pouvez redimensionner votre fenêtre avec :set columns=86 (ou avec la souris) à la bonne taille.

Si vous modifiez un fichier avec un million de lignes, vous pouvez rencontrer des problèmes, mais c’est peu probable. Vous gaspillez ainsi 6 colonnes de biens immobiliers à l’écran. Donc, il y a toujours toutes sortes de problèmes.

Vous pouvez mettre en évidence au-delà de la 80ème colonne en utilisant :match comme il est dit ici et ici .

Au-delà, je ne vois aucun moyen de le faire. On dirait que ce serait une fonctionnalité intéressante.

Je n’ai pas de solution pour le soft wrap, mais pour marquer une colonne, à partir de Vim 7.3 (publié le 2010-08-15) :set colorcolumn=80 mettra en évidence la colonne 80. La couleur dépendra de votre fichier de syntaxe.

Voir Vim 80 problèmes de disposition de la colonne :h colorcolumn .

Essaye ça:

 set columns=80 autocmd VimResized * if (&columns > 80) | set columns=80 | endif set wrap set linebreak set showbreak=+++ 

Vous pouvez supprimer le if (&columns > 80) | si vous voulez toujours 80 colonnes.

Avez-vous essayé le 'linebreak' ?

  *'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'* 'linebreak' 'lbr' boolean (default off) local to window {not in Vi} {not available when comstackd without the |+linebreak| feature} If on Vim will wrap long lines at a character in 'breakat' rather than at the last character that fits on the screen. Unlike 'wrapmargin' and 'textwidth', this does not insert s in the file, it only affects the way the file is displayed, not its contents. The value of 'showbreak' is used to put in front of wrapped lines. This option is not used when the 'wrap' option is off or 'list' is on. Note that  characters after an  are mostly not displayed with the right amount of white space.