Actualmente estoy escribiendo una gran cantidad de texto sin formato (y LaTeX con un formato mínimo en los párrafos), y sería bueno si pudiera configurar vim para mantener cada oración (por simplicidad, el texto termina con un '.', '!' , o '?'; es una puntuación de terminación seguida de un espacio para evitar romper los números decimales) en su propia línea, por lo que las diferencias de VCS serán más útiles.
Como mínimo, me gustaría gq
formatear el texto de:
He lay flat on the brown, pine-needled floor of the forest, his chin on his
folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he
could see the dark of the oiled road winding through the pass. There was a
stream alongside the road and far down the pass he saw a mill beside the
stream and the falling water of the dam, white in the summer sunlight.
A:
He lay flat on the brown, pine-needled floor of the forest, his chin on his folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he could see the dark of the oiled road winding through the pass.
There was a stream alongside the road and far down the pass he saw a mill beside the stream and the falling water of the dam, white in the summer sunlight.
Pero sería bueno si vim también realizara este formateo mientras escribo (como lo hace con el reflujo de ancho de texto). es posible?
Mi solución actual es unir un párrafo J
y luego ejecutarlo, lo :'<,'>s/\. /.\r/g
cual es bastante bueno ya que hay pocos signos de exclamación y de interrogación, pero sería mucho mejor si pudiera hacer que gq sea un poco más inteligente.
fuente
)
e insertar una nueva línea; repetir hasta llegar al final del rango". Entonces, presumiblemente, aplicaría cualquier regla de sangría. Pero mi Vim-fu es demasiado débil para eso. :)e.g. blah
, por ejemplo , yBlah et al. 2018
que es un poco molesto. Puede desunir patrones como ese con algo así's/\(e\.g\|\<al\)\@<![.!?]\zs /\r/g'
. Simplemente agregue más patrones al primer grupo para evitar otras cosas en las que no desea dividirse. De lo contrario, esto es súper útil, gracias. No me había encontradogq
antes, ygqip
es muy útil para formatear el texto que los editores de texto del coautor han destrozado.Bueno, puedes configurar algunos mapas y comandos automáticos:
Luego, simplemente configure el tipo de archivo en texto personalizado o llame a la
AddSentenceMaps
función manualmente.fuente
Quiero agregar mis pensamientos sobre este tema. Por lo general, las personas desean este tipo de característica debido a que saltan las líneas envueltas cuando navegan por el código
j
y losk
comandos, que es el comportamiento predeterminado de Vim. Para la navegación a través de líneas envueltas, usogj
- mover hacia abajo ygk
- mover hacia arriba. También existe la posibilidad de reasignar el estándarj
y elk
comando en las contrapartes con prefijo g, pero en mi humilde opinión, sería excesivo.fuente
j
yk
haciagj
ygk
cuando lo desee ;-)No responde a su pregunta específica sobre el formateo, pero 'set wrap' junto con 'set linebreak' puede hacer que editar líneas largas sea mucho más agradable. Combina esto con gj y gk para navegar dentro de líneas envueltas. Mapeo las flechas hacia arriba y hacia abajo a gj y gk, respectivamente, para poder elegir entre subir y bajar líneas reales o líneas visuales. Como sabio para Inicio / Fin a g0 / g $.
fuente