Parlons de mesures relatives. Mon Vim ressemble à:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
Je voudrais qu'il soit plus petit:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
Comment puis-je l'avoir? Et comment puis-je gérer la définition de la longueur d'un tel bloc?
vim
indentation
Léo Léopold Hertz 준영
la source
la source
Réponses:
Vous pouvez en fait faire deux choses:
Lequel veux-tu?
L'option 1 serait réalisée en définissant
textwidth
(par exemple:set textwidth=30
(d'après la réponse de Swaarop)). Ensuite, vous pouvez reformater votre texte en le mettant en surbrillance (en mode visuel) et en le tapantgq
. (textwidth
peut être abrégé commetw
, donc:set tw=30
.)L'option 2 peut être basculée en exécutant
:set wrap
/:set nowrap
. Cela encapsulera des lignes trop longues pour la fenêtre.Les deux sont indépendants.
la source
fold
commande comme dans la réponse de fgm.wrap
se terminera à la limite de la fenêtre, pastextwidth
.Une fois que vous avez défini 'textwidth', vous pouvez sélectionner du texte avec le mode visuel et appuyez sur gq pour l'envelopper correctement (vous pouvez également utiliser Q sur certaines configurations plus anciennes / héritées).
Quelques conseils utiles:
la source
gqq
enveloppe également la ligne courante (au lieu degqgq
ougq$
).L'utilisation de fold (1) est une possibilité:
Résultat:
la source
la source
textwidth
ne gérera pas une situation sans espace. Vous pouvez écrire votre propreformatexpr
fonction pour ce faire.Si vous avez du texte sans espaces que vous souhaitez couper à une certaine longueur, il n'est ni nécessaire d'utiliser external
fold
ni d'écrire le vôtreformatexpr
.:%s/\(.\{80\}\)/\1\r/g
cassera toutes les lignes à 80 caractères.
la source