2012-04-02 5 views
5

¿Es posible añadir ciertas líneas a una selección visual mediante un comando EX-mode?Añadir líneas a la selección visual mediante Ex-Mode

tengo el texto de la siguiente forma:

+----------+-----------+ 
| Some text| other text| 
+----------+-----------+ 
| More text|| 
| And even more || 
| - ...|| 
+----------+-----------+ 

Y quiero que el texto que se mostrará como esto:

+---------------+------------+ 
| Some text  | other text | 
+---------------+------------+ 
| More text  |   | 
| And even more |   | 
| - ...   |   | 
+---------------+------------+ 

Utilizando el plugin de tabla cuando se borra las líneas con + a través de la siguientes trabajos de flujo de trabajo:

g!/+/d 
// Visually select the remaining lines 
Tab /| 
// Manually insert the +----+----+ lines 

Me preguntaba si hay una manera de mantener el delimitador l ines y visual: seleccione las líneas que no contengan a + a través de EX-Mode como :g!/+/ add-line-to-visual-selection.

+2

Hay un complemento [multiselect] (http://www.vim.org/scripts/script.php?script_id=953), pero no creo que Vim admita selecciones no contiguas, de lo contrario. (No puedo decir si Tabular se jugará bien con este complemento, tampoco) – Xophmeister

+0

Eso es lo que pensé cuando ni ': h Visual' y': h range' encontraron algo útil - bueno, realmente no puedo pensar en otro caso I Alguna vez se perdió esa funcionalidad, así que puedo vivir usando el método ex. – BergmannF

+0

Esto puede ser una pregunta estúpida (mi SSH está inactivo por el momento, ¡así que no puedo probar esto!), Pero ¿qué sucede si seleccionas visualmente toda tu tabla y 'Tab \ |'? Si Tabular enrosca las líneas del delimitador, tal vez pueda usar algún tipo de aseveración de aspecto negativo en el parámetro, por lo que ignora esas líneas. – Xophmeister

Respuesta

3

que puede usar:

:Tab /|\|+/l1 
:<range>g/+/s/ /-/g 

Puede encontrar ayuda para \| en :help /\| o más globalmente :help pattern, es la forma estándar de expresar la alternancia en Vim expresiones regulares. Por lo tanto, /|\|+/ es un patrón con delimitadores que coincide con | o +. (Leyendo todo el :help pattern tiene un excelente retorno de la inversión, FYI).

Con respecto al /l1 en el complemento Tabular, puede leer más a fondo la ayuda del complemento, se agregará espacio después del separador y el texto de alineación a la izquierda.

Cuestiones relacionadas