Effizient mit Text, Code und IDEs arbeiten

Keine Kommentare

Hast du dich schon immer gefragt, warum andere Leute ihre Entwicklungsumgebung (Integrated Development Environment, IDE) anders nutzen als du? Ist dir aufgefallen, dass andere beim Programmieren deutlich langsamer oder schneller sind? Kennst du auch diese Person, die ihre Maus für jede einzelne Aktion am Computer verwendet? Oder im Gegensatz dazu die Person, die alles mit ihrer Tastatur auf eine Art und Weise macht, die beim Zusehen magisch wirkt?

Wenn es um die Bearbeitung von Text geht, ist Effizienz normalerweise keine Eigenschaft, die man sich in der Ausbildung oder an der Universität aneignet. Das Gleiche gilt für alle weiteren Funktionen einer IDE, die in der Softwareentwicklung von Nutzen sind. Die Grundlagen werden beim Berufseinstieg erlernt, so dass die meisten Entwickler*innen-Rookies bereits die Grundlagen ihrer IDE und das ein oder andere Tastaturkürzel kennen. Aber das ist oft nur die Spitze des Eisberges, und es gibt viel offenes Potenzial, bis man eine IDE (oder einen einfachen Texteditor) „beherrscht“ und einfach alles, was mit Textdateien zu tun hat, blitzschnell meistert.

Das volle Potenzial begreifen

Der effiziente Umgang mit Text und IDEs kann über Monate, Jahre und Jahrzehnte hinweg langsam erlernt werden. Während man in seiner Karriere vorankommt, nimmt man Wissen und Erfahrung nebenher auf. Aber da das Schreiben von Texten, das Programmieren und die Verwendung von IDEs zu den Kernaktivitäten der Softwareentwicklung gehören, warum sollten wir nicht versuchen, dies schon früh, zu Beginn unserer Reise, zu meistern? Unterschätzen wir das Potenzial, oder sind wir uns dessen zu wenig bewusst?

Leider gibt es keine Zahlen und Metriken, die ich über dieses Potenzial vorlegen kann. Bei den folgenden Szenarien müssen wir unsere Fantasie bemühen:

  1. Du erweiterst ein Feature einer Software, arbeitest mit einer gut ausgestatteten IDE, nutzt aber keine ihrer besonderen Funktionen, verglichen mit dem Windows-Notepad. Du verwendest die Maus, um Text auszuwählen, zu springen und alles weitere. Die Tastatur wird nur zum Tippen verwendet.
  2. Gleiche Funktion, gleiche IDE. Deine Tastatur klimpert, als würdest du ein 80er-Jahre-Synth-Pop-Keyboard-Solo spielen. Du markierst, verschiebst und löschst damit Text und nutzt Tastenkombinationen für IDE-Funktionen. Die Maus liegt daneben – kalt und staubig.

Ich hoffe, dass die suggerierte Arbeitsgeschwindigkeit und Zeiteffizienz von Szenario B als ansprechender wahrgenommen wurde. Auch wenn die Aufgabe komplex ist und einiges an Nachdenken, Hin- und Hergehen erfordert, ist man „Keyboard-only“ immer noch schneller und vielleicht sogar entspannter. Schreiner benutzen aus gutem Grund Sägen, Schraubzwingen, Meißel und andere Werkzeuge. Stell dir vor, du würdest ein großes Stück Holz lediglich mit einer Raspel bearbeiten. Die Auswahl fällt zwar leicht, resultiert aber in einer langweiligen und langsamen Aktivität. Es bringt Freude, mit Werkzeugen ein hohes Maß an Effizienz zu erreichen. Im Bezug auf nicht-Computer-bezogene Tätigkeiten sehen wir in folgendem Video einige inspirierende Beispiele:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Für Menschen, die mit Text arbeiten, gibt es viele digitale, nützliche Werkzeuge verschiedenster Art. Im Betriebssystem verankerte Tastatur-Features, Auswahlfunktionen, spezielle Tastenkombinationen, Syntax-Highlighting, Formatierung, Dateinavigation, Suchen und Ersetzen, Inspektionen und vieles mehr. Los geht’s!

Text ohne Maus bearbeiten

Jeder weiß, wie man Text eingibt und löscht. Aber nicht jeder weiß, wie man Text ohne Computermaus effizient selektiert und de-selektiert, durch den Zeichen-Jungle navigiert und Bestandteile davon verschiebt. Es ist keine Frage, dass man mit einer Maus schnell sein kann (siehe Gamer). Aber es gibt zweifelsohne eine Grenze, vor allem bei der Arbeit mit Text. Alles handwerkliche, was mit der Bearbeitung von Texten zu tun hat, kann auch mit der Tastatur erledigt werden!

Textbearbeitung mit nichts außer der Tastatur

Die grundlegenden Funktionen zur Textauswahl sind im Betriebssystem enthalten. Erweiterte Textbearbeitungsfunktionen werden durch IDEs für das Programmieren beigesteuert. Nimm dir nochmal eine Sekunde Zeit, um über das Potenzial dieser Fähigkeiten nachzudenken: Das Gelernte kann auf jeden zukünftigen Text in jeder Computer- oder menschlichen Sprache angewendet werden, den du schreiben wirst. Falls noch nicht geschehen, ist es an der Zeit, dich mit deiner Tastatur vertraut zu machen.

Mac OSWindows & LinuxFunktion
⌘ + ⬅|➡Home (Pos1) | EndZu Start/Ende der Zeile springen
⌘ + ⬆|⬇Page Up | DownZu Start/Ende der Datei springen
Alt** + ⬅|➡Ctrl + ⬅|➡Zum linken/rechten Wort springen
Alt** + ⬆|⬇Ctrl + ⬆|⬇Zum oberen/unteren Paragraphen springen
Shift + ⬅|➡Shift + ⬅|➡Auswahl ein Zeichen nach links/rechts erweitern*
Shift + ⬆|⬇Shift + ⬆|⬇Auswahl eine Zeile nach oben/unten erweitern*
Shift + Alt** + ⬅|➡Shift + Ctrl + ⬅|➡Auswahl ein Wort nach oben/unten erweitern*
Shift + Alt** + ⬆|⬇Shift + Ctrl + ⬆|⬇Auswahl einen Paragraphen nach oben/unten erweitern*
Shift + ⌘ + ⬅|➡Shift + Home (Pos 1) | EndAuswahl zur linken/rechten Seite der Zeile erweitern*
Shift + ⌘ + ⬆|⬇Shift + Ctrl + Home (Pos 1) | EndAuswahl auf gesamten Inhalt nach oben/unten erweitern*

* bzw. beginnen
** Option-Taste

Bei den Tastenkombinationen lässt sich nicht nur zufällig ein Muster erkennen. Die Pfeiltasten sind intuitiv für die Richtung der Aktion belegt. Mac-Benutzer dürften sich gut merken können, wie man diese Kombinationen mit ⌘, Alt und Shift aufbaut. Eine klassische Windows-Tastatur bietet dafür Shift, Strg, Home und End. Ganz gleich, mit welchem Betriebssystem du arbeitest, diese Tastenkombinationen sind ein großer Zugewinn in deinem Repertoire, wenn du oft mit Text und Code arbeitest.

Umgang mit Mustern in Text

Programmierer haben es oft mit Mustern zu tun. Variablen- und Symbolnamen, doppelte Wörter, Zeilen, Blöcke, Dateien und sogar Verzeichnisse sind etwas, mit dem wir regelmäßig konfrontiert werden. Die oben genannten Standardabkürzungen sind schon sehr hilfreich, aber in den meisten Situationen braucht man ausgeklügelteres Werkzeug.

Jede*r sollte seine/ihre bevorzugte IDE verwenden, und davon gibt es reichlich viele. Der Einfachheit halber und nicht zuletzt aus ehrlicher Empfehlung sind die hier genannten Abkürzungen für JetBrains-IDEs: IntelliJ IDEA, WebStorm, PyCharm, Rider, PhpStorm. Die konkreten Abkürzungen sind jedoch nicht die Hauptaussage dieses Artikels. Falls du andere Tools verwendest, solltest du die genannten Funktionen auch dort aufsuchen, ausprobieren und in deinen Arbeitsalltag integrieren. In stark modularen Editoren und IDEs wie Visual Studio Code („VS Code“) gibt es Funktionen, die du möglicherweise über separate Plugins installieren musst.

Rename all the things

Rename all the things

IDEs sollten beim Umbenennen von Dateien, Klassen, Eigenschaften und Variablen unterstützen. Mit einer geeigneten „Umbenennen“-Funktion können alle Verwendungen eines Symbols auf einmal bearbeitet werden. Damit das funktioniert, muss die IDE in der Lage sein, Abhängigkeiten und Verwendungen zwischen Dateien und Symbolen innerhalb des Codes zu erkennen. Das funktioniert am besten mit typisierten Sprachen für die von der IDE oder Plugins die nötige Unterstützung angeboten wird. Der Aufruf von „Umbenennen“ per Tastenkombination ist bei IntelliJ IDEA und anderen JetBrains IDEs „Shift + F6“.

Variablen umbenennen in IDEA IntelliJ

Wenn du Dinge umbenennst, solltest du so oft wie möglich die Umbenennen-Funktion verwenden und die IDE die Arbeit für dich erledigen lassen. Wenn das aufgrund fehlender Inferenz nicht funktioniert (z. B. lose gekoppelte, event-gesteuerte Komponenten, bestimmte Fälle mit JavaScript etc), muss man sich leider selber mit „Suchen & Ersetzen“ die Hände schmutzig machen.

Suchen und Ersetzen oft verwenden

„Suchen & Ersetzen“ ist ein bekanntes und nützliches Verfahren, um nach Textmustern zu suchen und sie zu ersetzen. Gleichzeitig haben viele Menschen Angst davor, weil es bei falscher Anwendung den gesamten Code in nur einem Augenblick aufmischen und in einen Haufen unordentlicher Änderungen überführen kann.

Hier sind einige Tipps, an denen du dich für die Verbesserung deiner „Suchen & Ersetzen“-Skills orientieren kannst:

  1. Verwende es regelmäßig, um zu lernen. Dazu gehören auch schwierige Situationen, an denen man wachsen kann.
  2. Benutze Tastatur-Shortcuts damit deine Übungen schneller ablaufen und du die Kombinationen verinnerlichst: ⌘/Ctrl (+ Shift) + F für “Suchen” und + R für „Suchen & Ersetzen“.
  3. Beginne immer mit einem Git-Repository, auf dem keine offenen Änderungen liegen. Dann kannst du Fehlversuche schnell wieder rückgängig machen und von vorne beginnen.
  4. Mach dich mit den Optionen der Funktion vertraut: Muster für Dateinamen, Groß-Kleinschreibung ignorieren bzw. beibehalten, RegEx etc. Sie helfen dabei, Suchanfragen zu verfeinern und den ersetzten Wert zu dynamisieren, um in schwierigen Fällen bessere Ergebnisse zu erzielen.
  5. Isoliere unterschiedliche Fälle in einzelne Schritte. Wenn die gesuchte Zeichenfolge in mehreren verschiedenen Varianten vorkommt, gehe sie nacheinander durch. Beginne mit der einfachsten um in kleinen Schritten (aber dafür sicher) weiterzukommen.
  6. Wenn schwierige Fälle überbleiben, kannst du diese immer noch manuell lösen und hast den gesamten Vorgang trotzdem schneller gemeistert.

Je größer die vorgenommene Änderung ist, desto mehr dieser Tipps werden dafür hilfreich sein. Für das Ersetzen von ein bis drei Vorkommnissen in einer kleinen Datei ist das Vorgehen jedoch häufig übertrieben bzw. besser mit der Suchen-&-Ersetzen-Funktion im einzelnen Datei-Tab zu erledigen. Falls du eine große Änderung in mehreren Schritten im Zuge eines Refactorings durchführst, beinhaltet dieser Tweet von Kent Back eine hilfreiche Weisheit:

Tweet von Kent Back über Refactoring

Multi-Cursor für die speziellen Fälle

Diese Funktion moderner IDEs ermöglicht es, mehrere aktive Cursor in der offenen Datei zu platzieren. Diese Cursor verhalten sich beim Eingeben oder Löschen von Text identisch. Das kommt einer visuellen, interaktive Art von „Suchen & Ersetzen“ in einer einzelnen Datei gleich. Es ist empfehlenswert, wenn „Suchen & Ersetzen“ nicht in Frage kommt, weil der zu bearbeitenden Text nicht über ein triviales Textmuster auffindbar ist.

Multi Cursor-Demo in IntelliJ IDEA

Die Animation zeigt einen Fall, der auch mit Suchen & Ersetzen gelöst werden kann. Der Multi-Cursor ist sogar noch hilfreicher, wenn du jedem Insert-Statement einen Wert für eine Spalte hinzufügen musst, die Zeichenspalte aber in jeder Zeile eine andere ist. Normalerweise würde man die Zeilen manuell nacheinander bearbeiten. Die Verwendung mehrerer Cursor kann schneller sein, da man mit der Auswahl der Codestellen beginnt und dann nur noch einmal tippen muss.

In einer IDE navigieren

IDEs haben heutzutage viele fantastische Funktionen. Wenn man in einem großen Haufen von Tabs und Fenstern navigieren möchte, muss man lediglich ein paar grundlegende Tastenkombinationen lernen.

Zwischen Editor, Sidebar Tabs und Dateien wechseln

Viel Wegstrecke wird mit der Maus zwischen File-Editoren, Sidebar und anderen Sidebar Tabs (Terminal, Ausführung von Tests, Datenbank-Explorer o.ä.) zurückgelegt. Diese zeitraubende Beschäftigung kann mit wenigen einfachen Kürzeln auf der Tastatur abgekürzt werden. Entdecken Entwickler*innen diese Shortcuts einmal, werden sie häufig so schnell, dass es für Zuschauer schwierig wird, nachzuvollziehen was gerade passiert.

IntelliJ IDEA-Fenster mit der Tastatur navigieren

Mac OSWindows & LinuxFunktion
EscEscZurück in den Datei-Editor (aus dem Fokus eines anderen Tabs)
⌘ + WCtrl + F4Aktuelle Datei oder Sidebar Tab schließen
⌘ + [1-9]Ctrl + [1-9)Zu bestimmtem Sidebar Tab (or anderem Tab) springen
Pfeiltasten, EnterPfeiltasten, EnterIm Datei-Explorer navigieren, Verzeichnisse ein- & ausklappen, öffnen

Oft möchte man auch lediglich zwischen aktuell oder vor kurzem geöffneten Dateien navigieren. Das funktioniert genau wie das Umschalten von Tabs in einem Webbrowser. In JetBrains IDEs kannst du zusätzlich den „Switcher“-Dialog verwenden, indem die Strg-Taste gedrückt halten und einmal Tab getippt wird. Durch Drücken der Tabulatortaste im Switcher kannst du zwischen den Zeilen wechseln. Es gibt auch weitere praktische Navigationsziele neben den aktuell geöffneten oder kürzlich besuchten Dateien, die man sich ansehen kann.

Dinge schnell finden

Egal ob Fehlersuche, neues Feature oder Erweiterung eines Features – oft beginnt alles damit, die richtige Stelle in einer Codebasis zu finden. Um nachzuschlagen wie ähnliche Funktionen implementiert oder benannt wurden oder zum Nachvollziehen von Aufruf-Reihenfolgen. Man ist gut damit beraten, zu üben sich schnell in einer Codebasis bewegen zu können ohne die genaue Stelle über die Datei-Navigation anzusteuern.

Dinge in IntelliJ IDEA suchen und finden

Deswegen kann man sich in modernen IDEs an Datei-, Klassen-, Methoden- und Variablen-Namen orientieren und eine gesuchte Stelle schnell ausfindig machen. Bei „Suchen & Ersetzen“ haben wir bereits gelernt, wie man nach dem Vorkommen von Zeichenketten sucht.

ShortcutFunktion
⌘ + Shift + ODateien durchsuchen
⌘ + OKlassen durchsuchen
⌘ + Alt + OSymbols durchsuchen
⌘ + Shift + AAktionen durchsuchen
Doppel-Shiftalles durchsuchen

Die Verwendung von Suchfunktionen ist in jeder Phase der Arbeit an einem Softwareprojekt sehr wichtig. Für den Einstieg in eine Codebasis ist es hilfreich, die Namen von Dateien, Klassen und Symbolen zu kennen – auch wenn du mehrere Anläufe brauchst um das Ziel zu finden. Zum einen lernt man dadurch schnell über die Codebasis, Benennungen sowie verwendete Konventionen und überprüft gleichzeitig ob Benennungen auch intuitiv und sprechend für das Entwicklungsteam sind. So wie die IDE das Repository indiziert, tut es auch (langsamer) euer Gehirn, und das ist ein entscheidender Faktor um effektiver zu werden.

Mehr Aktionen und Tipps für IDEs

Wie bereits erwähnt, kratzt dieser Artikel nur an der Oberfläche dessen, was mit IDEs und Tastaturkürzeln möglich ist. Für weitere Informationen haben die meisten IDE-Hersteller schöne und praktische PDF-Spickzettel. Es lohnt sich, sie auszudrucken und neben dem Monitor aufzuhängen:

Wenn du mal einen Shortcut nicht kennst, aber die Aktion trotzdem einigermaßen schnell finden und ausführen willst, denk an die Suchfunktion für Aktionen. In JetBrains-IDEs kann man mit ⌘/Strg + Umschalt + A nach Aktionen suchen. Dadurch spart man, im Vergleich zu einer langen Wanderung mit der Maus, einige Meter.

Zum Lernen von Shortcuts empfiehlt sich auch das Plugin Key Promoter X. Es erkennt, wenn Aktionen mit der Maus ausgeführt werden und weist anschließend mit einer kleinen Meldung auf den Tastatur-Shortcut hin:

IntelliJ IDEA - Key Promoter X plugin

JetBrains IDEs enthalten außerdem ein Werkzeug namens „Productivity Guide“. Es zeichnet auf, wie oft Aktionen mit der Maus sowie mit Shortcut verwendet werden und stellt dies übersichtlich dar. Es eignet sich gut dafür zu sehen, in welchen oft benutzen Aktionen noch Potenzial für Zeitersparnisse steckt. Auch gibt es einen tollen Überblick darüber, welche Aktionen es überhaupt gibt. Häufig ist noch etwas dabei, was man über ein Kontext-Menü mit der Maus bisher gar nicht wahrgenommen hat. Den Productivity Guide findet man beim Durchsuchen aller Aktionen sowie im Hilfe-Menü der besagten IDEs.

IDE-übergreifende Tastaturbelegungen

Ein weiteres bekanntes Problem ist der Wechsel von IDEs, da dies oft die Herausforderung mit sich bringt, eine neue Tastaturbelegung zu lernen. Wenn du nicht sofort die neue Tastaturbelegung lernen willst, gibt es oft die Möglichkeit, die Tastaturbelegung einer anderen IDE zu importieren oder zu imitieren.
Wenn du die JetBrains-Tastaturbelegung in VS Code benutzen willst, empfiehlt sich das Plugin IntelliJ IDEA Keybindings. Andersherum kannst du auch mit der VS Code-Tastaturbelegung in JetBrains IDEs loszulegen, indem du das Plugin VS Code Keymap benutzt. Viele Leute verspüren auch immer noch eine große Hürde vor dem Wechsel von Eclipse zu IntelliJ IDEA. Hier kann das JetBrains Plugin Eclipse Keymap sicherlich Abhilfe schaffen, um für den Anfang erstmal die alten Shortcuts mitzunehmen.

Auch du kannst es schaffen!

Probier es aus und trau dir zu, weitere Fortschritte zu machen. Es lohnt sich immer, Zeit in das Erlernen von Fähigkeiten zu investieren. Fortschritt bedeutet auch, zwei Schritte vorwärts und einen Schritt zurück zu gehen. Das Erlernen von Alltagsroutinen braucht Zeit, und du wirst vermutlich langsamer werden, bevor sich die Bemühungen auszahlen. Erinnerst du dich daran, das Schreiben mit zehn Fingern auf der Tastatur zu lernen? Jetzt kommt das nächste Level.

Ich bin mir sicher, dass es noch viele weitere Coding-Effizienz-Hacks gibt, die dieser Artikel nicht umfasst. Wenn dir welche einfallen, würde ich mich über ein Kommentar über deine Tricks und Erfahrungen freuen.

Jonas entwickelt als Full Stack Developer leidenschaftlich gerne digitale Produkte in agilen, crossfunktionen Teams. Dabei verwendet er am liebsten Cloud Native-Ansätze wie Serverless und Managed Services der AWS (Amazon Web Services). Ursprünglich von Java geprägt, greift er heute präferiert auf Node.js, TypeScript und moderne JavaScript-Libraries und Tools zurück.

Über 1.000 Abonnenten sind up to date!

Die neuesten Tipps, Tricks, Tools und Technologien.
Jede Woche direkt in deine Inbox.

Kostenfrei anmelden und immer auf dem neuesten Stand bleiben!
(Keine Sorge, du kannst dich jederzeit abmelden.)

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.