¿Hay un incsearch para el comando replace?

12

Realmente disfruto de la incsearchfuncionalidad de Vim . ¿Hay alguna forma de que funcione, o algo similar, mientras hago un reemplazo?

Por ejemplo, si en modo normal escribo:

:%s/potato/

¿Puedo potatoresaltar todos los mensajes de correo electrónico en mi archivo, tal como se resaltan incsearchcuando escribo

/potato

?

Esto ya me ayudaría mucho al usar expresiones regulares. Sería muy agradable tener eso cuando escribo esto:

:%s/potato/banana/

Reemplazaría la potatos con bananas, y las resaltaría, tal vez las sustituciones deberían ser de un color diferente. Sin embargo, no debería "confirmar" el cambio hasta que presioné enter).

Estoy usando neovim en este momento, en caso de que ayude.

kikito
fuente
1
Qué quiere decir incsearch? hlsearchdebería funcionar ootb, si escribo :%s/potato/\0/para reemplazarlo potatoconsigo mismo, entonces veo todas las coincidencias resaltadas.
jjaderberg 02 de
De hecho, quise decir incsearch. Reemplazando en mi pregunta, gracias.
kikito
Probablemente no sea kosher pero :/pattern<CR>funciona bien, luego agregue% sy la cadena de reemplazo. Thene de nuevo para no refinar la búsqueda y el uso de CTR-R / pegar a parte de la búsqueda:%s/
Steve
Al agregar a @jjaderberg: :%s/potato/carrot/cle permitirá saltar ("confirmar") a través de sus reemplazos (agregar gpara reemplazar todas las instancias en la misma línea) y con las hlsearchverá de antemano.
Rolf

Respuestas:

9

Después de un poco de búsqueda, encontré este problema de NeoVim , que a su vez fue cerrado por este RP , que me llevó a la inccommandconfiguración. Agregando esto a mi archivo de configuración:

set inccommand=nosplit

hace que NeoVim se comporte casi exactamente como solicité en mi pregunta. No encontré algo equivalente para Vim normal, pero no lo busqué con mucha energía.

kikito
fuente
44
En su situtaion, para incsearchen subtitutions (siendo un Vimmer perezoso y lento para adoptar cosas neo), Probablemente la búsqueda de la patata ( /potato) disfrutando ordinarias adicionales highlighighting de búsqueda y luego sustituir con una búsqueda en vacío: %s//banana. Pero no sé cómo se compara set inccommand=nospliten otros aspectos.
jjaderberg
¡Gracias! No conocía el "truco de búsqueda vacía". Intentaré recordarlo cuando esté vim en mis servidores
kikito
1
@jjaderberg, por cierto, me gustó tanto la inccommandconfiguración que hice un asciinema mostrándolo en el trabajo, en caso de que te motive a probar neovim
kikito
2
@jjaderberg Creo que eso es digno de ser una respuesta.
Rico
Desafortunadamente, el enlace al asciinema está muerto ahora.
sjy