[~] BACK



~~ VIM (II) ~~

** BASICS, SPLITS, TABS **

[VIM] | [20211206] | [0] | [0x17]




Teil 2 von "Vim lernen mir der NERDBUDE".
Wie der grundlegende Aufbau und die Bedienung von Vim funktioniert hab ich in PART I erklärt. Im zweiten Teil geht es um den NORMAL Mode der quasi sowas wie die Basis für alles (außer Text/Codeeingabe) ist. Das letztemal hatte ich erklärt wie wir ein einfaches File öffnen, Text schreiben, Speichern und das File wieder schließen. Das mag bei einfachen Notizen oder ähnlichem ausreichend sein. Nun kann Vim aber auch viel komplexer benutzt werden. Als Basis für alles dient der NORMAL Mode. Kurz einen Schritt zurück. der NORMAL Mode wird erreicht in dem "ESC" gedrückt wird. Die Statusline zeigt dann NORMAL.
Hier können diverse Befehle und Tastenkombinationen benutzt werden um zum einen Text oder Code zu bearbeiten und andererseits um Funktionen in Vim zu steuern.

KEYS

Im NORMAL Mode gibt es zwei Arten der Benutzung. Zum einen Tasten und Tastenkombinationen und zum anderen Commands. Tastenkombinationen können wie gewohnt einfach gedrückt werden und die Befehle werden meist mit ":" angefangen, gefolgt vom gewünschten Befehl. Jetzt aber genug der Theorie schließlich wollen wir Vim benutzen und nicht nur drüber lesen.

Fangen wir bei den grundlegenden Tasten und Tastenkombinationen an die die Navigation des Cursors in Vim deutlich erleichtern. Wir können natürlich so lange HJKL benutzen, bis wir an der Stelle angelangt sind zu der wir wollen, das kostet aber deutlich mehr Zeit als mit Tastenkombinationen.
Außerdem gibt es auch Tasten und Tastenkombinationen um Text zu editieren. Grundsätzlich kann gesagt werden, dass Vim Commands und Tastenkombinationen folgenden zwei Schemata folgen:

[command][number]text object
[number][command]text object

Sieht erstmal kompliziert aus, aber sobald wir uns ein Beispiel anschauen wird es verständlicher:

2dd

Die "2" definiert die Anzahl, "d" steht für Delete und durch das zweite "d" wird Vim die Anweisung gegeben, die komplette Zeile zu löschen. Demnach löscht "2dd" zwei Zeilen aus dem File.
Die Keys und Kombinationen die (zumindest bei mir) häufig benutzt werden sind folgende:

x  - löscht einzelnes Zeichen unter dem Cursor
dd - löscht eine ganze Zeile
2dd - löscht zwei Zeilen
yy - kopiert eine ganze Zeile
2yy  - kopiert 2 Zeilen 
p  - paste 
ZZ  - Speichern und Beenden 

Um sich die Navigation des Cursors zu erleichtern, können folgende Keys benutzt werden:


b / w  - vorheriges / nächstes Wort
ge / e - vorheriges / nächstes Wortende
G - Zur letzten Zeile
gg - Zur ersten Zeile
3G  - Zu Zeile "3" springen 

Damit lassen sich schon mal grundlegend Text und Code Files bequem und effizient bearbeiten. Weiter gehts mit den Commands die Vim bereit hält.

COMMANDS

Zu den Tasten bzw. Tastenkombinationen kommen bei Vim noch die Commands die benutzt werden können. Commands werden ebenfalls im NORMAL Mode eingegeben und starten meistens mit einem ":".
Die Basic Commands sind folgende:


:q - Schließen
:wq - Speichern und Schließen
:q! - Erzwingt Schließen ohne Speichern
:w - Speichern
:qa - Schließt alle Files
:qa! - Schließt alle Files ohne Speichern
:e /path/to/file - öffnet file

Damit können wir schon mal Vim schließen und Files speichern. Vim kann natürlich nicht nur ein File öffnen und bearbeiten. Vim kann natürlich mehrere Files öffen. Hier gibt es zwei Möglichkeiten Files zu öffnen: Tabs oder in Split-View.

SPLITS / TABS

Wenn paralell an Files gearbeitet werden soll die im Bezug zu einander stehen, bietet es sich an die Files auch nebeneinander zu sehen. Dafür gibt es in Vim auch Split-Views. Horizontal gesplittet genauso wie vertikal gesplittet.
Um eine Vim Instanz zu splitten können folgende Commands benutzt werden:


:split - splittet horizontal
:vsplit - splittet vertikal

Nun ist Vim gesplittet und wir können mit ":e" files in den einzelnen Splits öffnen und bearbeiten.
Da Vim im Terminal läuft stellt sich nun die Frage wie zwischen den Splits gewechselt werden kann.


STRG + W - wechselt in das nächste Split-Window

Nun wollen wir aber vielleicht nicht nur vertikal oder horizontal splitten sondern einen bunten Mix aus beidem haben. Funktioniert natürlich auch unter Vim. Dazu braucht es wieder Tastenkombinationen.

HORIZONTAL ZU VERTIKAL
STRG + W
SHIFT + H



VERTIKAL ZU HORIZONTAL
STRG + W
SHIFT + K


"STRG + W" aktiviert in diesem Fall das Window Command, das dazu dient das Fenster zu bearbeiten.
Wenn wir aber Files nicht nebeneinander bearbeiten müssen, sondern Tabs prinzipiell ausreichen geht das natürlich auch.

TABS

Tabs sollte jeder von seinem Lieblingsinternetbrowser kennen. Parallel geöffnete aber nicht gleichzeitig sichtbare Files.
In Vim können Tabs mit folgendem Command erstellt werden:

:tabnew


Dieses Command erstellt ein neues Tab ohne Namen. Allerdings kann auch schon beim Start von Vim festgelegt werden, dass mehrere Files in Tabs in einer Vim Instanz geöffnet werden sollen. Dazu benutzt man in der Commandline folgenden Befehl:

TERMINAL
vim -p file1.md file2.md


Die Option "-p" gibt hierbei an, dass die folgenden Files (file1.md, file2.md) in Tabs geöffnet werden sollen.
Nach diesem Befehl öffnet sich nun Vim mit allen angegebenen Files. Wie wird nun aber gewechselt zwischen den Tabs? Das ist genauso einfach und zwar mit zwei Tastenkombinationen

gt - Nächstes Tab
gT - Vorheriges Tab


Oder wir springen nach dem oben genannten Schema direkt zum 5. Tab mit der Tastenkombination:

5gt - Springt zum 5. Tab


Um ein Tab zu schließen gibt es zwei Möglichkeiten. Zum einen das bekannte ":q" oder man benutzt das Command ":tabclose".

PRAXIS

Mit den Basics zum NORMAL Mode sind wir nun also in der Lage Vim wie einen Modernen Editor zu benutzen mit Tabs, gesplitten Fenstern, wir können files öffnen, schließen und speichern und uns auch in den Files bewegen. Wir kommen also einem vollwertigem Ersatz für eine IDE bspw. schon näher. Als Abschluss wie schon bei Part I diese "schriftlichen Lernprozesses" ein kleines Beispiel:


vim -p file1.md file2.md - Wir öffnen 2 Files in Tabs
2gt - wir springen zu Tab Nr. 2
i - wir aktivieren den INSERT Mode
Hack the Planet - unser Text
ESC - verlassen des INSERT Modes
yy - wir kopieren die Zeile Text...
p - ... und fügen sie wieder ein
:w - Speichern das ganze
:q - und schließen Vim

[~] BACK