Vim Erklärung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | |||
= Warum Vim benutzen/lernen? = | = Warum Vim benutzen/lernen? = | ||
| − | * | + | * Die Zeit für das Editieren von Text verringert sich drastisch, da die Hände nicht die ''Home-Row'' verlassen müssen |
* präzise Navigation im Normal-Mode | * präzise Navigation im Normal-Mode | ||
* mächtige Selbstvervollständigungswerkzeuge für Wörter, Zeilen und Programmsyntax | * mächtige Selbstvervollständigungswerkzeuge für Wörter, Zeilen und Programmsyntax | ||
| − | * Abnehmen repetitiver Arbeit mit Zahl+Befehl, | + | * Abnehmen repetitiver Arbeit mit Zahl+Befehl, Macros, Visual-Mode, Command-Mode oder durch eigene Konfigurationen |
* erweiterbar für eigene Anforderungen (siehe [[Vim Konfiguration|$MYVIMRC]]) | * erweiterbar für eigene Anforderungen (siehe [[Vim Konfiguration|$MYVIMRC]]) | ||
* [[Vim Beispiele|Anwendungsbeispiele]] | * [[Vim Beispiele|Anwendungsbeispiele]] | ||
| − | |||
| − | |||
= Modi = | = Modi = | ||
| − | Vim hat | + | {{#drawio: vim-modi}} |
| + | |||
| + | Vim hat 5 verschiedene Modi, die jeweils ihre Bereiche für repetitive Arbeit abnehmen können. | ||
* Normal: Navigation des Cursors und Textedit | * Normal: Navigation des Cursors und Textedit | ||
| Zeile 19: | Zeile 18: | ||
* Visual: Markieren von Bereichen für das Editieren | * Visual: Markieren von Bereichen für das Editieren | ||
* Command: Ausführen komplexer Befehle, anpassen von Einstellungen in Vim | * Command: Ausführen komplexer Befehle, anpassen von Einstellungen in Vim | ||
| + | * Completion: Schaut im Puffer nach Text und gibt uns Kandidaten für Autovervollständigung | ||
| − | |||
| − | |||
= Navigation (Normal-Mode, Visual-Mode) = | = Navigation (Normal-Mode, Visual-Mode) = | ||
* h, j, k, l: links, unten, oben, rechts | * h, j, k, l: links, unten, oben, rechts | ||
| − | * w: Anfang des nächsten Wortes | + | * w: Anfang des nächsten Wortes |
| − | * e: Ende des nächsten Wortes | + | * W: nächstes Zeichen nach einer Leerzeile |
| − | * b: Anfang des letzen Wortes | + | * e: Ende des nächsten Wortes |
| − | * ge: Ende des letzten Wortes | + | * E: letztes Zeichen vor der nächsten Leerzeile |
| − | * f + beliebiges Zeichen: Finde das nächste Auftreten dieses Zeichens in der Zeile | + | * b: Anfang des letzen Wortes |
| + | * B: Erstes Zeichen zwischen dem letzten und dem vorletztem Leerzeichen | ||
| + | * ge: Ende des letzten Wortes | ||
| + | * gE: erstes Zeichen vor der letzten Leerzeile | ||
| + | * f + beliebiges Zeichen: Finde das nächste Auftreten dieses Zeichens in der Zeile | ||
| + | * F + beliebiges Zeichen: Finde das letzte Auftreten dieses Zeichens in der Zeile | ||
* t + beliebiges Zeichen: Finde das nächste Auftreten dieses Zeichens in der Zeile - 1 | * t + beliebiges Zeichen: Finde das nächste Auftreten dieses Zeichens in der Zeile - 1 | ||
| + | * T + beliebiges Zeichen: Finde das letzte Auftreten dieses Zeichens in der Zeile + 1 | ||
* “,”, “;” wiederholt die letzte Suchaktion in der Zeile in der jeweiligen Richtung | * “,”, “;” wiederholt die letzte Suchaktion in der Zeile in der jeweiligen Richtung | ||
| − | |||
* /, ?: Sucht nach einem String (und updated das “/”-Register) | * /, ?: Sucht nach einem String (und updated das “/”-Register) | ||
* n, N: Wiederholt die letze Suche in der jeweiligen Richtung | * n, N: Wiederholt die letze Suche in der jeweiligen Richtung | ||
| Zeile 39: | Zeile 42: | ||
* o (in Visual-Mode): Geht mit den Cursor an das andere Ende der Auswahl | * o (in Visual-Mode): Geht mit den Cursor an das andere Ende der Auswahl | ||
| − | |||
| − | |||
= Texteditieren (Normal-Mode, bedingt Visual-Mode) = | = Texteditieren (Normal-Mode, bedingt Visual-Mode) = | ||
| − | + | * u: Undo | |
* i, a: Wechsel in den Insert-Mode am/nach dem Cursor | * i, a: Wechsel in den Insert-Mode am/nach dem Cursor | ||
* I: Wechsel in den Insert-Mode am Zeilenanfang | * I: Wechsel in den Insert-Mode am Zeilenanfang | ||
| Zeile 50: | Zeile 51: | ||
* c + Navigation: löscht alles bis zum Navigationsziel und wechsel in den Insert-Mode | * c + Navigation: löscht alles bis zum Navigationsziel und wechsel in den Insert-Mode | ||
* C: löscht alles vom Cursor bis ans Ende der Zeile und wechsel in den Insert-Mode | * C: löscht alles vom Cursor bis ans Ende der Zeile und wechsel in den Insert-Mode | ||
| − | * r + Zeichen: ersetzt das Zeichen unter dem Cursor/ der Auswahl des Visual-Modes | + | * r: + Zeichen: ersetzt das Zeichen unter dem Cursor/ der Auswahl des Visual-Modes |
| − | * R (im Normal-Mode): Wechsel in den Replace-Mode | + | * y + Navigation: kopieren (yank) |
| − | * R (im Visual-Mode): macht dasselbe wie “S” | + | * p: das Kopierte nach dem Cursor einfügen (paste) |
| + | * P: das Kopierte vor dem Cursor einfügen (paste) | ||
| + | * R: (im Normal-Mode): Wechsel in den Replace-Mode | ||
| + | * R: (im Visual-Mode): macht dasselbe wie “S” | ||
* Strg + a/x: erhöht/verringert die Zahl um 1, wenn keine Zahl unter dem Cursor liegt, wird nach der nächsten Zahl in der Zeile gesucht | * Strg + a/x: erhöht/verringert die Zahl um 1, wenn keine Zahl unter dem Cursor liegt, wird nach der nächsten Zahl in der Zeile gesucht | ||
| − | |||
| − | |||
= Autocomplete (Insert-Mode) = | = Autocomplete (Insert-Mode) = | ||
Das Autocomplete-Feature kann viele Arten von Mustern erkennen. Diese reichen von einfachen Wörtern, bis hin zu “Sätzen” je nach Kontext. Das Pop-up-Menü kann man mit Strg + n/p (next/previous) navigieren. | Das Autocomplete-Feature kann viele Arten von Mustern erkennen. Diese reichen von einfachen Wörtern, bis hin zu “Sätzen” je nach Kontext. Das Pop-up-Menü kann man mit Strg + n/p (next/previous) navigieren. | ||
| − | |||
== Kontextlose Vervollständigung == | == Kontextlose Vervollständigung == | ||
| − | * Strg + r + Register: Fügt den Text aus jeweiligen Register ein. Mit :reg können | + | * Strg + r + Register: Fügt den Text aus jeweiligen Register ein. Mit :reg können Registerinhalte eingesehen werden. |
| − | * Strg + n/p: Vervollständigt ein Wort | + | * Strg + n/p: Vervollständigt ein Wort, das schon mal getippt wurde. n bzw. p gibt die Suchrichtung an. |
| − | |||
| − | |||
== Vervollständigung mit Kontext == | == Vervollständigung mit Kontext == | ||
Aktuelle Version vom 22. November 2024, 09:51 Uhr
Warum Vim benutzen/lernen?
- Die Zeit für das Editieren von Text verringert sich drastisch, da die Hände nicht die Home-Row verlassen müssen
- präzise Navigation im Normal-Mode
- mächtige Selbstvervollständigungswerkzeuge für Wörter, Zeilen und Programmsyntax
- Abnehmen repetitiver Arbeit mit Zahl+Befehl, Macros, Visual-Mode, Command-Mode oder durch eigene Konfigurationen
- erweiterbar für eigene Anforderungen (siehe $MYVIMRC)
- Anwendungsbeispiele
Modi
Vim hat 5 verschiedene Modi, die jeweils ihre Bereiche für repetitive Arbeit abnehmen können.
- Normal: Navigation des Cursors und Textedit
- Insert: Textinput und Autocomplete
- Visual: Markieren von Bereichen für das Editieren
- Command: Ausführen komplexer Befehle, anpassen von Einstellungen in Vim
- Completion: Schaut im Puffer nach Text und gibt uns Kandidaten für Autovervollständigung
- h, j, k, l: links, unten, oben, rechts
- w: Anfang des nächsten Wortes
- W: nächstes Zeichen nach einer Leerzeile
- e: Ende des nächsten Wortes
- E: letztes Zeichen vor der nächsten Leerzeile
- b: Anfang des letzen Wortes
- B: Erstes Zeichen zwischen dem letzten und dem vorletztem Leerzeichen
- ge: Ende des letzten Wortes
- gE: erstes Zeichen vor der letzten Leerzeile
- f + beliebiges Zeichen: Finde das nächste Auftreten dieses Zeichens in der Zeile
- F + beliebiges Zeichen: Finde das letzte Auftreten dieses Zeichens in der Zeile
- t + beliebiges Zeichen: Finde das nächste Auftreten dieses Zeichens in der Zeile - 1
- T + beliebiges Zeichen: Finde das letzte Auftreten dieses Zeichens in der Zeile + 1
- “,”, “;” wiederholt die letzte Suchaktion in der Zeile in der jeweiligen Richtung
- /, ?: Sucht nach einem String (und updated das “/”-Register)
- n, N: Wiederholt die letze Suche in der jeweiligen Richtung
- ^/0,$: Gehe zum Zeilenanfang/-ende
- gv: wählt die letzte Auswahl des Visual-Mode nochmal aus
- o (in Visual-Mode): Geht mit den Cursor an das andere Ende der Auswahl
Texteditieren (Normal-Mode, bedingt Visual-Mode)
- u: Undo
- i, a: Wechsel in den Insert-Mode am/nach dem Cursor
- I: Wechsel in den Insert-Mode am Zeilenanfang
- A: Wechsel in den Insert-Mode am Zeilenende
- s: löscht das Zeichen unter dem Cursor und wechsel in den Insert-Mode
- S: löscht die Zeile und wechsel in den Insert-Mode
- c + Navigation: löscht alles bis zum Navigationsziel und wechsel in den Insert-Mode
- C: löscht alles vom Cursor bis ans Ende der Zeile und wechsel in den Insert-Mode
- r: + Zeichen: ersetzt das Zeichen unter dem Cursor/ der Auswahl des Visual-Modes
- y + Navigation: kopieren (yank)
- p: das Kopierte nach dem Cursor einfügen (paste)
- P: das Kopierte vor dem Cursor einfügen (paste)
- R: (im Normal-Mode): Wechsel in den Replace-Mode
- R: (im Visual-Mode): macht dasselbe wie “S”
- Strg + a/x: erhöht/verringert die Zahl um 1, wenn keine Zahl unter dem Cursor liegt, wird nach der nächsten Zahl in der Zeile gesucht
Autocomplete (Insert-Mode)
Das Autocomplete-Feature kann viele Arten von Mustern erkennen. Diese reichen von einfachen Wörtern, bis hin zu “Sätzen” je nach Kontext. Das Pop-up-Menü kann man mit Strg + n/p (next/previous) navigieren.
Kontextlose Vervollständigung
- Strg + r + Register: Fügt den Text aus jeweiligen Register ein. Mit :reg können Registerinhalte eingesehen werden.
- Strg + n/p: Vervollständigt ein Wort, das schon mal getippt wurde. n bzw. p gibt die Suchrichtung an.
Vervollständigung mit Kontext
Diese Art von Vervollständigungen beginnen immer mit Strg + X. Danach kann man in den gewünschten Kontext wechseln.
- Strg + x, Strg + O: Sucht nach Variabeln-, Klassen- und Funktionsnamen. Kann auch in importierten Bibliotheken suchen.
- Strg + x, Strg + n/p: Dasselbe wie Strg + n/p, aber wiederholte Verwendungen beachten den Kontext. D.h. Satzteile können somit vervollständigt werden.
- Strg + x, Strg + l: Versucht Sätze zu vervollständigen. Wiederholte Anwendungen ziehen sich die nachfolgenden Sätze.
