Este es uno de los capítulos del tutorial Vim, un editor atemporal. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
Hasta el momento has trabajado habitualmente tanto en el modo normal, como en el modo insertar. También puntualmente has utilizado el modo comandos, para ejecutar algunas instrucciones. Sin embargo, como sabes, Vim tiene mas modo de funcionamiento. Modos que te van a dar mas versatilidad, posibilidades y sobre todo, mas potencial. Así, uno de los modos que no has visto hasta el momento es el modo visual. El modo visual de Vim te permite seleccionar y modificar texto de una forma diferente a la que la has estado haciendo hasta el momento.
El modo visual de Vim te puede resultar increíblemente útil para identificar de forma clara la parte del texto sobre la que estás trabajando. Y es que en ocasiones, trabajar exclusivamente con el modo normal, te puede desorientar. O al menos inicialmente. Posteriormente, una vez, te acostumbras al lenguaje de Vim, todo es mas sencillo.
El modo visual de Vim
Aunque en la introducción te he hablado del modo visual de Vim como si solo existiera uno, la realidad es que tienes hasta tres modos visuales.
- El modo carácter que se inicia utilizando
v
desde el modo normal - El modo línea que se inicia con
Mayúsc+v
igualmente desde el modo normal - Por último, tienes el modo bloque que se inicia utilizando el atajo de teclado
Ctrl+v
también desde el modo normal.
Cada uno de estas modalidades tiene sus particularidades que te indico en los siguientes apartados, para que puedas exprimirlas fácilmente.
Pero, en cualquier caso, como de costumbre, puedes volver al modo normal utilizando Esc
.
Carácter a carácter
Utilizando esta modalidad puedes seleccionar un carácter, un grupo de caracteres, una palabra, una frase,… Es decir, que puedes seleccionar casi cualquier cosa que quieras.
Así, por ejemplo si lo que quieres es cambiar una frase de sitio, simplemente pasas al modo visual de Vim por caracteres v
y seleccionas la frase que quieras is
. La borras d
y la pegas donde quieras p
.
Así por ejemplo, si quieres mover la primera frase al final del primer párrafo utilizando el modo visual, sería algo como lo siguiente, vasd$p
. Ahora bien, esto mismo lo puedes hacer igual desde el modo normal utilizando das$p
. Te estás ahorrando un carácter, pero no es visual… Una cosa por la otra.
Yo he seleccionado una frase completa, es decir, de punto a punto. Sin embargo, no siempre tiene que ser así, es posible que solo quieras seleccionar una parte, o una sola palabra, pero la operativa es la misma.
Igualmente, en el caso de que solo quieras seleccionar una palabra, y moverla, de nuevo al final del párrafo, podrías hacerlo de forma visual con vawd$p
o en modo normal con daw$p
.
Línea a línea
En el caso de código, lo de línea a línea está muy claro. Para el caso de texto, mas bien lo entenderías como párrafo a párrafo. Sea como fuere, en este caso, cada vez que mueves el cursor, en lugar de seleccionar un único carácter, seleccionas una línea completa. De esta forma, si estás situado en la primera línea, y utilizas el atajo de teclado Mayúsc+v
seleccionarás esa primera línea, si desplazas el cursor hacia abajo, seleccionarás la segunda línea y así sucesivamente. Te darás cuenta, de que aunque lo intentes no puedes seleccionar un solo carácter, mas que nada porque las flechas izquierda y derecha no responden.
Una vez seleccionada la línea o líneas que quieras modificar es cuestión de que realices las operaciones que consideres. Por ejemplo, si quieres mover la primera línea o párrafo, la secuencia sería Vd}p
. Igual que en el caso anterior, esto también lo puedes hacer directamente desde el modo normal utilizando dap}p
o dip}p
dependiendo de si te quieres llevar los espacios anterior y posterior contigo.
Otra operación realmente interesante que puedes hacer con la el modo visual de Vim línea a línea, es sangrar varias líneas de forma simultánea. Por ejemplo, en el caso de edición de código, esto te puede venir fantástico, para aplicar sangría a unas cuantas líneas de código. Por ejemplo, si quieres sangrar las tres primeras líneas V2j>
. De nuevo esto también lo puedes hacer desde el modo normal, y la operativa sería 3>>
Bloque a bloque
La tercera y última posibilidad que tienes para utilizar el modo visual de Vim es mediante la selección por bloques. Esta selección, es especialmente interesante para trabajar con tablas, porque te permite realizar precisamente este tipo de selección. Pero a mi me gusta particularmente para comprobar que todo tiene la misma sangría… Te parecerá una tontería pero es realmente cómodo.
Este opción te permite seleccionar y pegar por columnas, lo que resulta especialmente cómodo y práctico.
Pero sobre todo, yo lo utilizo para editar en varias líneas de forma simultánea. Para ello utilizo el atajo de teclado Ctrl+v
, selecciono las líneas que quiero editar, y a continuación utilizo Mayúsc+i
y comienzo a escribir, y cuando he terminado pulso esc
. Y he repetido el mismo texto tantas veces como líneas he introducido.
Igualmente otro interesante uso que le puedes dar a la selección por bloques, es para eliminar un espacio en varias filas. Imagina que la sangría la has hecho de cinco espacios en lugar de cuatro. Puedes seleccionar ese espacio en todas las filas y borrarlo. Imaginando que estas hablando de 5 líneas, simplemente te tienes que situar sobre el espacio de la primera línea y utilizar Ctrl+v4jd
.
Esto mismo lo puedes utilizar para introducir la sangría Ctrl+v4j>
o para reducir la sangría Ctrl+v4j<
.
Conclusión
Ya has visto las posibilidades del modo visual de Vim. Pero de la misma manera, también has visto que prácticamente lo mismo que puedes hacer en el modo visual, también lo puedes hacer en el modo normal, y te diría que de una forma más práctica. Y digo de una forma más práctica, sobre todo a partir de que controlas el lenguaje de Vim.
Desde luego, hasta la fecha, la parte que es insustituible para mi, es el modo visual de Vim con la edición bloque a bloque. Esto unido con la inserción múltiple es algo que me resulta realmente práctico, cómodo y productivo.
Más información,
Imagen de portada de Edi Libedinsky en Unsplash