Einführung

Viele Funktionen vom klassischen vi Editor lassen sich auch in anderen Programmen nutzen.

Den vi Mode Aktivieren

In der Shell (ksh, bash, zsh, …)

In der Shell (Korn Shell, Bash, Z Shell, …) kann man mit folgendem Befehl den vi Modus aktivieren:

$ set -o vi

Damit dies direkt beim Start aktiviert wird, fügt man folgende Zeile in der RC-Datei der Shell ein:

set -o vi

In der Korn Shell lautet die Datei ~/.kshrc, in der Bash ~/.bashrc und in der Z Shell ~/.zshrc.

In der Readline Bibliothek

Viele Programme, welche eine interaktive Benutzerschnittstelle anbieten, wie z. B. python (Python-Interpreter), scapy, sage, etc. nutzen die GNU Readline Bibliothek. Die GNU Readline Bibliothek kann mit der Datei ~/.inputrc bzw. /etc/inputrc konfiguriert werden. Die Optionen dazu findet man in der Manpage von Readline mit man 3 readline.

Um den vi Mode in allen Programmen zu aktivieren, legt man also die Datei ~/.inputrc mit folgendem Inhalt an:

########################################################################
#
# ~/.inputrc
# Konfigurationsdatei für die Readline Bibliothek
#
# 2011-11-16; Emanuel Duss; Erste Version
#
########################################################################
# VI-Mode in allen Tools, welche die Readline-Bibliothek benutzen
set editing-mode vi
# EOF

Soll diese Einstellung für jeden Benutzer auf dem Rechner gelten, fügt man die Zeile in der Datei /etc/inputrc ein.

Die aktuellste Version davon gibt es auf GitHub in meinem Configs Repository: .inputrc.

Den vi Mode Nutzen

Für folgende Befehle wechselt man zuerst mit ESC den vi Mode:

  • k Letzter Befehl in die Konsole Laden (History scrollen mit j und k)
  • h Cursor nach Links bewegen
  • l Cursor nach Rechts bewegen
  • w Ein Wort nach vorne
  • b Ein Wort nach hinten
  • $ Cursor ganz nach hinten
  • 0 Cursor ganz nach vorne
  • S Text ab Cursor ändern
  • i Zurück in den Einfügemodus
  • /keyword Sucht in der History nach dem Begriff keyword
  • n Nächstes Suchergebnis
  • I Text am Anfang der Zeile einfügen
  • A Text am Schluss der Zeile einfügen

Dies ist nur ein Auszug aus häufig genutzten Befehlen.