Quiero tener una herramienta similar en Emacs como el siguiente en VimNo se puede buscar de manera efectiva en Emacs
:g/search/
para obtener una lista de coincidencias.
¿Cómo se puede obtener una lista de coincidencias en Emacs?
Quiero tener una herramienta similar en Emacs como el siguiente en VimNo se puede buscar de manera efectiva en Emacs
:g/search/
para obtener una lista de coincidencias.
¿Cómo se puede obtener una lista de coincidencias en Emacs?
M-x occur
?
De the manual:
M-x occur
Solicitar una expresión regular, y mostrar una lista que muestra cada línea en el búfer que contiene a la altura de ella. El texto que coincide se resalta con la cara
match
. Para limitar la búsqueda a una parte del búfer, acórtese a esa parte (consulte Reducción). Un argumento numéricon
especifica que las líneas de contexton
deben mostrarse antes y después de cada línea coincidente. El número predeterminado de líneas de contexto está especificado por la variablelist-matching-lines-default-context-lines
.En el búfer
*Occur*
, puede hacer clic en cada entrada, o mover el punto allí y escribirRET
, para visitar a la posición correspondiente en el buffer que se buscó.o
yC-o
muestran la coincidencia en otra ventana;C-o
no lo selecciona. Alternativamente, puede usar el comandoC-x `
(next-error
) para visitar las ocurrencias una a una (vea el Modo de compilación).escribiendo
e
en el*Occur*
búfer cambia al modo Ocurrir edición, en el que las ediciones realizadas en las entradas también se aplican al texto en el búfer de origen. EscribaC-c C-c
para volver al modo Ocurrir.El comando
M-x list-matching-lines
es un sinónimo deM-x occur
.
Mi flujo de trabajo habitual no es obtener una lista y elija (no sé cómo hacerlo), sino usar la búsqueda incremental:
C-s <search target>
obtiene el partido puño después de la coma. Si no te gusta, otro C-s
obtiene el siguiente. Continúe hasta que esté satisfecho (necesitará un C-s
adicional para envolver desde y hacia el búfer). Lo suficientemente nuevo como emacsen también puede resaltar todas las coincidencias que son visibles.
Como se señala en los comentarios de Török Gábor, esta es la combinación de teclas típica de isearch-forward
. En el caso de que sus enlaces sean diferentes, debe modificar el procedimiento prescrito.
'isearch-forward' (es decir,' Cs') también te permite escribir 'Co' después de la frase de búsqueda dada, y luego ejecuta 'ocurrir' lo que LB sugirió. De esta forma puedes usar su poder de una vez. –
Gracias, Török. Una cosa más que no sabía sobre emacs. – dmckee
Esto no parece funcionar para mí - 'C-o' está obligado a' open-line'. –
Además de M-x occurr
compruebe también M-x grep. Esto funciona en varios archivos a la vez.
'rgrep' es aún mejor, ya que permite la búsqueda recursiva. –
¡Gracias por tu respuesta! –
no hay problema ... Soy un tipo vi que a veces tiene que usar emacs ... – LB40