computerseite-spezial.de

handverlesene Infos zu Linux, FreeBSD und OpenSolaris

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size
Sie sind hier: Startseite Besondere Programme Einige Tipps und Tricks für vim

Einige Tipps und Tricks für vim


Dieser Beitrag ist erschienen am 9. Mai 2009 bei zInformatik (Link) / Veröffentlichung mit freundlicher Genehmigung des Autors / Autor: Marcel Jakobs (zimon) / Lizenz: alle Rechte liegen beim Autor, Details sind beim Autor zu erfragen.

Wenn Sie diesen Artikel weiterverwenden möchten, beachten Sie bitte die Bedingungen des Autors. Vielen Dank.

 

Einige Tipps und Tricks für vim

von Marcel Jakobs


Normalerweise schreibe ich ja lieber über bestimmte Funktionen von vim, da lange Listen von Befehlen langweilig und schwer zu merken sind. Wenn man sich jedoch immer nur mit einer bestimmten Funktion vertraut macht und diese eine Zeit lang nutzt, hat das einen viel größeren Lerneffekt als alles auf einmal zu versuchen.

Trotzdem gibt es einige kleine Funktionen bzw. Tricks, die sehr praktisch sind jedoch keinen eigenen Artikel ausfüllen können. Solche Tipps werde ich hier aufführen.

Zwischen den Zeilen navigieren
Wer kennt es nicht, man schreibt einen Blog- oder Forenbeitrag und die Zeile wird am Ende des Bildschirms umgebrochen. Wenn man nun mit j und k navigiert, kann man nur relativ große Textblöcke überspringen.
In solchen Fällen kann kann man gj und gk nutzen um eine sichtbare Zeile nach oben oder unten zu springen. Hierfür kann man sich nun folgende Mappings erstellen um mit Strg+j und Strg+k statt gj und gk zu navigieren:

noremap <C-J> gj
noremap <C-K> gk

Diese Zeilen kann man sich einfach in die Datei ~/.vimrc schreiben.

Text aus der Zwischenablage in Ex-Befehl einsetzen
Bei einem Suchen/Ersetzen Befehl ist es häufig lästig, das ganze Wort, welches man ersetzen möchte abzuschreiben. Statt dessen kann man es auch kopieren (z.B. mit yw) und dann wenn es benötigt wird mit Strg+r” in den Ex-Befehl einfügen. Statt ” kann man auch jeden anderen Registernamen benutzen.
Noch einfacher geht es mit Strg+r Strg+w mit dem man das Wort unter dem Cursor einfügt. Strg+r Strg+a fügt hingegen das WORT unter dem Cursor ein.

Spezialregister
Hier noch die Spezialregister, die möglicherweise mit der obigen Funktion Strg+r recht praktisch sein können:

  • - Unbenanntes Register, in dem der letzte gelöschte oder kopierte Text liegt
  • % - Der Dateiname der gerade bearbeiteten Datei
  • * - Zwischenablage der mittleren Maustaste
  • + - Zwischenablage des Systems (von Strg+c oder Strg+x)
  • / - Der letzte Suchausdruck
  • : - Das letzte Kommando im Kommandozeilenmodus
  • . - Der zuletzt eingefügte Text

Weitere praktische Tastenkombinationen für den Kommandozeilen-Modus

  • Strg+w - löscht das Wort unter dem Cursor
  • Strg+u - löscht vom Cursor bis zum Anfang
  • Strg+b - setzt den Cursor auf den Anfang
  • Strg+e - setzt den Cursor ans Ende

Einrücken beim Einfügen verhindern
Ich habe ständig das Problem, dass ich irgendetwas mit der mittleren Maustaste einfügen möchte und durch die autoindent bzw. smartindent Funktionen wird alles treppenartig eingerückt oder auskommentiert. Um dies zu umgehen ohne jedes mal die Optionen zu ändern, kann man einfach die oben beschriebenen Register * und + nutzen. So kann man den Text mit dem Befehl “*p oder “+p einfügen.

Vergessen vim mit sudo aufzurufen
Man will nur mal schnell in eine Konfigurationsdatei rein schaun ohne sie zu ändern. Dann fällt einem etwas auf und man ändert sie doch ohne daran zu denken, dass man sie garnicht mit sudo geöffnet hat. Jetzt alle Änderungen verwerfen und mit sudo öffnen oder die Datei zwischenspeichern? Nein mit folgendem Befehl kann man mit sudo in die Datei schreiben:

:w !sudo tee %

Zuerst wird man nach dem Passwort gefragt, dann muss man noch einmal Enter drücken und die Datei mit l (kleines L) neu einlesen.

Navigieren in der Hilfe
Wenn man mittels :h <Suchbegriff> nicht fündig wird, kann man den Befehl :helpgrep <Suchwort> nutzen, der alle Hilfedateien wie grep durchsucht. Mit :cnext kommt man jeweils zum nächsten vorkommen des Suchwortes. Um sich alle gefundenen Stellen anzeigen zu lassen dient :list. Ein \c ignoriert die Groß- und Kleinschreibung. So sucht :helpgrep foo\c nach “foo”, wobei Groß- und Kleinschreibung ignoriert wird.

Oft sieht man in der Hilfe weiterführende links wie z.B. |:helpgrep|. Um diesen Links zu folgen geht man mit dem Cursor darauf und drückt Strg+]. Um wieder zurück zu springen ist die Tastenkombination Strg+t gedacht.

Während des Einfügens einen Befehl ausführen
Manchmal ist man am Schreiben und würde gerne einen Befehl im Befehlsmodus ausführen wie z.B. ein eine Zeile löschen oder eine Bewegung machen. Dies kann man mit der Tastenkombination Strg+o erreichen. Danach befindet man sich weiterhin im Insert-Modus.

Ein paar Beispiele:

Strg+o dd

löscht die aktuelle Zeile.

Strg+o )

springt zum nächsten Satz.

Strg+o di)

löscht alles innerhalb der aktuellen Klammer.


Praktische Tastenkombinationen im Insert-Modus

  • Strg+i - fügt zuletzt eingefügten Text ein
  • Strg+@ - fügt zuletzt eingefügten Text ein und beendet den Insert-Modus
  • Strg+r - fügt inhalt eines Registers ein (Registername danach eingeben)
  • Strg+u - löscht von der Aktuellen Cursorposition bis zum Zeilenanfang
  • Strg+w - löscht das Wort vor dem Cursor
  • Strg+t - aktuelle Zeile einrücken
  • Strg+d - Einrückung der aktuellen Zeile rückgängig machen

Praktische Tastenkombinationen im Kommando-Modus

  • Strg+a - inkrementiert die Zahl unter dem Cursor (Quantifizierer möglich)
  • Strg+x - dekrementiert die Zahl unter dem Cursor (Quantifizierer möglich)
  • Strg+f - herunterscrollen (Anzahl der Zeilen kann mit der Option scroll definiert werden) Standard: halber Bildschirm (Quantifizierer gibt Anzahl der Zeilen an)
  • Strg+b - wie Strg+f nur zum hochscrollen
  • Strg+g - Zeigt Informationen über die Datei an
  • g Strg+g - Zeigt Informationen über die aktuelle Stelle der Datei an
  • * - Sucht nach dem Wort unter dem Cursor

Wenn man scroll auf 1 setzt gibt das einen ziemlich coolen Effekt, weil dann der Cursor an der Stelle bleibt und nur das Dokument dahinter mittels Strg+f und Strg+b nach unten und oben gescrollt wird.

 

 

You are here: