Mouse-Free Development für Beginner
First things first.
«Emacs is a great operating system – it lacks a good editor, though.» Thomer M. Gil
In diesem Blogpost über Mouse-Free Development werde ich mich jedoch auf den Vi-Editor beziehen. Aus dem einfachen Grund: Ich bin überzeugter Vi-Nutzer – genau genommen Vim. Zugegeben, die Entscheidung war eher zufällig – obwohl ich natürlich mittlerweile Vi für den besseren Editor halte als Emacs ;).
Vim stellt eine erweiterte Version von Vi dar. Wer es genauer wissen möchte: Der Befehl “:h vi-differences” in Vim öffnet eine entsprechende Hilfeseite, auf der die genauen Unterschiede zu Vi erklärt werden – bei der Gelegenheit auch gleich mal ":h 42" ausprobieren.
Gute Gründe für Mouse-Free Development
Beim Programmieren finde ich es mühsam mich mit der Maus durch eine grafische Benutzeroberfläche oder durch ein SDK (Software Development Kit) zu klicken. Mit den richtigen Tools kommt man hier meistens schneller ans Ziel, als über das umständliche Klicken mittels Maus durch den Finder – insofern es sich nicht gerade um eine Retusche handelt, was als Backend-Entwickler selten an der Tagesordnung steht.
Auf den richtigen Editor kommt es an
Für mich ist Vim die beste Wahl. Der command-line Editor lässt sich perfekt in den Mouse-Free-Workflow integrieren. Er ist durch sein Plugin-System beliebig erweiterbar und mächtiger als jeder andere Editor, den ich kenne. Außerdem ist Vim auf nahezu jedem Betriebssystem verfügbar. Zugegeben, die Lernkurve ist etwas steil und das Erlernen erfordert einiges an Disziplin und Durchhaltevermögen – aber es lohnt sich!
1. Schritt
Der Einstieg lässt sich entweder mittels vimtutor (einfach mal im Terminal eintippen) oder auch spielerisch auf vim-adventures.com bewältigen.
Die Navigation in Vim funktioniert über folgende Tasten:
- h' (links)
- 'j' (runter)
- 'k' (rauf)
- 'l' (rechts)
Was zunächst etwas absurd und umständlich anmuten mag, stellt sich bei genauerer Betrachtung als äußerst praktisch und überaus effizient heraus. Die gewohnte Handstellung beim Schreiben wird für die Navigation lediglich um eine Taste nach links verschoben.
2. Schritt
Grundsätzlich gibt es in Vim drei relevante Modi:
- Insert Mode: Durch drücken der 'i' Taste aus dem Command Mode gelangt man in den Insert Mode. Dieser Modus wird verwendet um Text zu schreiben beziehungsweie zu editieren.
- Visual Mode: Durch drücken der 'v' Taste aus dem Command Mode gelangt man in den Visual Mode. In diesem Modus können ganze Textblöcke visuell markiert und in Folge bearbeitet werden.
- Command Mode: Durch drücken der 'ESC' Taste gelangt man in den Command Mode. Im Command Mode lassen sich zahlreiche Befehle und Kombinationen ausführen.
3. Schritt
- yy –Kopieren einer ganzen Zeile
- p – einfügen einer Zeile nach der aktuellen Zeile
- P – einfügen einer Zeile vor der aktuellen Zeile
- dd – löschen einer ganzen Zeile
- u – undo
- crtl + r – redo
- ctrl + o – mit dem Cursor in der History zurück
- ctrl + i – mit dem Cursor in der History nach vorne
- $ – zum Ende der Zeile springen ohne den Command Mode zu verlassen
- 0 – zum Anfang der Zeile springen ohne den Command Mode zu verlassen
- w – an den Anfang des nächsten Wortes springen
- e – an das Ende des nächsten Wortes springen
- SHIFT + A – zum Ende der Zeile springen und in den Insert Mode wechseln
- gg – an den Anfang der Datei springen
- G – ans Ende der Datei springen
- O – neue Zeile vor der aktuellen Zeile einfügen und in den Insert Mode wechseln
- o – neue Zeile nach der aktuellen Zeile eiund in den Insert Mode wechseln
- cw – aktuelles Wort unter dem Cursor bis zum Ende ersetzen
- x – löschen des Zeichens unter dem Cursor
- r – ersetzen des Zeichens unter dem Curser
- ciw – aktuelles Wort unter dem Cursor komplett ersetzen
- dw – aktuelles Wort unter dem Cursor bis zum Ende löschen
- diw – aktuelles Wort unter dem Cursor komplett löschen
- vw – aktuelles Wort unter dem Cursor bis zum Ende markieren
- viw – aktuelles Wort unter dem Cursor komplett markieren
- yw – aktuelles Wort unter dem Cursor bis zum Ende kopieren
- yiw – aktuelles Wort unter dem Cursor komplett kopieren
- ci( oder “,<,[,{ – alles innerhalb eines Zeichens ersetzen
- vi( oder “,<,[,{ – alles innerhalb einer Zeichens markieren
- yi (oder “,<,[,{ – alles innerhalb einer Zeichens kopieren
- di (oder “,<,[,{ – alles innerhalb einer Zeichens löschen
- r – Zeichen unter dem Cursor ersetzen
- ctrl + a – Zahl unter dem Cursor decrementieren
- ctrl + A – Zahl unter dem Cursor inkrementieren
- ctrl + o – In der History mit dem Cursor zurückspringen
- ctrl + i – In der History mit dem Cursor vor
- J – nächste Zeile an die aktuelle anhängen
- I – an den Anfang der aktuellen Zeile springen und in den Insert Mode wechseln
- zz – aktuelle Curserposition zentrieren
- /
– Nach einem Wort suchen (n springt zum Nächsten, N zum vorigen) - :%s/
/ – begriff1 im gesamten File mit begriff2 ersetzen/g
- :w – speichern
- :q – schliessen
- :x (auch :wq oder ZZ) – speichern und schliessen
- :
– zur entsprechenden Zeile springen
Das ist natürlich nur eine kleine Auswahl an Kürzel und Kombinationen.
Und weiter geht's
Die gute Nachricht: Mit diesem Blogbeitrag ist noch lange nicht Schluss! Wir gehen weiter in die Tiefe.