¿Cómo modificar el bloque seleccionado visualmente con un comando externo?

9

Tengo un archivo que se compone de dos partes verticales. En el lado izquierdo, los datos ya están formateados y no quiero cambiarlos. Solo quiero formatear los datos en el lado derecho. Digamos que tengo un archivo con líneas como

foo=bar baz     # Neato       Junk
quux=xyzzy      # Bilbo Baggins Ring

con muchas más líneas como esa. Solo quiero modificar el texto a la derecha del carácter '#'. Seleccioné el texto que quiero con las siguientes expresiones:

gg
/#
ctrl-v
G
$

pero si luego trato de modificarlo (digamos, con :'<,'>!column -t), en realidad modifica la totalidad de cada línea. ¿Cuál es la expresión correcta para usar solo para modificar las partes visualmente seleccionadas?

kojiro
fuente
2
Puede probar el complemento vis del Dr. Chip o mi complemento NrrwRgn . Ambos deberían manejarlo bien.
Christian Brabandt

Respuestas:

6

También puedes probar:

gg
^V
G
t#
d
:%!column -t
gg
P

De :h :visual_example:

Actualmente, el comando ":" funciona solo en líneas completas. Cuando selecciona parte de una línea, hacer algo como ":! Date" reemplazará toda la línea. Si desea reemplazar solo una parte de la línea, tendrá que hacer un mapeo para ella. En una versión futura ":" puede funcionar en líneas parciales.

Ver también :h visual-operatorspara más detalles.

Jair López
fuente