Nahaufnahme einer Person, die mit einem Tablet auf einer Decke sitzt.

TechWiese Blog

Visual Studio Code (6): Produktiver durch den richtigen Einsatz der Suchfunktion

15. Januar 2016

Portrait Bild von Tobias Kahlert

Tobias Kahlert

Dieser Blogbeitrag ist ein Repost und stammt im Original aus dem Know-how-Bereich von TechWiese, dessen Artikel in diesem Blog aufgegangen sind.

Eine der nützlichsten Funktionen von Editoren ist die Text-Suche – eine Funktion, die auch fast immer implementiert ist. Visual Studio Code (VS Code) bietet verschiedene Arten der Suche mit unterschiedlichen Optionen, die auch über das Suchen nach simplem Text hinausgehen. Wer schon einmal mit dem großen Bruder Visual Studio gearbeitet hat, wird hier viele Ähnlichkeiten entdecken.

Lokale Suche in einer Datei

Hat man eine Datei geöffnet und möchte nach einem bestimmten Text suchen, kommt die Dateisuche zum Einsatz. Diese kann über die Tastenkombination Strg+F oder über das Kommando „Find“ aufgerufen werden. Es öffnet sich eine kleine Suchbox in der oberen rechten Ecke. Der markierte Text oder das Wort unter dem Cursor sind dann bereits in das Suchfeld eingetragen.

Abbildung 1: Lokale Suche in VS Code
Abbildung 1: Lokale Suche in VS Code

Die Suche besteht aus folgenden Komponenten:

  1. Das Eingabefeld – hier kann der gesuchte Text bzw. Ausdruck eingetragen werden.
  2. Die Option, ob Groß- und Kleinschreibung beachtet werden soll.
  3. Die Option, ob nur ganze Wörter – und nicht auch Teile von längeren Suchbegriffen – gefunden werden sollen.
  4. Die Option, ob statt eines Suchtextes ein regulärer Ausdruck verwendet werden soll. So können komplexe Suchen durgeführt werden. Um zum Beispiel Strings zu finden, kann der Ausdruck "[^"]+" benutzt werden.
  5. Zwei Schaltflächen, um zwischen den gefundenen Stellen vor- und zurückzuspringen.
  6. Eine Schaltfläche mit der man die Suche nur im selektierten Text durchführen kann.
  7. Ein Button, um die Suche zu schließen. Das Drücken der ESC-Taste hat denselben Effekt.

Bei Eingabe eines Suchtextes wird die Suche auch sofort ausgeführt. Ein Bestätigen mit Enter ist nicht nötig. Auf der rechten Seite in der Scroll-Leiste geben orange Balken eine Übersicht über die Fundorte.

Mit dem Pfeil auf der linken Seite der Suchbox lässt sich zusätzlich eine Ersetzen-Zeile einblenden. Hier kann der Text eingegeben werden, der die Suchergebnisse ersetzen soll.

Um einen markierten Text in einer Datei zu finden, ist es übrigens nicht nötig, die Suche aufzurufen. Sobald Text markiert wird oder der Cursor sich auf einem Wort befindet, werden alle gleichen Stellen leicht weiß hervorgehoben. Auf der rechten Seite wird ebenfalls mit weißen Balken eine Übersicht über alle Fundorte angezeigt.

Globale Suche in mehreren Dateien

Oft möchte man eine Suche nicht nur in einer Datei durchführen, sondern im gesamten Projekt. Dazu bietet VS Code die Such-Ansicht. Diese lässt sich über das Lupen-Symbol auf der linken Seite öffnen und gliedert sich in zwei Bereiche: Oben ist die Sucheingabe und unten die Liste mit den Suchergebnissen zu sehen. Das Eingabefeld ist wie bei der lokalen Suche aufgebaut und verfügt auch über die gleiche Funktionalität mit Optionen für Groß- und Kleinschreibung, Suche nach ganzen Wörtern und regulären Ausdrücken. Die Suche startet allerdings nicht automatisch, sondern muss mit Enter bestätigt werden. Ein kleiner blauer Balken am oberen Rand zeigt den Fortschritt bei der Suche an.

Abbildung 2: Globale Suche
Abbildung 2: Globale Suche

Nach Beendigung des Suchvorgangs, werden die Anzahl der Funde und die Funde selbst unter der Sucheingabe aufgelistet. Ein Klick auf eine Fundstelle öffnet die entsprechende Datei an der gewählten Stelle. Muss man viele Stellen bearbeiten, kann es hilfreich sein, die bereits fertigen Dateien aus der Ergebnisliste auszublenden. Fährt man mit der Maus über die Anzahl der gefundenen Stellen, wird ein Kreuz eingeblendet. Ein Klick auf dieses, blendet die Datei aus den aktuellen Suchergebnissen aus. Um alle ausgeblendeten Dateien wieder anzuzeigen oder um allgemein die Suche zu wiederholen, kann man auf den gedrehten Pfeil über der Sucheingabe klicken. Zu beachten ist außerdem, dass bei einer erneuten Suche, zum Beispiel mit einem etwas abgeänderten Suchbegriff, alle ausgeblendeten Dateien wieder mitdurchsucht werden.

Die globale Suche durchsucht alle Dateien, die entweder geöffnet sind oder die sich im geöffneten Ordner befinden (wenn überhaupt ein Ordner geöffnet ist). Es gibt noch verschiedene Möglichkeiten die Suche einzugrenzen. Dazu muss die Sucheingabe durch einen Klick auf die drei Punkte erweitert werden.

Abbildung 3: Erweiterte Optionen zum Filtern von Dateien
Abbildung 3: Erweiterte Optionen zum Filtern von Dateien

Drei weitere Felder ermöglichen, die zu durchsuchenden Dateien genauer zu spezifizieren. Im ersten Feld können Dateien bestimmt werden, die durchsucht werden sollen. Es werden dann keine anderen Dateien durchsucht. Im zweiten Feld lassen sich Dateien angeben, die nicht durchsucht werden sollen, auch wenn sie im ersten Feld eingetragen sind. Damit nicht alle Dateien einzeln eingegeben werden müssen, unterstützt die Suche verschiedene Wildcards. Die relativen Pfade beziehen sich dabei immer auf den geöffneten Ordner.

  • test.ts   - findet alle Dateien mit dem Namen test.ts.
  • src        - findet alle Dateien im Ordner src und seinen Unterordnern.
  • scr,test - findet alle Dateien in den Ordnern src und test und ihren Unterordnern.
  • .ts        - findet alle Dateien, die mit .ts enden.
  • **/src    - findet alle Dateien, die in einem beliebigen Ordner src oder seinen Unterordnern liegen.
  • */src     - findet alle Dateien, die in einem beliebigen Ordner src oder seinen Unterordnern liegen. Die src-Ordner müssen dabei selber in Unterordnern liegen.
  • */*        - findet alle Dateien, die nicht im Wurzelverzeichnis liegen.

Beide Felder lassen sich kombinieren. Sollen zum Beispiel alle Dateien durchsucht werden, die mit „.json“ enden und im Wurzelverzeichnis liegen, kann im ersten Feld „.json“ eingetragen werden. Das führt dazu, dass nur JSON-Dateien mit in die Suche einbezogen werden. In das zweite Feld kann dann */* eingetragen werden. Das wiederum führt dazu, dass von den JSON-Dateien aus dem ersten Durchgang diejenigen wieder verworfen werden, die in Unterverzeichnissen liegen. Übrig bleiben alle JSON-Dateien aus dem Wurzelverzeichnis, die dann nach dem Suchbegriff durchsucht werden.

Außerdem besteht die Möglichkeit, Ordner und Dateien über die Einstellungen auszuschließen. Das geht über die Option „search.exclude“. In den Benutzereinstellungen ergibt das vielleicht nicht wirklich Sinn, aber in Workspace-Einstellungen kann das sehr hilfreich sein. Zum Beispiel, wenn es einen Ordner gibt, der immer nur generierte Dateien enthält, die nicht durchsucht werden sollen. Alle durch Einstellungen ausgeschlossenen Ordner und Dateien werden noch einmal im dritten Feld unter der Suche aufgelistet.

Verweise finden

Befindet man sich in einer Datei, für die VS Code IntelliSense unterstützt (zum Beispiel TypeScript oder JavaScript), ist es auch möglich, Verweise auf Symbole zu suchen. Dazu muss lediglich das Kommando „Find all References“ ausgeführt werden, während sich der Cursor auf dem Symbol befindet. Alternativ kann auch über einen Rechtsklick auf das Symbol das Kontextmenü geöffnet und „Find all References“ ausgewählt werden.

Abbildung 4:Verweissuche von Symbolen
Abbildung 4:Verweissuche von Symbolen

Daraufhin öffnet sich direkt im Quelltext eine Box mit einer Liste von Verweisen und einem Vorschaufenster, in dem der Code um den gewählten Verweis angezeigt wird. Das ist besonders hilfreich, um zum Beispiel alle Stellen, an denen eine Funktion aufgerufen oder eine bestimmte Variable benutzt wird, zu finden.

Wichtige Ressourcen

Visual Studio Code Artikelserie

Grundlagen

Extensions

Weitere Beiträge