Поэтому я helm-swoop
смотрю на все файлы в проекте, а не только на текущий набор открытых буферов.
Это позволяет мне использовать swoop, чтобы найти все вхождения в проекте, отметить соответствующие и затем отредактировать их (в режиме редактирования helm swoops).
Я чувствую, что, возможно, есть чистый способ сделать это с помощью Helm / Helm swoop, но вот моя попытка обдумать решение:
- собрать имена файлов из снаряда
- создать список буферов из списка имен файлов
- выполните ту же процедуру, что и helm-multi-swoop-all, кроме использования этого нового списка буферов
(projectile-current-project-files)
Похоже, это дает мне список файлов, которые я ищу.
Итак helm-multi-swoop-all
, похоже, что это было бы довольно легко скопировать, а затем настроить.
(defun helm-multi-swoop-all (&optional $query)
(interactive)
"Apply all buffers to helm-multi-swoop"
(cond ($query
(setq helm-multi-swoop-query $query))
(mark-active
(let (($st (buffer-substring-no-properties
(region-beginning) (region-end))))
(if (string-match "\n" $st)
(message "Multi line region is not allowed")
(setq helm-multi-swoop-query
(helm-swoop-pre-input-optimize $st)))))
((setq helm-multi-swoop-query
(helm-swoop-pre-input-optimize
(funcall helm-swoop-pre-input-function))))
(t (setq helm-multi-swoop-query "")))
(helm-multi-swoop--exec nil
:$query helm-multi-swoop-query
:$buflist (helm-multi-swoop--get-buffer-list)))
Просто замените вызов на helm-multi-swoop--get-buffer-list
тот, который предоставил список буферов, использующих список снарядов.
Но сейчас я немного застрял. Я не уверен, как создать список буферов для подачи в helm-swoop из набора имен файлов.
Я также не могу помочь, но думаю, что есть более простой способ достичь этого, может быть, без пользовательских функций.
helm-swoop
. Делает ли, helm-projectile-grep
а затем F3
M-x
wgrep-mode
делает его «редактируемым»?
helm-projectile-ack
вместо этого.