Wie kann ich mit Strg-P ​​interaktiv nach Dateiinhalten für alle Dateien in einem Projekt suchen?


15

Ich habe heute versucht, alle Dateien eines Projekts zu durchsuchen. Ich benutze Strg-P und suche in Zeilen wie folgt:

Bildschirmfoto

Das Ergebnis der Suche bezieht sich jedoch nur auf die zuvor geöffnete Datei. Hier öffne ich nur main.php.

Kennen Sie eine Möglichkeit, nach allen Dateien zu suchen, ohne sie einzeln öffnen zu müssen?

Vielen Dank,


1
Das möchte ich auch. Wenn Sie ack oder ag verwenden, sollte die Leistung kein Problem sein. Wenn Sie neovim verwenden, sollte es außerdem asynchron sein, sodass auch kein Block vorhanden sein sollte.
mhartington

Schließlich benutze ich ag als ctrlp-Befehl :)
nobe4

Antworten:


13

:CtrlPLine soll eigentlich auf gelisteten Puffern arbeiten.

Wenn Sie diese Funktion unbedingt für jede Datei in Ihrem Projekt verwenden möchten, können Sie sie zur Argumentliste (und damit zur Pufferliste) hinzufügen.

:argadd **/*.php

das klingt aber aus leistungsgründen nicht nach einer sehr guten idee.

Verwenden :vimgrepoder :grepklingt für mich viel besser:

:vim foo **/*.php
:cw

Sie verlieren natürlich die "Unschärfe" von CtrlP, erhalten aber im Gegenzug Zuverlässigkeit und Flexibilität.

Referenz:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix

Ein wesentlicher Unterschied zwischen CtrlP und vim-grep ist, dass CtrlP interaktiv ist .
ideasman42

1

Sie sollten diese Plugins Sidesearch oder fzf verwenden

Beide erlauben die Suche in rekursiven Verzeichnissen mit silversearch-ag

Mit fzf können Sie die aufgelisteten Dateien durchsuchen, die Ihre Zeichenfolge enthalten.


1
Hallo @MisterBanal, willkommen auf unserer Seite! Sie sollten in Ihrer Antwort genau angeben, ob diese Plugins mit CtrlP als OP verbunden werden können. Wenn sie miteinander verbunden werden können, sollten Sie erklären, wie und wenn sie es nicht können, sollten Sie zumindest ein grundlegendes Beispiel für deren Verwendung geben, da sonst Ihre Antwort die Frage nicht wirklich beantwortet. (Sie können Ihre Antwort mit der Schaltfläche "Bearbeiten" unter dem Text ändern).
statox
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.