Open-Source Tools

Atom und Vi(m)-Plugin: ein Traum wird wahr

Atom and VI - combined

Ich lie­be den vi(m), ins­be­son­de­re wenn ich in einem Repo­si­to­ry arbei­te. Es ist so leicht, schnell mal eben eine Datei per Kon­so­le zu ändern, so ein­fach alle Trumps durch Biden zu erset­zen: :1,$ s/[Tt]rump/Biden/g. Das hilft sogar bei Stra­to per ssh. Aber am Desk­top habe auch ich bis­her natür­lich GUI basier­te Edi­to­ren genutzt, Gedit z.B. Oder — seit eini­gen Mona­ten — Atom. Daher rutsch­ten mir manch­mal vi-Befeh­le wie xi in mei­ne Tex­te — weil ich ver­ges­sen hat­te, dass ich einen Desk­top-Edi­tor benutz­te. Das wird jetzt anders, Atom mit Vi(m)-Plugin sei Dank:

Das Plug­in atom-vim-mode-plus — zu instal­lie­ren mit dem Shell-Kom­man­do apm install vim-mode-plus — erlaubt uns, die vi(m)-Befeh­le im Atom zu nut­zen!

Zu erst ein kleiner Vorbehalt …

Hat man das Packa­ge vim-mode-plus in Atom instal­liert, kann man nicht mehr direkt mit dem Tip­pen los­le­gen. Man muss vor­her ein wenig mit den vi-modes ver­traut wer­den: Lädt man eine Datei oder legt, eine neu an star­tet Atom im visu­al-mode. Das ist ein vi(m)-Modus, der Kom­man­dos akzep­tiert und auf den ange­zeig­ten Text anwen­det. i ist einer die­ser Befeh­le. Er stößt den Wech­sel in den insert-mode an und erlaubt uns, Text ein­zu­ge­ben. Um dann Befeh­le auf den gera­de ein­ge­ge­be­nen Text anzu­wen­den, müs­sen wir aller­dings per esc in den visu­al mode zurück­keh­ren.

… dann einige beruhigende Worte …

Atom bie­tet von sich aus schon Optio­nen, sei­nen Text zu bear­bei­ten: Man kann Pas­sa­gen selek­tie­ren, aus­schnei­den, kopie­ren und wie­der ein­fü­gen, gan­ze Zei­len ver­schie­ben, Wör­ter in Groß­buch­sta­ben ver­wan­deln u.Ä.m. All die­se Mög­lich­kei­ten kön­nen auch mit instal­lier­tem vim-mode-plus genutzt wer­den, und zwar unab­hän­gig davon, ob man im visu­al mode or in the insert mode arbei­tet. Selbst das Atom eige­ne ‘Suchen-und-Erset­zen’ funk­tio­niert wie erwar­tet. Das vim-mode-plus-Plug­in erwei­tert also die Mög­lich­kei­ten unse­res Edi­tors ’nur’, es ver­än­dert sie nicht — außer dass man eben bei der Ein­ga­be von Text den aktu­el­len Arbeits­mo­dus im Hin­ter­kopf haben muss.

… und schließlich eine Liste neuer Möglichkeiten:

Der Nach­teil der rei­nen Atom-Fähig­kei­ten ist, dass man die Maus benut­zen muss. Das bremst. vi(m) bie­tet dage­gen den Vor­teil, alles über die Tas­ta­tur machen zu kön­nen. Das erhöht die Arbeits­ge­schwin­dig­keit — selbst wenn man nur mit einem 3‑Fingersystem tippt. Hier ein paar zen­tra­le Eigen­schaf­ten vom vi(m), die jetzt auch im Atom nutz­bar sind:

Den Cursor platzieren:

Die ver­trau­ten Pfeil­tas­ten funk­tio­nie­ren wie erwar­tet, im visu­al-mode und im insert-mode). Die ande­ren Kom­man­dos wir­ken dage­gen nur im visu­al-mode:

  • Mit den vim-‘Pfei­ler­satz­tas­ten’ h, j , k, l kann man den Cur­sor eben­so nach links, nach unten, nach oben und nach rechts bewe­gen. Legt man den Zei­ge­fin­ger auf einer QWERTZ-Tas­ta­tur aufs h und die rest­li­chen drei dane­ben, merkt man, wie orga­nisch das funk­tio­niert. Wenn man aller­dings mit den Pfeil­tas­ten so ver­traut ist wie ich, wird man die­se Opti­on trotz­dem eher sel­ten benut­zen.

Nütz­li­cher sind da schon die Tas­ten

  • w := ein Wort vor­wärts
  • b := ein Wort zurück
  • e := zum Ende des Wor­tes, auf dem der Cur­sor steht
  • ( := zum Anfang des nächs­ten Sat­zes
  • ) := zum Anfang des aktu­el­len Sat­zes

Je grö­ßer die Distanz ist, die so ein Sprung­be­fehl zurück­legt, um so stär­ker die Arbeits­er­spar­nis: Wenn man lan­ge Zei­len mit wei­chem ‘Word-Wrap­ping’ als Qua­si-Para­gra­phen ver­wen­det, um dem Nut­zer die Zei­len in einer zur gewähl­ten Fens­ter­brei­te pas­sen­den Län­ge anzei­gen zu las­sen — wie es heut­zu­ta­ge oft bei md-Datei­en oder in Mails geschieht — dann wird man es begrü­ßen, nicht mit­tels der Pfeil­tas­ten Buch­sta­be für Buch­sta­be in einer Zei­le vor oder zurück navi­gie­ren zu müs­sen. Die fol­gen­den Tas­ten bie­te ande­re gro­ße Sprün­ge:

  • 0 := zurück zum Zei­len­an­fang
  • $ := vor­wärts zum Zei­len­en­de
  • H := zurück zur ers­ten im Fens­ter sicht­ba­ren Zei­le
  • M := in die Zei­le in der Mit­te des Fens­ter
  • L := vor­wärts in die letz­te sicht­ba­re Zei­le

Text einfügen und ändern

  • i := unter dem Cur­sor Text ein­fü­gen
  • a := nach dem Cur­sor Text ein­fü­gen
  • r := das Zei­chen unter dem Cur­sor erset­zen
  • cw := das Wort unter dem Cur­sor erset­zen
  • cc := die Zei­le unter dem Cur­sor erset­zen
  • R := der Rei­he nach alle Zei­chen unter dem Cur­sor erset­zen bis man mit esc wie­der in den visu­al-mode wech­selt

Mit den Kom­man­dos i, a, cw, and cc geht ein Wech­sel in den insert-mode ein­her.

Text löschen

  • x := löscht das Zei­chen unter dem Cur­sor
  • dw := löscht das Wort unter dem Cur­sor
  • dd := löscht die Zei­le unter dem Cur­sor
  • D := löscht den Rest der Zei­le vom Cur­sor bis zu ihrem Ende

Der Vor­tei­le der Befeh­le dw und dd ist, dass sie die gelösch­ten Tei­le in einen Puf­fer kopie­ren, von wo aus sie mit­tels p oder P auch an ande­rer Stel­le wie­der ein­ge­fügt wer­den kön­nen.

Kopieren und Einfügen

  • yw := kopiert das Wort unter dem Cur­sor in den Puf­fer
  • yy := kopiert die Zei­le unter dem Cur­sor in den Puf­fer
  • p := fügt den Puf­fer nach dem Cur­sor ein
  • P := fügt den Puf­fer vor dem Cur­sor ein

Rückgängig machen

  • u := die letzte(n) Veränderung(en) rück­gän­gig machen
  • U := die Zei­le unter dem Cur­sor wie­der her­stel­len

Suchen

  • / XYZ := nach dem String XYZ suchen

Regex basierte Ersetzungen

Der vi(m) bie­tet zusätz­li­chen einen exe­cu­ting-mode. Drückt man die Tas­te : und gibt eine Zei­len­num­mer samt Befehl ein, dann wird die­ser Befehl auf den Text an der ange­ge­be­nen Stel­le ange­wen­det. So wür­de z.B. der Befehl : 1,$ s/[Tt]rump/Biden/g alle Vor­kom­men von Trump oder trump durch Biden erset­zen (s), und zwar von der ers­ten (1) bis zur letz­ten Zei­le ($).

Sol­che Erset­zun­gen aus­füh­ren zu kön­nen, ist oft hilf­reich. Unglück­li­cher­wei­se kann vim-mode-plus selbst mit die­ser Art von Kom­man­dos nichts anfan­gen. Und sein Autor hat Vor­be­hal­te, den ex-mode zu imple­men­tie­ren. Statt­des­sen emp­fiehlt er, zusätz­lich das Plug­in / Packa­ge ex-mode per apm install ex-mode zu instal­lie­ren.

Und tat­säch­lich funk­tio­niert das bes­tens.

Fazit:

Die Plug­ins vim-mode-plus und ex-mode in Atom zu instal­lie­ren, bie­tet uns wirk­lich die Mög­lich­keit, die Fähig­kei­ten eines gra­phi­schen Edi­tors wie Atom und die vi(m)-Eigen­schaf­ten kom­bi­niert zu nut­zen. Mit ande­ren Wor­ten: ein Traum ist wahr gewor­den.


Und in welchem größere Zusammenhang …

… steht die­ser Text? Nun, mein Leben ist ein­ge­bet­tet in freie Soft­ware, Natur und Musik. Manch­mal fin­de ich da absei­ti­ge­re Wege und Tools, die es trotz­dem wert sind, geteilt zu wer­den. Und sei es nur mit mei­nem ver­gess­li­chen zukünf­ti­gen ‘ich’. Dem ich ger­ne immer wie­der ein­mal ein Stra­to über die Shell ans Herz lege. Oder pas­send erwei­ter­te Edi­to­ren. Oder uralte Vor­ar­bei­ten. Manch­mal möch­te ich die­ses ‘ich’ aber auch nur an Hal­tun­gen, Stand­punk­te und Ein­stel­lun­gen erin­nern. Damit ich nicht hin­ter mich zurück­fal­le. Denn gesagt ist gesagt. Dar­um geht es auch in hier.


Im Übri­gen: Män­ner sind mit­ge­meint.

Ein Kommentar “Atom und Vi(m)-Plugin: ein Traum wird wahr”

  • Robert

    says:

    Atom und vi-mode, sehr span­nend. Bin immer noch im Ter­mi­nal unter­wegs, wenn moeg­lich. Habe jetzt den VSCode ent­deckt fuer Type­Script. Da wer­de ich doch mal schau­en, ob der auch einen vi-mode hat. Dan­ke fuer die Inspi­ra­ti­on.

    Antworten

Kommentar schreiben

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

To top