
Viele Benutzer schrecken vor dem sehr praktischen Editor vim wegen seiner etwas sperrigen Bedienung zurück. Wer sich aber erst einmal mit den verschiedenen Betriebsmodi vertraut gemacht hat, mag auf die hilfreichen Dienste des schlanken Editors nicht mehr verzichten. Vim ist eine Weiterentwicklung des Texteditors vi, deshalb auch der Name als Abkürzung für "vi improved". Zugegeben: es gibt Editoren, die wesentlich leichter zu bedienen sind, z.B. Pico oder Nano. Jedoch hat vim einige Vorteile:
auf jedem POSIX-konformen System ist mindestens der Vorfahr des vim, der vi, als Editor vorhanden
navigierbar ohne Cursor-Tasten (kann bei Tastatur-Problemen in Remote-Sessions helfen)
superschnelle Bedienbarkeit
Es stehen auch grafische Oberflächen zur Verfügung:
gvim (graphical vim, graphische Oberfläche) - benutzt GTK+
Yzis - ein vim-ähnlicher Editor, der Qt nutzt
Man sollte sich nicht von der anfangs komplizierten Bedienung abschrecken lassen. Mit einer Handvoll Befehlen kommt man sehr gut klar (z. B. i, ESC, :w, :wq, dd). Näheres dazu im folgenden.
Auf Ubuntu Dapper Drake 6.06 ist vim standardmäßig installiert. Fehlt der Editor trotzdem, kann man ihn über das Paket
vim
nachinstallieren.
Ab Ubuntu Edgy Eft 6.10 ist standardmäßig eine abgespeckte Vim-Version installiert, die über wesentlich weniger Funktionen verfügt als das Original. Will man ernsthaft mit vim arbeiten sollte man das Paket
vim
installieren[2].
Starten lässt sich der Editor im Terminal [1] mit
vim datei.txt
Der Befehl vi ruft nicht mehr den alten vi auf, sondern vim. vi datei.txt führt also zu dem gleichen Ergebnis.
Damit öffnet man die Datei datei.txt im aktuellen Verzeichnis. Existiert die Datei nicht, wird sie beim Speichern angelegt.
Für den Einstieg in vim empfiehlt es sich, das Vim-Tutorial durchzuarbeiten. Man startet es mit dem Befehl
vimtutor
Der Befehl vimtutor funktioniert nicht mit dem vim-tiny (siehe oben).
Vim arbeitet nicht so sehr mit Tastenkombinationen (wie zum Beispiel Emacs), sondern verwendet verschiedene Eingabe-Modi, zwischen denen man hin- und herschalten muss.
Um vom Befehlsmodus in den Eingabemodus zu wechseln, betätigt man die Taste I. Nun kann man losschreiben.
Mit evim startet man eine grafische Version des vim, indem nur der Einfügemodus existiert. So ist vim also fast wie ein normaler Editor. Gut für Anfänger, jedoch fallen dabei so gut wie alle Features weg, die die Bedienbarkeit beschleunigen.
Vim startet in diesem Modus. Hier kann man Befehle absetzen, um den Text zu bearbeiten, jedoch keinen Text eingeben. Um in diesen Modus zu wechseln betätigt man Esc. Vor das Kommando setzt man einen Doppelpunkt. Man kann hier nicht sofort Text eingeben, sondern nur Kommandos absetzen, z. B. zum Speichern (:w) oder zum Suchen eines Strings (/SUCHSTRING). Man kann den Cursor im Text bewegen, diesen aber nicht bearbeiten.
Um wieder etwas einzugeben (Eingabemodus), einfach I betätigen.
Damit kann man nun schon ganz gut arbeiten. Um für alles gerüstet zu sein, sollte man sich ein paar der wichtigsten Kommandos merken. Ein Teil davon wird im Folgenden aufgelistet.
| Editieren | |
| i | Einfügen links vom Cursor |
| I | Einfügen am Zeilenanfang |
| a | Einfügen rechts vom Cursor |
| A | Einfügen am Zeilenende |
| o | Neue Zeile unterhalb der aktuellen Zeile einfügen |
| O | Neue Zeile oberhalb der aktuellen Zeile einfügen |
| rc | Ersetze ein Zeichen unter Cursor durch das Zeichen "c" |
| R | Überschreiben ab Cursorposition |
| sText | Ersetze ein Zeichen durch "Text" |
| SText | Ersetze ganze Zeile durch "Text" |
| nsText | Ersetze n Zeichen durch "Text" |
| cwText | Ersetze Wort durch "Text" |
| ccText | wie Stext |
| cc | bis zur nächsten Zeilengrenze überschreiben |
| dd | aktuelle Zeile ausschneiden(löschen) |
| d$ | aktuelle Zeile ab dem Cursor ausschneiden(löschen) |
| 4Befehl | Wiederhole den Befehl vier mal (s. nächste Zeile) |
| 4dd | ab aktueller Zeile vier Zeilen löschen |
| vi beenden | |
| :q | Verlassen ohne zu speichern. Funktioniert nur, falls das Dokument nicht verändert wurde. |
| :q! | Verlassen ohne zu speichern auch bei modifiziertem Dokument. |
| :wq | Schreiben des Puffers und Verlassen. |
| :wn | Der Puffer wird geschrieben und das nächste Dokument geladen. |
| ZZ | Wie :wq. |
:x | Wie :wq. |
| Text kopieren | |
| yy | Kopiert aktuelle Zeile in einen Puffer. |
| ny | Kopiert n+1 Zeilen in einen Puffer. |
| yw | Kopiert ein Wort rechts vom Cursor in Puffer. |
| yb | Kopiert ein Wort links vom Cursor in Puffer. |
| d5d | Ab aktueller Zeile 5 Zeilen in den Puffer und löschen |
| p | Text aus dem Puffer an Cursorstelle einfügen |
Info: Das Kopieren folgt immer dem gleichen Schema:
Text in einen Puffer kopieren
Text aus (einem bestimmten) Puffer einfügen
| Suchen und Ersetzen | |
| /muster | Suche nach Muster vorwärts im Text. |
| / | Wiederholt die Suche vorwärts. |
| ?muster | Suche nach Muster rückwärts im Text. |
| ? | Wiederholt die Suche rückwärts. |
| n | Wiederholt letztes Suchkommando. |
| :s/alt/neu | Sucht und ersetzt »alt« durch »neu« (nur das erste Auftreten in aktueller Zeile). |
| :s/alt/neu/g | Sucht und ersetzt alle »alt« durch »neu« in aktueller Zeile. |
| :s/alt/neu/c | Sucht und ersetzt »alt« durch »neu« in aktueller Zeile mit Nachfrage. |
| :s/alt/neu/gc | Sucht und ersetzt alle »alt« durch »neu« in aktueller Zeile mit Nachfrage. |
| :1,99s/alt/neu | Ersetzen von Zeile 1 bis Zeile 99. |
| :1,$s/alt/neu | Ersetzen im gesamten Dokument. |
| :%s/alt/neu | Ersetzen im gesamten Dokument. |
| :%s/alt/neu/c | Ersetzen im gesamten Dokument mit Nachfrage (ACHTUNG: findet nur ein Ergebnis pro Zeile). |
| :%s/alt/neu/gc | Ersetzen im gesamten Dokument mit Nachfrage (findet alle Ergebnisse pro Zeile). |
vim verwendet Reguläre Ausdrücke (engl. Regular Expressions) zum Suchen und Ersetzen.
Info: Ohne die Option g wird immer nur ein Ergebnis pro Zeile gefunden und damit auch nur ein Ergebnis ersetzt.
Option g: findet alle Ergebnisse pro Zeile
Option c: jede Änderung muss bestätigt werden (c - confirm)
| Cursor bewegen | |
| h | Cursor nach links |
| j | Cursor nach unten |
| k | Cursor nach oben |
| l | Cursor nach rechts |
| w | Cursor ein Wort vorwärts bewegen |
| 3w | Cursor drei Worte vorwärts bewegen |
| b | Cursor ein Wort rückwärts bewegen |
| $ | mit dem Cursor zum Zeilenende springen |
| 0 | mit dem Cursor zum Zeilenanfang springen |
| G | mit dem Cursor zur letzte Zeile springen |
| gg | mit dem Cursor in die erste Zeile springen |
| 9G | mit dem Cursor zur Zeile 9 springen |
| :Zeilennummer | springen zu Zeilennummer |
| % | zeigt die zugehörige Klammer eines Klammerpaars |
Info: Man kann auch die Cursor-Tasten verwenden. Je nach Systemeinstellungen funktionieren auch die Tasten "Entf", "Pos 1" und "Ende".
| Markierungen | |
| mBuchstabe | Markierung setzen |
| 'Buchstabe | gehe zu Markierung |
| Set-Befehle | |
| :set all | anzeigen aller möglichen Set-Befehle |
| :set nu | Zeilennummern anschalten |
| :set number | Zeilennummern anschalten |
| :set nonu | Zeilennummern ausschalten |
| :set nonumber | Zeilennummern ausschalten |
| :set list | Datei mit Sonderzeichen anzeigen |
| :set nolist | Sonderzeichen ausblenden |
| Sonstiges | |
| u | Macht das jeweils letzte Kommando rückgängig (mehrstufig möglich). |
| Strg + R oder :redo | Wiederholt das letzte rückgängig gemachte Kommando. |
| U | Stellt die aktuelle Zeile wieder her. |
| . (Punkt) | Wiederholt das letzte Einfüge- bzw. Lösch-Kommandos. |
| :r datei | Liest datei hinter die aktuelle Zeile ein. |
| :sh | Aufrufen einer Shell / beenden der Shell mit exit |
| :e datei | Lädt datei in den Buffer. |
| :new datei | Öffnet datei in geteiltem Fenster (Fenster wechseln: Strg + ww). |
| :split | Öffnet bereits offene Datei in geteiltem Fenster. |
| :tabnew datei | Öffnet datei in neuem Tab (Tab wechseln: Strg + Alt + Bild hoch/runter). |
Die eingebaute Hilfe in vim ist sehr umfangreich. Man erreicht sie mit dem Befehl
:help Befehl
bzw. :he, wo man auch sofort eine Seite mit Hilfe zur Navigation in der Hilfe findet.
Vim sucht bei Programmstart nach einer Konfigurationsdatei - standardmäßig ist das die versteckte Datei .vimrc im Benutzer-Verzeichnis. Eine gute Vorlage findet man unter /etc/vim/vimrc. Die Vim Konfigurationsdatei bietet nicht nur Platz für persönliche Einstellungen, sondern auch für eigene Makros
.
Für die besagte Konfiguration muss an dieser Stelle das Paket vim installiert sein.
Eine eigene .vimrc ist schnell erstellt. Man öffnet ein Terminal [1] und gibt folgenden Befehl ein:
vi .vimrc
Jetzt drückt man I um in den Eingabemodus zu gelangen. Hier kann man jetzt seine eigene Einstellungsdatei erstellen. Ein leichtes Beispiel (bei Bedarf einfach in den jetzt geöffneten Vim einfügen):
| Syntaxhighlighting einschalten | syntax on |
| Zeilennummerierung anzeigen | set number |
| Während der Suche schon zum entsprechenden Text springen | set incsearch |
Suchergebnisse farbig markieren (mit :nohls verschwinden die Hervorhebungen wieder) | set hlsearch |
| Keine automatische Einrückung | set nosmartindent |
Mit Esc verlässt man den Eingabemodus wieder und beendet vim mit
:wq
In der Konfigurationsdatei fällt jedoch der Doppelpunkt weg, den man bei Konfigurationseingaben im Editor benötigt. Weitere Konfigurationsdateien werden in diesem Forums-Thread veröffentlicht.
Sehr praktisch ist die Eingabe von Sonderzeichen gelöst. Hierfür wird im Eingabemodus Strg + K und danach eine Tastenkombination gedrückt:
| Strg + K + A + - | ā |
| Strg + K + C + , | ç |
| Strg + K + I + . | İ |
| Strg + K + O + < | ǒ |
So lassen sich zum Beispiel die Tonhöhen bei der chinesischen Pinyin-Lautschrift sehr leicht eingeben (erster Ton: -, dritter Ton: <).
Eine Übersicht über alle Tastenkombinationen kann man sich mit :digraphs im Befehlsmodus anzeigen lassen, während :help digraphs eine weiterführende Hilfe ausgibt.
Vim-Skripte werden in ~/.vim/$UNTERORDNER abgelegt, wobei der $UNTERORDNER unterschiedlich ist. Syntax-Dateien müssen beispielsweise in ~/.vim/syntax gespeichert werden, damit sie von vim erkannt werden. Den passenden Unterordner erfährt man meist in der README- oder INSTALL-Datei des Plugins. Eine sehr umfangreiche Sammlung von Vim-Skripten ist auf vim.org
zu finden.
Mit der Einstellung syntax on ist der Programmcode farbig hervorgehoben. Diese Farbkombinationen stehen in einem colorscheme-File. Diese befinden sich in /usr/share/vim/vim71/colors. Wenn man ein eigenes Schema schreiben will, ist eine Anleitung mit Tipps in README.txt enthalten. Eine Sammlung von colorschemes für GVim gibt es hier
. Für eigene oder heruntergeladene Farbschemata kann man auch das Verzeichnis ~/.vim/colors anlegen und die entsprechenden Dateien dort speichern.
Um ein Farbschema in Vim auszuwählen, gibt man entweder den Befehl :colorscheme NAME_DES_SCHEME ein oder fügt
syntax on colorscheme NAME_DES_SCHEME
in die ~/.vimrc ein. Der Name des Schemas muss dabei ohne die Endung .vim angegeben werden.
Farbschemas werden in vim und GVim anders dargestellt. Das liegt daran, dass das Terminal nur bis zu 256 Farben darstellen kann, GVim aber alle, die vom System bereitgestellt werden. Um für vim und GVim andere colorschemes zu verwenden, kann man folgendes in die eigene .vimrc schreiben:
if has('gui_running')
colorscheme gvimcolorscheme
else
colorscheme vimcolorscheme
endifDazu kann man die Hunspell Wörterbücher, die auch von Open Office benutzt werden, verwenden. Dazu geht man folgendermaßen vor:
Wörterbuch installieren, diese geschieht über das Paket hunspell-de-de [2] (bzw. die entsprechenden Pakete für andere Sprachen)
benötigten Ordner anlegen [1]
mkdir -p ~/.vim/spell
Vim starten und im Normalmodus das folgende Kommando ausführen um das Wörterbuch nutzen zu können.
:mkspell ~/.vim/spell/de /usr/share/myspell/dicts/de-DE
In Vim den Befehl
:set spelllang=de spell
ausführen um die Rechtschreibprüfung zu aktivieren.
Wer möchte, dass diese bereits beim Programmstart aktiv ist kann dafür den letzten Befehl unter Punkt 4 in die Datei ~/.vimrc eintragen
Es gibt noch zwei weitere Möglichkeiten zu einer Rechtschreibprüfung für Vim zu kommen: Eine mit einem Aufruf von Aspell aus vim heraus beschreibt zinformatik.de
(die funktioniert im Gvim leider nicht richtig). Die zweite ist im Wiki von Archlinux erklärt: Rechtschreibprüfung_unter_Vim
.
Wer mit Vim LaTeX-Dokumente erstellen möchte, der findet mit der vim-latexsuite
eine zusätzliche Vielzahl an Funktionen extra zum Arbeiten mit LaTeX-Dokumenten. Von Syntax-Highlighting über Templates bis hin zu Codecompletion bleibt eigentlich kein Wunsch offen. Die Suite kann über das Paket:
vim-latexsuite (universe, [2])
installiert werden [1].
Damit unter Gvim, wenn Dokumente mit der Endung *.tex geöffnet werden, automatisch die graphischen Schaltflächen der LaTeX-Suite für gvim starten, muss erst dies in die ~/.vimrc eingetragen werden:
filetype plugin on
if has('gui_running')
set grepprg=grep\ -nH\ $*
filetype indent on
let g:tex_flavor='latex'
endifMöglicherweise werden die Schaltflächen trotzdem noch nicht angezeigt. Abhilfe schafft die Installation von:
vim-addon-manager (universe)
Danach führt man im Terminal folgenden Befehl aus:
vim-addons install latex-suite vim-addons status # zur Kontrolle
Damit der DVI-Viewer nach den ausführen von \ls im Normalmodus gleich die Stelle im DVI-File anzeigt die gerade bearbeitet wird, kann man in die Datei ~/.vim/ftplugin/tex.vim die Zeilen
:let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*' g:TCTarget dvi
einfügen. Unter Umständen kann das jedoch zu Fehlern führen.
Möchte man an eine gewünschte Stelle im .tex -file gelangen, indem man mittels
Strg +
diejenige Stelle in dem (mittels xdvi ausgegebnen) DVI-File auswählt, muss man die Zeilen
let g:Tex_ViewRule_dvi = 'xdvi -editor "gvim --servername xdvi --remote +\%l \%f" $* &' let g:Tex_ViewRuleComplete_dvi = 'xdvi -editor "gvim --servername xdvi --remote +\%l \%f" $* &'
zu ~/.vimrc hinzufügen, und gvim von nun an mittels
gvim --servername xdvi
starten [1].
Auf viemu.com
gibt es neben dem Graphical Cheet Sheet, welches alle Befehle enthält, auch noch ein Tutorial. Im Debianforum.de
findet man eine deutsche Tastaturbelegung. Auf dieser Seite kann die Belegung auch in einer größeren Auflösung sowie als PDF
heruntergeladen werden.
Auf LinuxFibel
/
wird eine weitere Übersicht zur Verfügung gestellt:
The VIM Book
- PDF, ca. 4 MB
VIMderbare Kodierungen
- Einfache Beschreibung von Vim im Umgang mit Zeichencodierung (charset) wie UTF-8
Change end-of-line format for dos-mac-unix
- Umgang mit MS-Dos-, Unix- und Mac-Textdateien
Cream - a modern configuration of the Vim text editor
- Konfiguration für Einsteiger
VIM Schnellübersicht
etc. - PDF
Kleine Helfer - Aufgaben automatisieren in Vim
- LinuxUser 11/2006
Simsalavim! - Vim-Workshop
- LinuxUser 09/2006
Diese Revision wurde am 3. Dezember 2009 um 06:30 Uhr
von aasche erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Editor, Shell
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten