Ich habe angefangen, die Vim-Wortsuche mit *
und zu lernen, #
während sich der Cursor über dem aktuellen Wort befindet. Diese Suche ist jedoch auf den aktuellen Dateipuffer beschränkt.
Gibt es einen Befehl oder eine Verknüpfung, um diese Suche zu erweitern:
- alle geöffneten tabs?
- alle geöffneten Puffer?
Antworten:
Ich habe keine genaue Lösung für Ihr Problem, hoffentlich eine bessere Antwort als meine. Aber so ging ich das Problem an, in allen Puffern ein Wort zu finden.
Die erste Zeile erstellt einen Befehl
Search
mit dem Suchmuster als Argument, der die Ergebnisse in eine Quickfix-Liste schreibt. Die beiden anderen Zeilen ordnen die (zumindest für mich) nutzlosen Pfeiltasten etwas Nützliches zu; Sie werden zugeordnet, um zur nächsten / vorherigen Suche oder zum nächsten / vorherigen Kompilierungsfehler zu springen. Sie durchlaufen einfach die Quickfix-Liste. Sie können dies wie folgt verwenden:quelle
:cn
oder:cp
eingeben, um zum nächsten Dokument zu wechseln.Eigentlich ist es das Standardverhalten, auch wenn es schwer zu bemerken ist:
*
Wechseln Sie in einen anderen Tab und verwenden Sien
ansN
im Befehlsmodus, um zwischen den Suchtreffern vorwärts und rückwärts zu springen.Dies kann sinnvoller sein, wenn Sie zuerst die Hervorhebung für alle Treffer aktivieren:
quelle
hlsearch
wusste ich nicht, und welche ich für den einen oder anderen tag suchen müsste :-). Standardmäßig habe ich jedoch * #, n und N ausprobiert und es wird nicht zu anderen Dateipuffern gesprungen ...n
undN
springen Sie nicht in Puffer (sie werden umbrochen), sondern der Begriff, auf den sie abzielen, wird in allen Registerkarten gesucht. Hit*
mit der Markierung zurück dann Zyklus durch Ihre Tabs - sie werden alle mit dem gleichen Begriff hervorgehoben werden, so dass Sie verwenden könnenn
undN
dort lokal ohne erneute Suche.hlsearch
.quelle
Da ich dies oft gemacht habe, habe ich ein (verbesserungsfähiges) Skript zusammengestellt.
Sie oder jemand anderes könnten es nützlich finden.
Kurze Erklärung:
Grundsätzlich durchsucht es die Pufferliste und zeigt das Ergebnis im Quickfix-Fenster an.
Zwei grundlegende Befehle wurden hinzugefügt.
Search <pattern>
: In allen Puffern nach suchen<pattern>
.Search1 <pattern>
: Durchsucht alle Puffer nach<pattern>
, zeigt aber nur das erste Ergebnis für jeden Puffer an. Dies ist in der Regel nützlich, um alle Puffer aufzulisten, in denen Funktion, Variablefoo
(oder was auch immer) verwendet wird.Verwenden Sie bang (
:Search! foo
), um an die Ergebnisse anzuhängen.Zusätzlich
GSearch
undGSearch1
wird hinzugefügt, wenn der Unterschied darin besteht, dass mitSearch
dem Skript Regex-Trennzeichen hinzugefügt werden , zB:Wo, wie zu
GSearch
erwarten, wird es eingeschlossen.Das
j
Flag wird immer hinzugefügt, um ein Springen zu verhindern.Code:
Es gibt einige Hacks, um die Auflistung von Fehlern zu verhindern und gleichzeitig den Code kurz zu halten.
try / catch
war etwas umständlich aufbufdo
.quelle