Vim – Der Einsteiger-Guide der AWARE7

Es gibt viele Glaubenskriege in der IT-Landschaft wie Windows gegen Linux, der berühmteste und älteste ist wohl Vim gegen Emacs. Bei beiden handelt es sich um die beiden beliebtesten Komandozeilen-Texteditoren. In diesem Artikel beschäftigen wir uns mit dem Lieblingseditor des Autor und stellen Vim etwas genauer vor.

Gerade auf Betriebssystemen wie Linux oder MacOS, welche viel über die Kommandozeile bedient werden, brauchen die Benutzer Texteditoren, mit denen auch in der Kommandozeile gearbeitet werden kann. Vim ist dabei einer der beiden beliebtesten Editoren, welcher schon lange auf dem Markt ist und auf so gut wie jedem System installiert ist. Vim ist eine Weiterentwicklung des älteren Editors VI. Vim steht dabei als Abkürzung für VI Imporved, also einer verbesserten Version des beliebten VI Editors.

Vim im Betrieb
Vim im Betrieb

Ein großer Vorteil von Vim ist, das dieser komplett über die Tastatur bedient werden kann und daher sehr schnell bedient werden kann.  Auch wenn es am Anfang recht konterintuitiv in der Bedienung funktioniert diese nach etwas Übung sehr schnell. Die größten Vorteile von VIM sind dabei aus unserer Sicht die folgenden:

  • Gutes Syntaxhervorhebung – Wenn Programmcode angezeigt wird, wird dieser farblich so dargestellt, dass dieser besser lesbar wird. So werden beispielsweise Kommandos und Daten unterschiedlich farblich markiert
  • Viele Möglichkeiten der Individualisierung durch Plugins und Konfigurationen
  • Vollständig bedienbar über die Tastatur
  • Browsen von Ordner ist durch einen eigenen Explorer möglich
  • Auf so gut wie jedem Linux und MacOS System installiert

Vim’s Betriebsmodi

Die wichtigste Taste bei der Bedienung von VIM ist die ESC-Taste da durch diese eine aktivierter Modus beendet wird. Vim bietet viele Modi an, um dem Benutzer die Bearbeitung von Textdateien zu erleichtern. Dafür bietet Vim die folgenden Modi an welche wir nun etwas genauer Vorstellen:

Der Normal-Modus von VIM

Der Normal-Modus dient dazu, sich in einer Textdatei zu bewegen und die Stelle zu finden, welche bearbeitet werden soll. Dafür bietet Vim viele verschiedene Möglichkeiten. So kann der Cursor mit den Pfeiltasten bedient werden. Dies ist gerade für Anfänger sehr leicht zu verstehen und anzuwenden. Das Ganze kann aber auch mit den Tasten „h“,“j“,“k“,“l “ gemacht werden. Mit „h“ und „l“ beweget man dabei den Cursor nach Links und nach Rechts und mit „j“ und „k“ bewegt sich der Cursor hoch und runter. Das Ganze klingt im ersten Moment sehr umständlich, aber nach etwas Übung erkennt man den Vorteil dieses Verfahren. Wer mit diesen Buchstaben statt den Pfeiltasten arbeitet bewegt seine Hände nicht mehr von der Tastatur weg und spart so etwas Zeit.

Es gibt noch viele weitere Möglichkeiten sich in einem Textdokument zu bewegen. So kann mit „G“ zur letzten Zeile und mit „gg“ an die erste Zeile gesprungen werden. Wer eine bestimmte Zeile, wie Zeile 25, lesen will kann dies mit :25 machen. Mit „w“ und „b“ bewegt man sich in Text auf wortebene weiter. So springt man mit „w“ ein Wort im Text weiter und mit „b“ ein Wort zurück.

Auch dieses waren noch lange nicht alle Möglichkeiten sich in dem Normal-Modus in Vim zu bewegen, alle hier vorzustellen würde aber den Rahmen dieses Artikels sprengen.

Der Eingabe-Modus von Vim

Der Eingabe-Modus von Vim dient dazu Text oder Konfigurationen zu schreiben. Um diesen Modus zu aktiveren müssen wir uns im Normal-Modus befinden und durch drücken von „i“ oder „a“ den Eingabe-Modus aktiveren. Wir können nun ganz normal über die Tastatur schreiben. Während wir den Eingabe-Modus aktiviert haben können wir nicht mehr die Tasten „h“,“j“,“k“,“l “ um den Cursor zu bewegen. Um nun unseren Cursor zu bewegen, müssen wir die Pfeiltasten unserer Tastatur verwenden. Im Eingabe-Modus können wir auch, wie wir es sonst gewöhnt sind, mit der Backspace oder ENTF Taste Zeichen löschen all dies Funktioniert genauso wie beispielsweise in Word.

Wenn wir nun diesen Modus zur Eingabe von Text in Vim verlassen wollen müssen wir einmal die ESC-Taste drücken. Nun befinden wir uns wieder im Normal-Modus.

Text löschen und Änderungen Rückgängig machen

Wenn wir uns im normalen-Modus befinden, können wir auch direkt von hier aus wieder Text löschen oder unsere Änderungen rückgängig machen. In der nachfolgenden Tabelle finden sich alle Tastaturbefehle zum Löschen von Text aus dem Normal-Modus heraus.

BefehlBeschreibung
ENTF-TasteLöschen des aktuellen Zeichen, analog zu Word.
xLöschen des aktuellen Zeichen, analog zu Word.
ddLöschen der aktuell ausgewählten Zeile
d0Entfernt alles bis zur nächsten Zeile

Das Rückgängig machen von aktuellen Änderungen ist im Normal-Modus recht einfach. Dafür muss im Normal-Modus nur „u“ gedrückt werden um die letzte Änderung zurückzusetzen. Das ganze kann auch wieder zurückgesetzt werden wenn „:redo“ eigegeben wird. Es gibt in Vim auch die Möglichkeit nur eine bestimmte Änderung zurückzusetzen welche nur eine Zeile betrifft. Dafür wählen wir die Zeile aus welche zurückgesetzt werden soll und drücken „U“.

Text kopieren im Visuellen-Modus

Der Visuelle-Modus von Vim kann dazu genutzt werden Text zu kopieren und Ihn dann wieder an anderer Stelle einzufügen. Um den visuellen Modus zu benutzen, muss einfach nur die Taste „v“ gedrückt werden. Nun kann der Text markiert werden so wie wir Ihn benötigen. Um diesen nun zu kopieren benutzen wir die Taste „y“. Wenn eine ganze Zeile kopiert werden soll verenden wir „yy“. Nun wir automatisch von Vim wieder in den Normal-Modus gewechselt und man wählt eine passende stelle aus. Zum einfügen reicht es nun „p“ zu drücken.

Kopieren mit Vim
Kopieren mit Vim

Kommandozeilen-Modus

Wir haben uns mittlerweile angeschaut, wie wir mit Text-Dateien arbeiten. Aber es gibt noch etwas wichtiges, welches wir uns noch nicht angeschaut haben. Wie werden die Änderungen gespeichert und wie beendet man Vim? Dafür haben wir wieder eine Tabelle zusammengestellt, welche die Möglichkeiten auflistet:

BefehlBeschreibung
:wÄnderungen abspeichern.
:qVim beenden
:wqÄnderungen speichern und Vim beenden
:q!Vim beenden und Änderungen verwerfen



Übung macht den Meister

Wenn man sich alle Befehle und Tastenkombinationen ansieht, dann sieht das alles auf den ersten Blick schon sehr kompliziert aus. Aber nach etwas Übung geht die Bedienung sehr schnell in Fleisch und Blut über. Aber um diesen anfangs doch recht komplizierten Weg zu vereinfachen, gibt es viele Möglichkeiten mehr über Vim zu lernen. Angefangen von guten Artikel und Videos bis hin zu ganzen Spielen, welche wir hier auflisten wollen.

  • Ubuntu-Users Wiki: Wenn es darum geht Informationen über ein Linux Tool zu finden, ist das Wiki der Ubuntu-Comunity sehr hilfreich. Hier finden wir immer sehr ausführliche Beschreibungen und Erklärungen von allen wichtigen Tools. Im hier verlinkten Artikel finden wir also noch einmal alle wichtigen Befehle und Modi von Vim beschrieben.
  • Youtube-Videos: Eine weitere sehr hilfreiche Quelle für Lernmaterialien ist das Video-Portal Youtube. Auch hier finden sich viele hilfreiche Videos zum Thema Vim. Das hier verlinkte Video geht circa eine viertel Stunde und zeigt noch einmal in bewegten Bildern die hier bereits beschriebenen Befehle.
Vim Lernspiel - Vim-Adventures
Vim Lernspiel – Vim-Adventures

 

  •  Vimtutor: Wenn Sie Vim auf einem Linux oder MacOS System installieren, dann wird neben dem Programm Vim noch ein weiteres Programm installiert. Der Vimtutor, dabei handelt es sich um ein Programm, welches dem Benutzer alle Befehle erklärt und Übungen bereitstellt um Vim zu erlernen. Der Großteil der Penetrationstester der AWARE7 verwendet Vim während der gebuchten Sicherheitsuntersuchungen und alle konnten den Vimtutor zum Üben von Vim nur wärmstens empfehlen.
  • Vim-Adventure: Vim-Adventure ist ein Online-Spiel, welches im Web-Browser gespielt werden kann. Dieses versucht auf spielerische Art und Weise Übungen für Vim bereitzustellen. Dafür wird eine Art Abenteuer und Labyrinth gespielt welches sich mit den Tastenbefehlen von Vim bedienen lässt. Auch dieses ist eine super Übung für den Einstieg in Vim. Da diese das lernen etwas spannender und interessanter macht.

Es gibt viele Wege Vim zu lernen, aber das wichtigste beim Lernen von Vim ist das man Vim benutzen sollte. Weil man nur dadurch in einen gewissen Fluss kommt was die Benutzung von Vim angeht.

Vim erweitern mit Plugins

Vim bietet von alleine schon sehr viele verschiedene Funktionen, die genutzt werden können. Aber dennoch ist es möglich Vim um noch viele weitere sinnvolle Funktionen zu erweitern und zu personalisieren. Damit die ganze Installation von solchen Plugins möglich einfach wird, gibt es für Vim Plugin Manager. Diese installiert man durch die folgenden Befehlen:

cd ~
mkdir -p .vim/{autoload,colors,syntax,plugin,spell,config}
mv .vimrc .vim/vimrc
ln -s .vim/vimrc .vimrc
cd ~/.vim
git clone https://github.com/tpope/vim-pathogen.git pathogen
cd autoload
ln -s ../pathogen/autoload/pathogen.vim .

Nachdem wir nun Phatogen als Plugin-Manager installiert haben müssen wir diesen nur noch aktiveren indem wir unsere Konfiguration anpassen. Dafür öffnen wir die Datei „~/.vimrc“. Wir fügen nun der Datei den folgenden Inhalt hinzu und speichern dies ab.

set nocompatible
" Initialisation de pathogen
call pathogen#infect()
call pathogen#helptags()

set number

filetype plugin indent on
syntax on
runtime! config/**/*.vim

Nun können wir uns mit den Plugins beschäftigen welche wir installieren wollen. Damit wir erst einmal eine Übersicht über mögliche Plugins für Vim erhalten können wir die Webseite Vim-Awesome besuchen. Auf dieser Webseite finden wir eine Auflistung, ähnlich eines App-Stores, aller Plugins für Vim. Wenn wir uns die beliebtesten Plugins ansehen finden wir schnell das Plugin Nerd tree welches wir nun auch vorstellen wollen.

Nerd tree – der Explorer für Vim

Nerd tree ist eine Art Explorer für Vim, mit welchem wir uns die Inhalte von Ordnern ansehen können. Damit die ganze Ordnerstruktur auch gut ersichtlich wird stellt Nerd tree diese in Form eines Baums mit Ästen und Verzweigungen dar. Das ganze ermöglicht eine sehr gute Übersicht über die Ordner und Unterordner eines Projekts.

Dateiexplorer Nerd tree in Vim
Dateiexplorer Nerd tree in Vim

Die Installation von Nerd tree ist geht sehr leicht von der Hand und kann wie folgt erfolgen:

cd ~/.vim
mkdir -p bundle
cd bundle
git clone https://github.com/scrooloose/nerdtree.git nerdtree

Nun wurde Nerd tree erfolgreich installiert. Wenn wir nun Vim öffnen sehen wir aber keine Ansicht wie die Obige.  Das liegt daran, das Nerd tree nicht direkt mit gestartet wird. Um auf diese Funktion zugriff zu bekommen geben wir in Vim im Normalmodus einfach den Folgenden Befehl ein: „:NERDTree“. Nun können wir der Pfeiltasten oder der Tasten „h“,“j“,“k“,“l “ eine Datei auswählen. Um diese zu öffnen bestätigen wir diese mit der Enter-Taste. Nachdem wir eine Datei bearbeitet haben können wir diese wie bereits beschrieben mit „:q“ oder „:wq“ schließen und befinden uns nun wieder im Nerd tree wo wir eine neue Datei auswählen können. Nerd tree selbst können wir ebenfalls mit dem Befehl „:q“ beenden.

Jedi-Vim – Autovervollständigung für Python

Ein wichtiges Funktion die viele Entwicklungsumgebungen anbieten, ist die automatische Vervollständigung von Programmierbefehlen. Da die meisten unserer Pentester:Innen die Programmiersprache Python bevorzugen, zeigen wir Ihnen wie die automatische Vervollständigung für die Programmiersprache Python in Vim installiert wird.

Die Installation erfolgt sehr einfach über die folgenden beiden Befehle:

cd ~/.vim/bundle
git clone https://github.com/davidhalter/jedi-vimgit clone https://github.com/scrooloose/nerdtree.git nerdtree

Nachdem wir jedi-vim erfolgreich installiert worden sind können wir diese mit der Tastenkombination STRG und Space aufrufen. Dadurch erhalten wir Vorschläge wie wir unsren Programmcode weiter schreiben können.

Rechtschreibprüfung in Vim

Unsere letzte Empfehlung ist streng betrachtet kein wirkliches Plugin. Dennoch handelt es sich um eine sinnvolle Erweiterung. Wie bereits beschrieben, kann Vim nicht nur Konfigurationen anpassen, sondern auch für normale Texte verwendet werden. Gerade wenn normale Texte geschrieben werden ist es sehr hilfreich wenn wir direkt Rechtschreibfehler vom Editor angezeigt bekommen und auch diese Funktion bietet uns Vim an.

Rechtschreibkorrektur in Vim
Rechtschreibkorrektur in Vim

Um das ganze benutzen zu können müssen wir erst einmal die nötigen Wörterbücher installieren. Dafür führen wir diese beiden Befehle aus:

wget -P ~/.vim/spell/ http://ftp.vim.org/vim/runtime/spell/de.utf-8.spl
wget -P ~/.vim/spell/ http://ftp.vim.org/vim/runtime/spell/de.utf-8.sug

Bevor wir nun die Rechtschreibprüfung nutzen können müssen wir diese noch konfigurieren. Dafür öffnen wir die die Datei „~/.vimrc“. Diese haben wir heute schon mehrfach angepasst und hier ergänzen wir die folgende Zeile:

map <F8> :setlocal spell spelllang=de <return>

Wir können nun ganz einfach die Rechtschreibkorrektur benutzen, indem wir die Taste „F8“ in einem Dokument benutzen. Dann wird der Text durch Vim kontrolliert und wir sehen alle als falsch erkannte Wörter.

Wir haben uns in diesem Text viele verschiedene Funktionen  und Arbeitsweisen von Vim angesehen. Auch wenn das Programm auf den ersten Blick sehr komplex wirkt, können wir nur jedem empfehlen, sich etwas länger damit zu beschäftigen. Da es sich hierbei um ein wirklich mächtiges Programm und Texteditor handelt. Wir wünschen allen Leser:Innen viel Spaß beim ausprobieren.