Então, eu estou olhando para helm-swoop
ver todos os arquivos em um projeto, não apenas o conjunto atual de buffers abertos.
Isso é para que eu possa usar o swoop para encontrar todas as ocorrências em um projeto, marcar as relevantes e depois editá-las (no modo de edição de helm swoops).
Eu sinto que provavelmente existe uma maneira limpa de fazer isso com Helm / Helm swoop, mas aqui está minha tentativa de pensar em uma solução:
- reunir nomes de arquivos do projétil
- crie uma lista de buffers a partir da lista de nomes de arquivo
- faça a mesma rotina que helm-multi-swoop-all, além de usar esta nova lista de buffers
(projectile-current-project-files)
, parece que me fornece a lista de arquivos que estou procurando.
Então helm-multi-swoop-all
, parece que seria bastante fácil copiar e ajustar.
(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)))
Basta substituir a chamada para helm-multi-swoop--get-buffer-list
, por uma que forneceu uma lista de buffers usando a lista de projéteis.
Mas agora estou um pouco preso. Não sei como criar uma lista de buffers para alimentar helm-swoop a partir de um conjunto de nomes de arquivos.
Também não posso deixar de pensar que há uma maneira mais simples de conseguir isso, talvez sem funções personalizadas.
helm-projectile-ack
lugar.helm-swoop
. Fazer umhelm-projectile-grep
e depoisF3
M-x
wgrep-mode
torná-lo "editável"?Respostas:
Após os comentários interessantes do PythonNut, eu instalei
helm-ag
e executeihelm-projectile-ag
o pacote de projéteis viaC-c p s s
. Eu então mudei para o modo de edição comC-c C-e
. Alterei algumas linhas e pressioneiC-c C-c
e elas foram salvas nos arquivos relevantes.Isso funciona, mas no momento uma infelicidade é que ele salva cada um dos arquivos "correspondentes" várias vezes, independentemente de haver ou não uma alteração. Eu levantei isso como projétil # 756 .
Além disso, acho que funcionaria bem para a necessidade mencionada na pergunta e "sem funções personalizadas" :-)
fonte
helm-git-grep
deve ser mais rápido do quehelm-projectile-ag