2011-10-18 29 views
12

Sé que puedo seleccionar texto dentro de comillas/dobles comillas emitiendo vi' o vi". Por ejemplo, con el cursor en la H, puedo seleccionar World emitiendo vi"Seleccionar texto entre paréntesis fuera del paréntesis en Vim

Hello "World" 

pero esto no parece funcionar si tuviera

Hello (World) 

Si mi cursor se encuentra en H y tratar de seleccionar World usando vi), no funciona. Parece que la única forma de hacerlo es mover el cursor dentro del paréntesis y emitir vi). ¿Por qué, al seleccionar texto dentro) y "se diferencia de esta manera?

+0

Estoy seguro de que esta pregunta ha sido respondida antes, ¡pero no puedo encontrarla! –

Respuesta

25

La diferencia entre {a, i} x {(, ), b} comandos objeto de texto y sus ", ', ` homólogos resulta fundamentalmente de los diferentes las definiciones de un bloque y una cadena citado (ver :help v_ab, :help v_aquote).

Mientras que este último es el texto de la cita anterior characte r en la línea actual hasta la siguiente en esa misma línea (apartados a un lado), el primero es el texto entre el enésimo paréntesis de apertura anterior sin coincidencia y su cierre de coincidencia . En pocas palabras, el comando va( (sin contar) es como [(v% -si no hay paréntesis inigualables antes del cursor, ambos seleccionan nada. Sin embargo, el comando va" escanea la línea actual para encontrar un par coincidente de de todas formas.

La razón principal de esta diferencia de comportamiento, supongo, es que citadas cuerdas, en contraste con el paréntesis, se supone que no anidada (al menos en perspectiva de una función de los objetos de texto Vim).

para seleccionar el texto en el siguiente paréntesis en la línea actual, se puede utilizar

%vi(

o

%va(

para incluir paréntesis en la selección.

+0

+1, esto es hermoso, gracias. – romainl

+0

desafortunadamente esta solución solo funciona para paréntesis y no para ningún otro tipo de corchete. –

+3

@Daniel: simplemente use '% vi [', '% vi {', '% vi <', etc. para llaves cuadradas, rizadas, angulares, etc., respectivamente. –

Cuestiones relacionadas