In manchen Linux-Distributionen kann es vorkommen, dass standardmäßig vi installiert und entsprechend als Editor verwendet wird. Man kann problemlos VIM-Editor installieren. Hier erfährst du, wie man VIM-Editor, sowohl bei vi als auch bei vim verwendet.

VIM Installation

Bevor vim (VIM-Editor) verwendet werden kann, muss dieser zuerst installiert werden. Die Installation ist im Grunde bei unterschiedlichen Linux-Distributionen gleich und unterscheidet sich lediglich in der Verwendung eines anderen Paket-Managers.

Installation unter Debian/Ubuntu

sudo apt install vim

Installation unter Archi Linux

sudo pacman -S vim

Nun sollte der VIM-Editor auf dem System installiert sein. Standardmäßig heißt das Paket vim. Die Installation kann man relativ einfach mit dem which Befehl prüfen oder durch die Ausführung des Programms vim (mit oder ohne Übergabe von einer Datei).

Bash Installation prüfen
which vim
Output
/usr/bin/vim

Alias für VIM einrichten

Nun kann man VIM als Alias für vi setzen. Dazu sollte man folgenden Eintrag entweder in der .bashrc, .zshrc oder in der .profile hinzufügen.

alias vi=/usr/bin/vim

Damit auch bei sudo vi eine_datei.txt VIM verwendet wird, wird folgender Eintrag benötigt.

alias sudo='sudo '

Der vollständige eintrag sieht dann wie folgt aus.

alias sudo='sudo '
alias vi=/usr/bin/vim

Damit auch diese Einstellung für den Root-Benutzer gilt, sollte in der /root/.bashrc oder /root/.zshrc oder /root/.profile ebenfalls diese Konfiguration hinzugefügt werden.

Häufige Stolperfallen

Aliase wirken nicht in nicht-interaktiven Skripten

Aliase aus .bashrc werden nur in interaktiven Shells geladen. Ein Skript mit #!/bin/bash und einem vi datei.txt startet weiterhin das echte vi. Wer in Skripten auf vim setzen will, nutzt entweder direkt den Pfad /usr/bin/vim oder setzt EDITOR=vim und ruft $EDITOR auf — das ist auch der saubere Weg für Tools wie git commit oder crontab -e.

`alias sudo='sudo '` ist nötig, damit Aliase nach `sudo` greifen

Ohne das nachgestellte Leerzeichen sieht Bash hinter sudo nur den nächsten Token als Befehlsname und expandiert keine weiteren Aliase. Mit alias sudo='sudo ' (Leerzeichen!) prüft Bash auch das nächste Wort auf Alias-Expansion. Erst dann wirkt sudo vi wie sudo vim.

`update-alternatives` ist sauberer als ein Alias

Auf Debian/Ubuntu lässt sich der Standardeditor systemweit über sudo update-alternatives --config editor setzen. Das wirkt für alle User (auch root), für Skripte, für sudoedit und für Tools, die EDITOR nicht respektieren. Ein Alias ist die schnelle Lösung für die eigene Shell — update-alternatives ist die distro-konforme Lösung für das ganze System.

`vi` und `vim` können auf gleiche Binary zeigen — oder eben nicht

vim --version zeigt, welche Features kompiliert sind. Manche Distributionen liefern vim-tiny (ohne Syntax-Highlighting, ohne Maus, ohne Pluginsupport) und einen separaten vim-Befehl. vim.tiny und vim.basic sind dann unterschiedliche Programme. Mit which vim und readlink -f $(which vim) siehst du, was tatsächlich startet.

Konfiguration unter root vergisst man leicht

sudo vi läuft unter dem root-User und liest dessen ~/.bashrc — nicht deine. Ohne explizite Konfiguration in /root/.bashrc (oder Aliase in /etc/bash.bashrc) bleibt es bei vi. Alternative: sudoedit datei.txt öffnet die Datei mit dem Editor aus deiner EDITOR-Variable und vermeidet das ganze Alias-Problem.

Weiterführende Ressourcen

Externe Quellen

  • Linux Shell — Aliase, Built-ins und Verarbeitungsreihenfolge
  • VariablenEDITOR und andere Umgebungsvariablen
  • PATH — wie die Shell vi und vim findet
  • apt — Vim unter Debian/Ubuntu installieren
  • Berechtigungensudoedit und Editorrechte sauber handhaben
/ Weiter

Zurück zu Tutorials

Zur Übersicht