2010-05-29 8 views
8

Aquí está el escenario: Tengo un gran archivo lleno de todo tipo de basura ecléctica que quiero regex. Jugueteo y propongo un patrón de búsqueda perfecto usando el comando / y viendo lo que resalta.¿Cómo recuperar el patrón de búsqueda cuando se escribe reemplazar patrón regex en Vim?

Ahora quiero usar ese patrón para reemplazar. Entonces, empiezo a escribir :% s/ y no recuerdo cuál fue el patrón. ¿Hay algún comando de teclado mágico que tire de mi último patrón de búsqueda aquí? Si estoy escribiendo una expresión regular particularmente compleja, incluso abrí una nueva ventana de MacVim, escribí la expresión regular de la primera ventana en un búfer y luego la escribí de nuevo en la ventana de Vim al escribir el patrón de reemplazo. Tiene que haber una mejor manera de hacerlo.

Respuesta

10

Encontré mi propia respuesta después de haber escrito la pregunta: Vim tips la enumera como substitute last search y se puede hacer de una de dos maneras.

  1. usando una búsqueda de vacío:

    :% s // reemplazar/g

  2. Pulsando Ctrl + r entonces / recordar el material de la memoria intermedia de búsqueda (/ - puede usar cualquier otro buffer nombrado sustituyendo el / por la letra que representa ese bu ffer).

+2

Lo siento por la auto-respuesta, amigos. Realmente tuve dificultades para encontrar la respuesta, así que sentí que valía la pena soportarla. Y Meta dice que está bien contestar sus propias preguntas: http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions –

+1

Si termina necesitando usar más de una pregunta argene regex para examinar tu basura ecléctica, puede ser útil mantenerlos en variables, usando ': let b: tires_sifter = @ /' para un tipo de basura, y ': let b: pope_on_a_ropes_sifter = @ /' después de ti He descubierto cómo localizar las instancias de esa entidad de las que nunca se pueden tener demasiadas. Retírelos asignándolos nuevamente a '@ /', construyendo una línea 'exec' para usarlos, o usando la función' search() '(IIRC .. maybe' matchadd'). – intuited

4

Existe un registro / que contiene el patrón de búsqueda actual, para que pueda insertar el patrón de búsqueda en todo lo que está escribiendo (ya sea en el modo de inserción o en la línea de comandos) con <CTRL-R>/

1

Otra opción : después de ingresar el patrón con <CTRL-R>/, edite la línea de comando con <CTRL-F>.

: help cmdwin

Cuestiones relacionadas