2009-09-18 14 views
29

La clave % es una de las mejores características de vim:? Que le permite saltar de { a }, [ a ], . y así sucesivamenteEn vim, ¿existe un plugin para utilizar% para igualar el doble cotización correspondiente (")

sin embargo, no funciona por defecto con comillas: de cualquier " o ', probablemente debido a la apertura y cierre de cotización son el mismo personaje, por lo que la aplicación más difícil

Pensando un poco más sobre. el problema, estoy convencido de que debería implementarse, contando si el número de citas anteriores es impar o par y saltando a la cita anterior o siguiente, en consecuencia.

Antes de intentar implementarlo yo mismo, ¿me gustaría saber si alguien ya lo ha hecho?

Respuesta

68

Dependiendo de su razón para necesitar esto, puede haber una mejor manera de lograr lo que está buscando. Por ejemplo, si usted tiene el siguiente código:

foo(bar, "baz quux") 
      ^

y el cursor pasa a ser en el ^, y desea reemplazar todo dentro de las comillas con algo más, utilizar ci". Este utiliza el Vim "text objects" cambiar (c) (todo dentro de las comillas) i (") y lo pone en el modo de inserción de esta manera:

foo(bar, "") 
     ^

A continuación, puede empezar a escribir el texto de reemplazo. Hay muchos otros objetos de texto que son realmente útiles para este tipo de atajo. Aprende (y usa) un nuevo comando Vim por semana, ¡y serás un experto en muy poco tiempo!

+0

Gracias, esa fue una respuesta útil. ¿Ves alguna razón para no implementar% para las comillas? –

+4

Como dices, la dificultad con las comillas es que no son naturalmente simétricas. Su idea acerca de los números impares/pares parece un buen compromiso, aunque no sería aplicable a todas las situaciones. Se debería tener cuidado con las comillas escapuladas ('\" ') o las comillas triples de Python (' "" "') o las comillas en otros contextos, como las expresiones regulares de Perl o los idiomas que admiten literales de cadenas de varias líneas. ¡Pero tal vez valga la pena intentarlo! –

+0

Esto no funciona para mi? Simplemente va al modo de inserción normal –

28

La respuesta de Greg fue muy útil, pero también me gustan los comandos 'f' y 'F' que mueven el cursor hacia adelante y hacia atrás al carácter que presiona después del comando.

Así pulse f" para pasar a la siguiente 'carácter y F' para pasar a la anterior.

+3

También puede combinar estos comandos de movimiento de texto con comandos de modificación, por lo que 'cf" 'cambia hasta e incluyendo la siguiente cita, mientras que' ct "' cambia hasta pero * no * incluyendo la siguiente cita. –

8

me gustaría ampliar Greg's answer, e introducir el plugin surround.vim.

Supongamos que en lugar de editar el contenido de sus cotizaciones, que desea modificar los " propios personajes. Digamos que usted quiere cambiar de comillas dobles a las comillas sencillas.

foo(bar, "baz quux") 
      ^

El complemento de envolvente y permite ou para cambiar esto a

foo(bar, 'baz quux') 
      ^

simplemente ejecutando el siguiente: cs"' (que dice: "cambiar las comillas dobles que rodean a las comillas sencillas").

También puede eliminar las comillas simplemente ejecutando: ds" (que dice: "Eliminar las comillas dobles que rodean)

Hay una good introduction to the surround plugin here..

1

he encontrado que esta técnica muy útil para ir al inicio/final de una Cadena muy cotizada.

  1. cuando el cursor está dentro de la cadena, seleccione visualmente toda la cadena mediante vi" o vi'
  2. vaya a Inicio/final de la cadena presionando o
  3. prensa de escape para salir del modo de selección visual

esto realmente toma el cursor al lado del carácter de comillas de inicio/finalización, pero aún así se siente bastante útil.

+0

Muy bien, gracias! –

Cuestiones relacionadas