2010-07-27 8 views
4

Existe-t-il un moyen de configurer la fonction gq de vim afin qu'elle permette la rupture de ligne après un trait d'union (dans un mot composé)? par exemple.vim linebreak après trait d'union avec gq

twentieth- 
century 

Et en passant, je ne suis pas sur mon ordinateur portable, mais sur un du laboratoire, qui fonctionne sous Windows, de sorte que toute solution de ne pas utiliser des programmes comme par ou fmt obtenir des points bonus :-) (bien que Je suis également intéressé par des solutions utilisant ces outils si ce n'est pas possible de le faire en utilisant seulement vim - au moins je serais capable de le faire sur mon ordinateur portable).

Merci d'avance.

+0

Je ne vois pas un moyen d'obtenir le formatage interne de Vim pour ce faire; Je pense que vous serez probablement limité à 'formatexpr' ou' formatprg' - et écrire votre propre code Vim pour dupliquer le formatage interne avec cette légère modification va être assez difficile ... donc malheureusement un programme externe peut être le seul manière simple. – Cascabel

+0

Eh bien, alors savez-vous comment configurer 'par' pour ça? (Je pose cette question par pure fainéantise, je ne veux pas lire la page de manuel super-longue de 'par' aujourd'hui :-)) Merci. – antony

+0

Que diriez-vous d'ajouter de l'espace avant ou après ** '-' **? –

Répondre

2

Pour le trait d'union ASCII (0x2d), cela n'est pas possible. Si vous êtes en mesure d'utiliser Unicode, vous pouvez utiliser la variante Unicode identique (U + 2010, cp http://en.wikipedia.org/wiki/Dash). Cela peut être inséré via Ctrl-V (Ctrl-Q sur la plupart des installations Windows de Vim), suivi de u2010. Ou définir un digramme pour elle:

:digraph -- 8208 " hyphen, U+2010 

Avec

:set formatoptions+=m 

Vim

brisera à un caractère multi-octets au-dessus de 255.

Voila! Si vous avez besoin de persister le texte en ASCII, vous pouvez même écrire des mappages/un wrapper autour de gq que :substitute s les tirets d'avant en arrière.

+0

Alors que le tableau de bord est identique à la plupart des polices, le caractère U + 2010 HYPHEN est sémantiquement correct. – ZyX

+0

@ZyX: Merci, édité cela. La page Wikipédia mentionne à peine le trait d'union. –

+0

Sorte de réponse tardive mais définitivement très agréable. – antony

Questions connexes