Vim Erklärung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<span id="warum-vim-benutzenlernen"></span>
 
 
= Warum Vim benutzen/lernen? =
 
= Warum Vim benutzen/lernen? =
  
* Editierzeit von Text verringert sich drastisch, da die Finger nicht die Tastatur verlassen müssen
+
* 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, Marcros, Visual-Mode, Command-Mode oder durch eigene Kofigurationen
+
* Abnehmen repetitiver Arbeit mit Zahl+Befehl, Macros, Visual-Mode, Command-Mode oder durch eigene Konfigurationen
* erweiterbar für eigene Anforderungen (siehe $MYVIMRC)
+
* erweiterbar für eigene Anforderungen (siehe [[Vim Konfiguration|$MYVIMRC]])
 
* [[Vim Beispiele|Anwendungsbeispiele]]
 
* [[Vim Beispiele|Anwendungsbeispiele]]
* Sample text
 
  
<span id="modi"></span>
 
 
= Modi =
 
= Modi =
  
Vim hat 4 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
+
{{#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
 +
* 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
  
<span id="navigation-normal-mode-visual-mode"></span>
 
 
= 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: nächstes Zeichen nach einer Leerzeile
+
* w: Anfang des nächsten Wortes
* e: Ende des nächsten Wortes, E: letztes Zeichen vor der nächsten Leerzeile
+
* W: nächstes Zeichen nach einer Leerzeile
* b: Anfang des letzen Wortes, B: Erstes Zeichen zwischen dem letzten und dem vorletztem Leerzeichen
+
* e: Ende des nächsten Wortes
* ge: Ende des letzten Wortes, gE: erstes Zeichen vor der letzten Leerzeile
+
* E: letztes Zeichen vor der nächsten 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
+
* 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
* T + beliebiges Zeichen: Finde das letzte Auftreten dieses Zeichens in der Zeile + 1
 
 
* /, ?: 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
 
* ^/0,$: Gehe zum Zeilenanfang/-ende
 
* ^/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
  
<span id="texteditieren-normal-mode-bedingt-visual-mode"></span>
 
 
= 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 41: 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
  
<span id="autocomplete-insert-mode"></span>
 
 
= 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.
  
<span id="kontextlose-vervollständigung"></span>
 
 
== Kontextlose Vervollständigung ==
 
== Kontextlose Vervollständigung ==
  
* Strg + r + Register: Fügt den Text aus jeweiligen Register ein. Mit :reg können Register eingesehen werden.
+
* 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 sucht, das Vim schon mal gesehen hat. n bzw. p gibt die Suchrichtung an.
+
* Strg + n/p: Vervollständigt ein Wort, das schon mal getippt wurde. n bzw. p gibt die Suchrichtung an.
  
<span id="vervollständigung-mit-kontext"></span>
 
 
== 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

Navigation (Normal-Mode, Visual-Mode)

  • 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.