Довольно простой вопрос Хелма. Что такое окно / команда / функция Helm, которая позволяет нам искать текст (предпочтительно используя regexp
) в буфере любого типа (т. Е. Включая доступный только для чтения, например w3m
)?
Другими словами, я ищу Helm-эквивалент нативных команд Emacs для isearch-forward
( C-s
) / isearch-backward
( C-r
).
Для иллюстрации: после вызова одной из собственных isearch
команд ( C-s
или C-r
) мы можем выйти из режима поиска одним из двух способов:
мы можем выйти и вернуться в исходную точку (через
C-g
), илимы можем выйти и продолжить просмотр буфера с текущей точки, т. е. из текущего текста (через,
RET
среди прочего).
Я ищу второй из этих двух вариантов.
Вот что я пробовал до сих пор:
helm-regexp
: это самое близкое к тому, что я ищу, но он выполняет только эквивалентC-s
/C-r
+C-g
(т. е. возвращает нас к исходной точке; нет возможности завершить поиск и продолжить просмотр буфера из текущего совпадения точка).helm-do-grep
: кажется, что это только для поиска текста в файлах (то есть, не работает на w3m)helm-buffer-run-grep
/-zgrep
: выполнение этой команды / функции приводит к появлению сообщения об ошибке в мини-буфере:Running helm command outside of context
когда
helm-mode
включено, вызываетC-s
илиC-r
вызывает собственнуюisearch
функцию Emacs (она не заменяется интерфейсом Helm). (может быть, есть настройка, которую мы можем изменить, чтобы Helm мог взять на себя эту команду? то есть, аналогично тому, как Helm принимает собственную команду forwrite-file
(C-x C-w
), которую можно использовать для переименования файла в открытом буфере. просто мозговой штурм.)
helm-occur
сfollow-mode
включенным.Ответы:
Вы можете использовать helm-Встречаться как инструмент, который поставляется для этого с основным модулем helm. Но для меня один из лучших инструментов для поиска в буфере на основе руля - это руль Шинго Фукуямы . Вы можете получить его из GitHub и через MELPA. Он обладает необходимыми вам возможностями, чтобы иметь возможность отбросить свою точку в позиции матча (что может быть регулярным выражением). Но вы также можете использовать Cg, чтобы вернуть курсор туда, где вы начали.
На странице helm-swoop github вы найдете целый ряд других полезных функций, предлагаемых этим пакетом (включая поиск в нескольких буферах с помощью helm-multi-swoop и возможность редактирования строк результатов, чтобы изменения применяется к базовому буферу).
источник
helm-swoop
действительно улучшенная версияhelm-occur
.helm-swoop
... и я никогда не вернусь! СпасибоВы можете использовать,
helm-occur
чтобы увидеть все строки, которые содержат совпадения для вашего шаблона поиска. Вы можете использоватьC-n
иC-p
для навигации по списку, а затем нажмите,RET
чтобы закрыть буфер Helm и переместить курсор на соответствующую строку.Мне нравится включать,
helm-follow-mode
когда я используюhelm-occur
так, чтобы исходное окно всегда показывало контекст текущего выбранного соответствия. Вы можете включить режим слежения автоматически следующим образом:источник