Pregunta:
Una pregunta bastante básica de Helm. ¿Cuál es la ventana / comando / función de Helm que nos permite buscar texto (preferiblemente usando regexp
) dentro de cualquier tipo de búfer (es decir, incluyendo solo lectura como w3m
)?
En otras palabras, estoy buscando el equivalente de Helm a los comandos nativos de Emacs para isearch-forward
( Cs
) / isearch-backward
( Cr
).
Para ilustrar: después de invocar uno de los comandos nativos de isearch
( Cs
o Cr
), podemos salir del modo de búsqueda de una de estas dos formas:
-
podemos salir y volver al punto original (a través de
Cg
), o -
podemos salir y continuar navegando por el búfer desde el punto actual, es decir, desde el texto coincidente actualmente (a través de
RET
entre otros).
Estoy buscando la segunda de estas dos opciones.
Esto es lo que he probado hasta ahora:
-
helm-regexp
: esto es lo más parecido a lo que estoy buscando, pero solo realiza el equivalente deCs
/Cr
+Cg
(es decir, nos lleva de regreso al punto original; no hay opción para terminar la búsqueda y continuar navegando el búfer desde el punto coincidente actualmente). -
helm-do-grep
: parece que esto es solo para buscar texto dentro de archivos (es decir, no funciona en w3m) -
helm-buffer-run-grep
/-zgrep
: ejecutar este comando / función da como resultado un mensaje de error en el mini-búfer:Running helm command outside of context
-
cuando
helm-mode
está habilitado, la invocación deCs
oCr
muestra la característica nativa deisearch
Emacs (no es reemplazada por la interfaz de Helm). (¿Quizás hay una configuración que podemos cambiar para que Helm pueda tomar el control de este comando? Es decir, similar a cómo Helm toma el control del comando nativo parawrite-file
dewrite-file
(Cx Cw
) que se puede usar para cambiar el nombre de un archivo en un búfer abierto. .)
Respuesta:
Puede utilizar helm-ocurre como una herramienta que viene con el módulo de timón básico para esto. Pero para mí, una de las mejores herramientas basadas en timones para la búsqueda de búfer es el timón-swoop de Shingo Fukuyama. Puede obtenerlo de github y a través de MELPA. Tiene la funcionalidad requerida de poder colocar su punto en la posición del partido (que puede ser una expresión regular). Pero también puede usar Cg para que el cursor vuelva al punto de partida.
En la página de github de helm-swoop encontrará un montón de otras funciones útiles que ofrece este paquete (incluidas las búsquedas de múltiples búfer por helm-multi-swoop y la capacidad de editar las líneas de los resultados, de modo que los cambios sean aplicado al búfer subyacente).