Nur Zeilen anzeigen, die Phrase / Regex enthalten

8

Ich möchte alle Zeilen aus dem aktuellen Puffer sehen, die eine Phrase enthalten oder mit Regex übereinstimmen. Beispiel:

Mein Puffer:

dam madam
madam

this is da
m a
dam 1
dam 2
dam pi
dam 321:)
is dam 2?

Auf der Suche nach dam. Ergebnis: dam madam dam 1 dam 2 dam pi dam 321:) is dam 2?

Der gleiche Puffer. Auf der Suche nach regulären Ausdrücken : ^dam\s\d. Ergebnis: dam 1 dam 2 dam 321:)

Wie kann ich das machen?

MatthewRock
quelle
helm-swoop github.com/ShingoFukuyama/helm-swoop bietet dies als interaktive Suche an und unterstützt reguläre Ausdrücke. Es gibt Ihnen ein temporäres Menü mit übereinstimmenden Zeilen, von dem Sie schnell zu einer zur Bearbeitung springen können
Tyler
4
Alternativ erstellt die integrierte Funktion occureinen neuen Puffer, in dem alle Zeilen aufgelistet sind, die Ihrem regulären Ausdruck entsprechen. Durch Drücken eder Taste können Sie diese Zeilen direkt aus dem aufgetretenen Puffer bearbeiten.
Tyler

Antworten:

13

... alle Zeilen aus dem aktuellen Puffer sehen ...

Mit eingebauten Befehlen und ohne externe Pakete oder Abhängigkeiten in

Verwenden Sie einen neuen Puffer:

M-x occur

Verwenden Sie denselben Puffer:

M-x keep-lines
Emacs Benutzer
quelle
Großartig! Das habe ich gesucht!
MatthewRock
1

Icicles Multi-Command icicle-occur(gebunden an C-'Icicle-Modus) erledigt dies.

Während Sie in den Minibuffer eingeben, werden die Zeilen, die dem von Ihnen eingegebenen Muster entsprechen, als Abschlusskandidaten angezeigt. Ihr Muster kann so einfach oder so komplex sein (z. B. ein regulärer Ausdruck), wie Sie möchten. Sie können das Muster dynamisch ändern, und die Anzahl der Übereinstimmungen ändert sich entsprechend.

Sie können Suchmuster kombinieren, dh Sie können eine beliebige Anzahl davon verwenden, um die Anzahl der Suchtreffer einzugrenzen. Es ist normalerweise viel einfacher, zwei oder mehr einfache Suchmuster zu verwenden, als zu versuchen, einen komplexen regulären Ausdruck zu erstellen, der genau das tut, was Sie wollen. (Aber jedes der einzelnen Suchmuster kann so komplex sein, wie Sie möchten.)

Sie können zwischen Spielen wechseln oder eines von ihnen in beliebiger Reihenfolge besuchen. Bei Bedarf können Sie Übereinstimmungen sogar selektiv ersetzen.

Siehe die Übersicht über die Eiszapfensuche .

Drew
quelle