Al buscar una cadena con C-s, quiero poder presionar alguna tecla para salir del modo de búsqueda, pero aún así mantener la selección de la coincidencia. De esa manera, puedo comenzar a escribir de inmediato y reemplazar la última coincidencia.
Por ejemplo, digamos que tengo el siguiente documento:
The quick brown fox jumps over the lazy dog.
Si busco "perezoso", emacs seleccionará esa palabra así (los corchetes son la selección, la tubería es el cursor):
The quick brown fox jumps over the [lazy|] dog.
Ahora, si returnpresiono, emacs mantendrá la posición de mi cursor, pero deseleccionará "perezoso":
The quick brown fox jumps over the lazy| dog.
En lugar de esto, quiero un acceso directo que salga del modo de búsqueda pero mantenga la selección de coincidencia actual, como en el segundo estado anterior.

M-x query-replacelo que estás buscando?C-sy escribir lo que creo que quiero buscar, luego cambiar la consulta con retroceso a cero en lo que quiero cambiar. Luego juego con lo que exactamente quiero reemplazar.M-%es demasiado "formal".query-replaceno resuelve estoRespuestas:
Aquí hay un enfoque:
Esto vincula una tecla diferente (C-return) para salir de la búsqueda actual y también dejar la última coincidencia seleccionada. Esto también funcionará
isearch-forward-regexp, lo cual es útil.fuente
bind-keyvienebind-keyviene de otra biblioteca. He cambiado la respuesta para usar la función incorporada en sudefine-keylugar.Library Isearch + te permite hacerlo fácilmente e incluso activarlo / desactivarlo sobre la marcha.
La opción no nula
isearchp-set-region-flagestablece automáticamente la región (selección) alrededor del último objetivo de búsqueda cuando sale de la búsqueda.Comando
isearchp-toggle-set-region, vinculado aM-s M-SPCdurante la búsqueda alterna la opciónisearchp-set-region-flag.El comando
set-region-around-search-targetestablece manualmente la región alrededor del último objetivo de búsqueda. (Por lo tanto, incluso si la opción no está configurada, por lo que no obtiene la selección automática, puede hacerlo manualmente).Library Reemplazar + le permite hacer lo mismo para
query-replaceetc. Coloca la región alrededor (es decir, selecciona) la última ocurrencia de reemplazo. Utiliza la misma opción,isearchp-set-region-flagpara controlar esto, y el comandoset-region-around-search-targettiene el mismo efecto.fuente