Par défaut, l'utilisation gq
avec une commande de mouvement enveloppe le texte décrit par la commande de mouvement sur 79 colonnes. (Je suis relativement nouveau dans vi
/ vim
donc je ne connais pas la terminologie correcte.) Comment puis-je configurer le nombre de colonnes de sorte qu'il encapsule plutôt un nombre différent de colonnes?
Par exemple, supposons que j'ai ce texte:
This is text for illustration.
Je voudrais pouvoir configurer la colonne wrap à 29 pour que si mon curseur est dans la ligne et que je l'exécute, gqip
il se transforme en:
This is text for
illustration.
J'utilise gVim sur Ubuntu GNOME 17.04, si cela fait une différence.
EDIT: Je cherche un moyen d'envelopper manuellement certaines sections de texte à la longueur de ligne donnée sans affecter les autres, car il y a des cas où je suis d'accord pour dépasser la limite. Pour développer l'exemple précédent, si mon document ressemble à ceci:
This is text for illustration.
This is some other text for illustration.
Et je cours gqip
avec mon curseur dans la première ligne, je voudrais obtenir:
This is text for
illustration.
This is some other text for illustration.
Ensuite, si je commence à taper sur une nouvelle ligne en dessous, j'aimerais que cette ligne ne soit pas affectée de la même manière par la limite.
Mon cas d'utilisation consiste à écrire des documents LaTeX: j'aimerais pouvoir envelopper des paragraphes de prose sur un certain nombre de colonnes à la demande, mais dans certains cas où j'écris de longues équations ou des tableaux, je veux que ces lignes rester plus longtemps que la limite.
gq
commande ne prévoit pas de définir la largeur d'habillage par appel; il suittextwidth
ettextwidth
s'applique à l'ensemble du tampon, pas seulement à certaines lignes. Si vous êtes d'accord pour encapsuler manuellement les sections que vous souhaitez encapsuler, vous pouvez écrire une fonction qui: enregistre la valeur actuelle detextwidth
; mistextwidth
à 29; effectuergq
sur les lignes sélectionnées; restaurer la valeur detextwidth
. Attribuez ensuite cette fonction àformatexpr
. Alternativement, vous pouvez utiliser un programme externe tel quefmt
pour formater les lignes sélectionnées.