|

Atom und vi(m): ein Traum wird wahr

Ich liebe den vi(m), insbesondere wenn ich in einem Repository arbeite. Es ist so leicht, schnell mal eben eine Datei per Konsole zu Ă€ndern, so einfach alle Trumps durch Biden zu ersetzen: :1,$ s/[Tt]rump/Biden/g. Aber am Desktop habe auch ich bisher natĂŒrlich GUI basierte Editoren genutzt, Gedit z.B. Oder – seit einigen Monaten – Atom. Daher rutschten mir manchmal vi-Befehle wie xi in meine Texte – weil ich vergessen hatte, dass ich einen Desktop-Editor benutzte. Aber jetzt ist ein Traum wahr geworden:

Das Plugin atom-vim-mode-plus – zu installieren mit dem Shell-Kommando apm install vim-mode-plus – erlaubt uns, die vi(m)-Befehle im Atom zu nutzen!

Zu erst ein kleiner Vorbehalt 


Hat man das Package vim-mode-plus in Atom installiert, kann man nicht mehr direkt mit dem Tippen loslegen. Man muss vorher ein wenig mit den vi-modes vertraut werden: LĂ€dt man eine Datei oder legt, eine neu an startet Atom im visual-mode. Das ist ein vi(m)-Modus, der Kommandos akzeptiert und auf den angezeigten Text anwendet. i ist einer dieser Befehle. Er stĂ¶ĂŸt den Wechsel in den insert-mode an und erlaubt uns, Text einzugeben. Um dann Befehle auf den gerade eingegebenen Text anzuwenden, mĂŒssen wir allerdings per esc in den visual mode zurĂŒckkehren.


 dann einige beruhigende Worte 


Atom bietet von sich aus schon Optionen, seinen Text zu bearbeiten: Man kann Passagen selektieren, ausschneiden, kopieren und wieder einfĂŒgen, ganze Zeilen verschieben, Wörter in Großbuchstaben verwandeln u.Ä.m. All diese Möglichkeiten können auch mit installiertem vim-mode-plus genutzt werden, und zwar unabhĂ€ngig davon, ob man im visual mode or in the insert mode arbeitet. Selbst das Atom eigene ‚Suchen-und-Ersetzen‘ funktioniert wie erwartet. Das vim-mode-plus-Plugin erweitert also die Möglichkeiten unseres Editors ’nur‘, es verĂ€ndert sie nicht – außer dass man eben bei der Eingabe von Text den aktuellen Arbeitsmodus im Hinterkopf haben muss.


 und schließlich eine Liste neuer Möglichkeiten:

Der Nachteil der reinen Atom-FĂ€higkeiten ist, dass man die Maus benutzen muss. Das bremst. vi(m) bietet dagegen den Vorteil, alles ĂŒber die Tastatur machen zu können. Das erhöht die Arbeitsgeschwindigkeit – selbst wenn man nur mit einem 3-Fingersystem tippt. Hier ein paar zentrale Eigenschaften vom vi(m), die jetzt auch im Atom nutzbar sind:

Den Cursor platzieren:

Die vertrauten Pfeiltasten funktionieren wie erwartet, im visual-mode und im insert-mode). Die anderen Kommandos wirken dagegen nur im visual-mode:

  • Mit den vim-‚Pfeilersatztasten‘ h, j , k, l kann man den Cursor ebenso nach links, nach unten, nach oben und nach rechts bewegen. Legt man den Zeigefinger auf einer QWERTZ-Tastatur aufs h und die restlichen drei daneben, merkt man, wie organisch das funktioniert. Wenn man allerdings mit den Pfeiltasten so vertraut ist wie ich, wird man diese Option trotzdem eher selten benutzen.

NĂŒtzlicher sind da schon die Tasten

  • w := ein Wort vorwĂ€rts
  • b := ein Wort zurĂŒck
  • e := zum Ende des Wortes, auf dem der Cursor steht
  • ( := zum Anfang des nĂ€chsten Satzes
  • ) := zum Anfang des aktuellen Satzes

Je grĂ¶ĂŸer die Distanz ist, die so ein Sprungbefehl zurĂŒcklegt, um so stĂ€rker die Arbeitsersparnis: Wenn man lange Zeilen mit weichem ‚Word-Wrapping‘ als Quasi-Paragraphen verwendet, um dem Nutzer die Zeilen in einer zur gewĂ€hlten Fensterbreite passenden LĂ€nge anzeigen zu lassen – wie es heutzutage oft bei md-Dateien oder in Mails geschieht – dann wird man es begrĂŒĂŸen, nicht mittels der Pfeiltasten Buchstabe fĂŒr Buchstabe in einer Zeile vor oder zurĂŒck navigieren zu mĂŒssen. Die folgenden Tasten biete andere große SprĂŒnge:

  • 0 := zurĂŒck zum Zeilenanfang
  • $ := vorwĂ€rts zum Zeilenende
  • H := zurĂŒck zur ersten im Fenster sichtbaren Zeile
  • M := in die Zeile in der Mitte des Fenster
  • L := vorwĂ€rts in die letzte sichtbare Zeile

Text einfĂŒgen und Ă€ndern

  • i := unter dem Cursor Text einfĂŒgen
  • a := nach dem Cursor Text einfĂŒgen
  • r := das Zeichen unter dem Cursor ersetzen
  • cw := das Wort unter dem Cursor ersetzen
  • cc := die Zeile unter dem Cursor ersetzen
  • R := der Reihe nach alle Zeichen unter dem Cursor ersetzen bis man mit esc wieder in den visual-mode wechselt

Mit den Kommandos i, a, cw, and cc geht ein Wechsel in den insert-mode einher.

Text löschen

  • x := löscht das Zeichen unter dem Cursor
  • dw := löscht das Wort unter dem Cursor
  • dd := löscht die Zeile unter dem Cursor
  • D := löscht den Rest der Zeile vom Cursor bis zu ihrem Ende

Der Vorteile der Befehle dw und dd ist, dass sie die gelöschten Teile in einen Puffer kopieren, von wo aus sie mittels p oder P auch an anderer Stelle wieder eingefĂŒgt werden können.

Kopieren und EinfĂŒgen

  • yw := kopiert das Wort unter dem Cursor in den Puffer
  • yy := kopiert die Zeile unter dem Cursor in den Puffer
  • p := fĂŒgt den Puffer nach dem Cursor ein
  • P := fĂŒgt den Puffer vor dem Cursor ein

RĂŒckgĂ€ngig machen

  • u := die letzte(n) VerĂ€nderung(en) rĂŒckgĂ€ngig machen
  • U := die Zeile unter dem Cursor wieder herstellen

Suchen

  • / XYZ := nach dem String XYZ suchen

Regex basierte Ersetzungen

Der vi(m) bietet zusĂ€tzlichen einen executing-mode. DrĂŒckt man die Taste : und gibt eine Zeilennummer samt Befehl ein, dann wird dieser Befehl auf den Text an der angegebenen Stelle angewendet. So wĂŒrde z.B. der Befehl : 1,$ s/[Tt]rump/Biden/g alle Vorkommen von Trump oder trump durch Biden ersetzen (s), und zwar von der ersten (1) bis zur letzten Zeile ($).

Solche Ersetzungen ausfĂŒhren zu können, ist oft hilfreich. UnglĂŒcklicherweise kann vim-mode-plus selbst mit dieser Art von Kommandos nichts anfangen. Und sein Autor hat Vorbehalte, den ex-mode zu implementieren. Stattdessen empfiehlt er, zusĂ€tzlich das Plugin / Package ex-mode per apm install ex-mode zu installieren.

Und tatsÀchlich funktioniert das bestens.

Fazit:

Die Plugins vim-mode-plus und ex-mode in Atom zu installieren, bietet uns wirklich die Möglichkeit, die FÀhigkeiten eines graphischen Editors wie Atom und die vi(m)-Eigenschaften kombiniert zu nutzen. Mit anderen Worten: ein Traum ist wahr geworden.

Schreibe einen Kommentar

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

7 + = 9

Diese Site verwendet Cookies. (Details)

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklĂ€rst du sich damit einverstanden.

Schließen