next up previous contents
Siguiente: Indicación manual de rangos Subir: Indicación del ámbito en Anterior: Objetos de texto   Índice General


Seleccionar texto en Vim: El modo visual

Otra forma de delimitar el ámbito de actuación de un comando es seleccionar manualmente una porción de texto a la que se aplicará el comando. Esto se hace mediante el modo llamado ``visual'' que equivale a lo que otras aplicaciones de tratamiento de textos llaman ``selección'' o ``activación de bloques'': La idea es ir moviendo manualmente el cursor de tal manera que el texto vaya quedando marcado, y esa marca sea visualmente reconocible: el próximo comando que se ejecute afectará sólo al texto marcado.

Más adelante veremos los completos comandos de movimiento del cursor con que Vim cuenta. En la filosofía de Vim se encuentra el que sólo hay que usar el modo visual cuando queramos referirnos a una porción de texto que no se corresponda con ninguna de las unidades conocidas por Vim. Por ejemplo, si queremos borrar parte de una palabra y parte de la siguiente, o si en una tabla queremos borrar una columna entera.

En Vim el modo visual se puede activar mediante las teclas 0 0«v0 0», 0 0«V0 0» y CTRL-V. La diferencia está en que activando el modo visual con 0 0«V0 0» la selección se hará siempre por líneas completas, y usando CTRL-V se activará la selección por bloques, es decir: la selección irá formando una especie de recuadro, lo que es extremadamente útil cuando se trabaja con tablas y se quiere dar una orden que afecte a toda una columna.

Cuando estamos trabajando en el modo visual, la selección va siguiendo al cursor por el extremo en el que iniciamos el movimiento. Podemos usar cualquiera de los comandos de movimiento del cursor, aunque debe tenerse en cuenta que si el modo visual se inició pulsando CTRL-V, el comando 0 0«$0 0» (fin de línea), tiene un comportamiento especial, porque el efecto de su ejecución es el de extender la selección en todas las líneas hasta su extremo, incluso aunque la línea en la que esté el cursor sea más corta; y la selección se mantendrá hasta el final de todas las líneas hasta que realicemos algún movimiento horizontal del cursor (a derecha o izquierda); en este momento el bloque de texto volverá a ajustarse con respecto a la anchura de la línea en la que se pulsó 0 0«$0 0».

Cuando vamos seleccionando, un extremo de la selección se corresponde con el lugar donde estaba el cursor cuando se inició el modo visual, y el otro extremo se corresponde con el lugar en el que está ahora el cursor. Si en algún momento queremos extender la selección por el extremo opuesto a aquel en donde ahora está el cursor, el comando 0 0«o0 0» intercambiará los dos extremos, es decir: el cursor pasará a situarse en el lugar en donde se inició la selección, dejando el inicio de la misma en el punto donde estaba el cursor al ejecutar el comando.

Si la selección es por bloques (CTRL-V), junto con el comando 0 0«o0 0» se habilita el comando 0 0«O0 0». El primero funciona como se acaba de explicar, lo que en un recuadro significa llevar el cursor al vértice opuesto a aquel en el que está; el segundo lleva el cursor al vértice complementario de la selección. Es decir: si representamos el texto seleccionado como un recuadro, tal y como se muestra en el siguiente diagrama en el que he señalado los vértices del recuadro con las letras A, B, C y D:

el comando 0 0«o0 0» moverá el cursor a lo largo de las líneas A $\longleftrightarrow$D y C $\longleftrightarrow$B, mientras que 0 0«O0 0» lo moverá por A $\longleftrightarrow$B y por C $\longleftrightarrow$D, dependiendo en cada caso de donde esté el cursor cuando el comando sea ejecutado. Y así, por ejemplo, estando el cursor en A, 0 0«o0 0» lo llevará a D, pero 0 0«O0 0» lo llevará a B.

En suma: la combinación de 0 0«o0 0» y 0 0«O0 0» permite llevar el cursor a cualquiera de los cuatro vértices.

El modo visual se mantendrá hasta que:

  1. Se pulse la tecla ESC.

  2. Se pulse la tecla con la que se inició el modo visual2.9.

  3. Se ejecute algún comando que afecte al texto seleccionado.

Este comando puede ser un comando normal, o un comando específico para el modo visual. Véase la sección [*], página [*]. Si tras la ejecución del comando pulsamos 0 0«gv0 0» volverá a seleccionarse automáticamente el mismo texto (suponiendo que aun exista).

En fin: estando activo el modo visual automáticamente se inserta la marca ``<'' en el lugar donde empieza la selección y la marca ``>'' en el lugar donde esta acaba. Esas marcas se pueden usar para la indicación manual de rangos (Véase el próximo epígrafe y en el próximo capítulo lo relativo a las marcas).


next up previous contents
Siguiente: Indicación manual de rangos Subir: Indicación del ámbito en Anterior: Objetos de texto   Índice General
Cancerbero 2005-02-12