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).
which vim/usr/bin/vimAlias 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
- Vim-Projekt: vim.org — offizielle Seite mit Doku und Plugins
- Arch Wiki: Vim — Konfiguration, Pakete und Tipps
- bash(1) – Linux manual page — Abschnitte „ALIASES“ und „SHELL GRAMMAR“
- Debian Wiki: alternatives —
update-alternativesals saubere Lösung
Verwandte Artikel
- Linux Shell — Aliase, Built-ins und Verarbeitungsreihenfolge
- Variablen —
EDITORund andere Umgebungsvariablen - PATH — wie die Shell
viundvimfindet - apt — Vim unter Debian/Ubuntu installieren
- Berechtigungen —
sudoeditund Editorrechte sauber handhaben