2011-11-30 13 views
10

Soy terrible escribiendo expresiones regulares de vim. Cada vez que escribo uno para hacer una substición, nunca funciona la primera vez porque inevitablemente termino escribiendo algo Perl en lugar de vim. Me va mucho mejor cuando hago una búsqueda simple porque tengo incsearch encendido y puedo ver en tiempo real si mi patrón coincide.Vim búsqueda incremental durante la sustitución

¿Hay alguna manera en que pueda hacer que el comando s actúe como/(realizando una búsqueda incremental) mientras intento escribir un patrón correcto?

Respuesta

18

No estoy seguro, pero creo que no hay una manera de hacerlo. Por cierto, uso un pequeño truco para acelerar mis sustituciones. Si hace algo como:

:%s//bar 

en la línea de comandos Vim utilizará su última búsqueda. Por lo tanto, no es exactamente lo que necesita, pero sigue siendo una forma de aumentar un poco su velocidad haciendo sustituciones.

+1

Este es un buen consejo. Puede simplemente escribir su búsqueda primero, luego ejecutar ese atajo – Matt

+1

+1, buena vimtip :) –

+1

Vaya, ese consejo probablemente me ahorrará muchas horas a lo largo de mi carrera. ¡Gracias! – notlesh

3

Usted podría intentar este pequeño truco para componer su patrón de búsqueda utilizando incsearch y luego copiar patrón en la línea de comandos substitución:

  1. patrón de componer con el modo normal/... Se puede ver sus patrones son coincidentes . El último patrón se almacenará en el registro @ /.

  2. comando Ir a modo de línea y entrar en esta línea parcial: :%s/

  3. Ahora pulsar estos botones: <c-r>[email protected]/ Esto copiará último patrón de búsqueda en el comando sustituto que está escribiendo. (<c-r> está presionando la tecla control-r, no escribiendo los caracteres.)

Cuestiones relacionadas