Also ich bin auf der Suche haben helm-swoop
Blick auf alle Dateien in einem Projekt, nicht nur den aktuellen Satz von offenen Puffer.
Auf diese Weise kann ich Swoop verwenden, um alle Vorkommen in einem Projekt zu finden, relevante Vorkommen zu markieren und sie dann zu bearbeiten (im Swoop-Bearbeitungsmodus).
Ich habe das Gefühl, dass es wahrscheinlich einen sauberen Weg gibt, dies mit Helm / Helm Swoop zu tun, aber hier ist mein Versuch, eine Lösung zu finden:
- Sammeln von Dateinamen aus Projektil
- Erstellen Sie eine Liste von Puffern aus der Dateinamenliste
- Führen Sie die gleiche Routine wie helm-multi-swoop-all aus, außer dass Sie diese neue Pufferliste verwenden
(projectile-current-project-files)
, sieht aus wie es mir die Dateiliste gibt, die ich suche.
So helm-multi-swoop-all
, sieht aus wie es wäre ziemlich einfach zu kopieren und dann zwicken.
(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)))
Ersetzen Sie einfach den Aufruf von helm-multi-swoop--get-buffer-list
zu einem, der eine Liste von Puffern mithilfe der Projektilliste bereitgestellt hat.
Aber jetzt stecke ich ein bisschen fest. Ich bin nicht sicher, wie ich eine Liste von Puffern erstellen soll, die aus einer Reihe von Dateinamen in helm-swoop eingespeist werden.
Ich kann auch nicht anders, als zu glauben, dass es einen einfacheren Weg gibt, dies zu erreichen, möglicherweise ohne benutzerdefinierte Funktionen.
helm-projectile-ack
stattdessen zu verwenden.helm-swoop
. Macht man einhelm-projectile-grep
undF3
M-x
wgrep-mode
macht es dann "editierbar"?Antworten:
Nach den interessanten Kommentaren von PythonNut habe ich das Projektilpaket über installiert
helm-ag
und ausgeführt . Ich habe dann mit in den Bearbeitungsmodus gewechselt . Ich habe ein paar Zeilen geändert und dann gedrückt und diese wurden in den entsprechenden Dateien gespeichert.helm-projectile-ag
C-c p s s
C-c C-e
C-c C-c
Dies funktioniert, aber derzeit besteht eine Besonderheit darin, dass jede der "übereinstimmenden" Dateien mehrfach gespeichert wird, unabhängig davon, ob eine Änderung vorgenommen wurde oder nicht. Ich habe dies als Projektil # 756 angehoben .
Abgesehen davon denke ich, dass es gut für den in der Frage genannten Bedarf und "ohne benutzerdefinierte Funktionen" funktionieren würde :-)
quelle
helm-git-grep
helm-projectile-ag