Der VI-Eingabemodus

VI-Eingabemodus
Ziel des VI-Modus ist nicht, Vim zu ersetzen indem alle Vim-Funktionen unterstützt werden. Das Ziel ist es, die Vim-Art der Textbearbeitung und somit die angelernten Gewohnheiten in Programmen zur Verfügung zu stellen, die den -Texteditor als ihren internen Editor verwenden.
Der VI-Modus hat zum Ziel, sich in die Programme zu integrieren und, wo sinnvoll, das Verhalten von Vim nachzubilden. Zum Beispiel öffnet :w in s VI-Modus einen Dialog zum Speichern.
Um den VI-Modus für alle neuen Ansichten zu aktivieren, gehen Sie auf Einstellungen einrichten ... Bearbeitung VI-Eingabemodus. Auf dieser Karteikarte können Sie den VI-Modus einrichten und die Tastenzuordnungen für diesen Modus anlegen und ändern. Der VI-Modus kann auch mit dem Menüpunkt VI-Eingabemodus im Menü Bearbeiten ein- bzw. ausgeschaltet werden. (Der Standardkurzbefehl ist Meta V, wobei Meta normalerweise die Windows-Taste ist.)
Viele Kurzbefehle im VI-Modus beachten die Groß- und Kleinschreibung, im Gegensatz zu den meisten -Kurzbefehlen. Das heißt, dass y und Y verschiedene Kurzbefehle sind. Um den Befehl y (kopieren) einzugeben, überprüfen Sie dass die Feststelltaste nicht aktiviert ist und drücken Y auf der Tastatur. Um den Befehl Y (kopieren bis zum Zeilenende) einzugeben, drücken Sie die Tastenkombination Y.
Die betrifft nicht die Kurzbefehle mit der -Taste, die unabhängig vom Status der Feststelltaste und ohne Drücken der -Taste eingegeben werden können. Bei einige Befehle jedoch muss bei einer Tasteneingabe nach der Tastenkombination mit der -Taste die Groß-/Kleinschreibung berücksichtigt werden. Um zum Beispiel den Befehl W, h (Wechsel zum rechten Fenster der geteilten Ansicht) einzugeben, überprüfen Sie dass die Feststelltaste nicht aktiviert ist, drücken die Tastenkombination W und dann H.

Inkompatibilitäten mit Vim
Es gibt ein paar Funktionen in s VI-Modus, die mit Vim nicht kompatibel sind (abgesehen von den fehlenden Funktionen). Diese sind hier aufgelistet, einschließlich. der entsprechenden Begründungen.
: U und R ist Wiederherstellen.
Vim: R ist normales Wiederherstellen; U macht alle Änderungen in einer Zeile rückgängig.
Der Grund dafür, in s VI-Modus U für die Wiederherstellen-Aktion zu verwenden, ist, dass der Kurzbefehl R voreingestellt von s Ersetzen-Funktion belegt ist (Suchen und ersetzen). Der VI-Modus überschreibt keine -Kurzbefehle (dies kann in Einstellungen einrichten ... Bearbeitung Vi-Eingabemodus eingestellt werden), weshalb eine Wiederherstellen-Aktion auch über einen normalen Tastendruck verfügbar sein muss. Davon abgesehen lässt sich die Funktionsweise des U-Befehls aus Vim nicht gut auf das interne System zum Rückgängigmachen in abbilden, weshalb es nicht einfach wäre, dies zu unterstützen.
: der Befehl print öffnet den Dialog Drucken.
Vim: der Befehl print gibt die Zeilen des angegebenen Bereichs wie sein Vorläufer ed aus.
Befehle wie :print sind nicht nur im VI-Modus, sondern für alle -Benutzer verfügbar. Daher öffnet der :print-Befehl den bekannten Dialog zum Drucken, anstatt das Verhalten von Vim nachzubilden.
: Y kopiert bis zum Ende der Zeile.
Vim: Y kopiert gesamte Zeile, genau wie yy.
Das Verhalten des Y-Befehls von VI kann als Fehlerhaft angesehen werden. Beim Ändern und Löschen wirken sich cc/ dd auf die gesamte Zeile aus und C/D arbeiten von der aktuellen Cursor-Position bis zum Zeilenende. Beide, yy und Y hingegen kopieren die gesamte Zeile. In s VI-Modus kopiert Y bis zum Zeilenende kopieren. Dieses Verhalten wird in der Vim-Dokumentation als logischer beschrieben.
: O und o öffnen [eine Anzahl] neuer Zeilen und wechseln in den Eingabemodus.
Vim: O und o öffnen eine neue Zeile und fügen den eingegebenen Text [so oft] ein, sobald der Eingabemodus verlassen wird.
Diese unterscheiden sich hauptsächlich, weil sich viele Benutzer im Vim-IRC-Kanal (#vim auf Freenode) verwirrt über die Funktionsweise geäußert haben.

Wechseln der Modi
Im Normalen Modus können Sie Befehle zum Navigieren und Ändern eines Dokuments eingeben. Dieser Modus ist der Standardmodus. Sie können aus allen anderen Modi mit der -Taste in diesen Modus zurückkehren.
Im Visuellen Modus können Sie Text in einem Dokument markieren. Die meisten Befehle aus dem Normalen Modus sind auch in diesem Modus gültig. Zum zeichenweise auszuwählen, wechseln in diesen Modus, indem Sie die Taste v drücken; für zeilenweise Auswahl, drücken Sie V.
Im Eingabemodus können Sie das Dokument direkt bearbeiten. Sie wechseln in diesen Modus, indem Sie die Taste i oder einen der anderen, oben genannten Befehle drücken.
Der Befehlsmodus ruft s Befehlszeile auf. Hier können Sie viele in Vi implementierte Befehle wie auch spezielle Befehle für aufrufen. Weitere Informationen über diese Befehle finden Sie unter . Um diesen Modus zu benutzen, drücken Sie die Taste :, geben den Befehl ein und drücken dann die taste.

Einbindung in Kate's Funktionen
Es wird automatisch in den Visuellen Modus gewechselt, wenn Text mit der Maus ausgewählt ist. Dieser Wechsel findet auch dann statt, wenn Funktion von benutzt werden, die Text auswählen, wie zum Beispiel Alles auswählen aus dem Menü oder mit dem Kurzbefehl A.
Marker in Vi und Lesezeichen in sind integriert. Erstellen Sie einen Marker im Vi-Modus, dann wird auch das zugehörige Lesezeichen für erstellt und im Menü Lesezeichen angezeigt. Umgekehrt wird mit einem Lesezeichen in auch der zugehörige Marker in Vi an Spalte Null der Zeile erzeugt.

Unterstützte Befehle im normalen/visuellen Modus
a	Wechselt zum Eingabemodus und fügt hinter dem Cursor ein
A	Wechselt zum Eingabemodus und fügt hinter der Zeile ein
i	Wechselt zum Eingabemodus und fügt vor dem Cursor ein
Einfügen	Wechselt zum Eingabemodus und fügt vor dem Cursor ein
I	Wechselt zum Einfügemodus und fügt vor dem ersten nicht leeren Zeichen auf der Zeile ein
gi	Wechselt zum Einfügemodus und fügt vor der Stelle ein, an der der letzte Einfügemodus verlassen wurde
v	Wechsel in den visuellen Modus; Auswahl von Zeichen
V	Wechsel in den visuellen Modus; Auswahl von Zeilen
v	Wechselt in den visuellen Modus; Auswahl von Blöcken
gb	Wechselt in den visuellen Modus und aktiviert die letzte Auswahl erneut
o	Fügt unter der aktuellen Zeile eine neue Zeile ein
O	Fügt über der aktuellen Zeile eine neue Zeile ein
J	Zeilen zusammenführen
c	Ändern: gefolgt von einer Richtungstaste; löscht ein Zeichen und wechselt in den Eingabemodus
C	Bis zum Zeilenende ändern: löscht bis zum Zeilenende und wechselt in den Eingabemodus
cc	Zeile ändern: Zeile löschen und in den Eingabemodus wechseln
s	Zeichen ersetzen
S	Zeilen ersetzen
dd	Zeile löschen
d	Gefolgt von einer Richtungstaste, um eine Zeile zu löschen
D	Löschen bis Zeilenende
x	Zeichen rechts vom Cursor löschen
Löschen	Zeichen rechts vom Cursor löschen
X	Zeichen links vom Cursor löschen
gu	Gefolgt von einer Richtungstaste, um ein Zeichen in Kleinbuchstaben zu ändern
guu	Ändert die aktuelle Zeile in Kleinschreibung
gU	Gefolgt von einer Richtungstaste, um ein Zeichen in Großbuchstaben zu ändern
gUU	Ändert die aktuelle Zeile in Großschreibung
y	Gefolgt von einer Richtungstaste, um eine Zeile zu kopieren
yy	Zeile kopieren
Y	Zeile kopieren
p	Hinter dem Cursor einfügen
P	Vor dem Cursor einfügen
]p	Hinter dem Cursor mit Einrückung einfügen
[p	Vor dem Cursor mit Einrückung einfügen
r	Gefolgt von einem Zeichen, um das Zeichen hinter dem Cursor zu ersetzen
R	Zu Ersetzungsmodus wechseln
:	Zu Befehlsmodus wechseln
/	Suchen
u	Rückgängig
R	Wiederherstellen
U	Wiederherstellen
m	Marker setzen (kann später zum Navigieren verwendet werden)
n	Weitersuchen
N	Frühere suchen
>>	Zeile einrücken
<<	Zeileneinrückung rückgängig
>	Zeilen einrücken
<	Einrückung mehrere Zeilen rückgängig
F	Seite nach unten
B	Seite nach oben
ga	ASCII-Wert des Zeichens ausgeben
.	Letzte Änderung wiederholen
==	commandAlignLine
=	commandAlignLines
~	Groß-/Kleinschreibung des aktuellen Zeichens ändern
S	Ansicht waagerecht teilen
V	Ansicht senkrecht teilen
W, w	Wechselt zum nächsten Fenster der geteilten Ansicht
W, h W Left	Wechselt zum linken Fenster der geteilten Ansicht
W, l W Pfeil rechts	Wechselt zum rechten Fenster der geteilten Ansicht
W, k W Pfeil hoch	Wechselt zum oberen Fenster der geteilten Ansicht
W, j W Pfeil runter	Wechselt zum unteren Fenster der geteilten Ansicht

Unterstützte Richtungstasten
Diese können zum Bewegen in einem Dokument im Normalen und im Visuellen Modus oder im Zusammenspiel mit einem der oben genannten Befehle verwendet werden. Es können Nummern angehängt werden, um anzugeben, wie oft die entsprechende Bewegung ausgeführt werden soll.
h	Nach links
Nach links	Nach links
	Nach links
j	Nach unten
Nach unten	Nach unten
k	Nach oben
Nach oben	Nach oben
l	Nach rechts
Nach rechts	Nach rechts
Leertaste	Nach rechts
$	Zum Zeilenende
Ende	Zum Zeilenende
0	Zum ersten Zeichen der Zeile (Spalte 0)
Pos1	Zum ersten Zeichen der Zeile
^	Erstes Zeichen, das kein Leerzeichen ist, in dieser Zeile
f	Gefolgt von einem Zeichen rechts vom Cursor, zu dem der Cursor bewegt werden soll
F	Gefolgt von einem Zeichen links vom Cursor, zu dem der Cursor bewegt werden soll
t	Gefolgt von einem Zeichen rechts vom Cursor, vor das der Cursor bewegt werden soll
T	Gefolgt von einem Zeichen links vom Cursor, vor das der Cursor bewegt werden soll
gg	Zur ersten Zeile
G	Zur letzten Zeile
w	Nächstes Wort
W	Nächstes Wort getrennt durch Leerzeichen
b	Vorheriges Wort
B	Vorheriges Wort getrennt durch Leerzeichen
e	Wortende
E	Ende des Worts getrennt durch Leerzeichen
ge	Ende des vorheriges Wortes
gE	Ende des vorherigen Worts getrennt durch Leerzeichen
|	Gefolgt von einer Spaltennummer, um in die Spalte zu springen
%	Gefolgt von einem Element, um zu dem Element zu springen
`	Marker
‘	Erstes Zeichen, das kein Leerzeichen ist, in der Zeile, in der sich der Marker befindet
[[	Vorherige öffnende eckige Klammer
]]	Nächste öffnende eckige Klammer
[]	Vorherige schließende eckige Klammer
][	Nächste schließende eckige Klammer
I	Geht vorwärts zur nächsten Adresse
O	Geht zurück zur vorherigen Adresse
H	Geht zur ersten Zeile auf dem Bildschirm
M	Geht zur mittleren Zeile auf dem Bildschirm
L	Geht zur letzten Zeile auf dem Bildschirm
%Prozentsatz	Geht zum angegebenen Prozentsatz des Dokuments
gk	Geht optisch eine Zeile aufwärts (bei dynamischem Zeilenumbruch)
gj	Geht optisch eine Zeile abwärts (bei dynamischem Zeilenumbruch)
Pfeil links	Verschiebt ein Wort nach links
Pfeil rechts	Verschiebt ein Wort nach rechts

Unterstützte Textobjekte
Diese können verwendet werden, um bestimmte Bereiche eines Dokuments auszuwählen.
iw	Inneres Wort: Wort inklusive Leerzeichen
aw	Ein Wort: Wort ohne Leerzeichen
i"	Vorherige Anführungszeichen (") bis nächste Anführungszeichen, inklusive der Anführungszeichen
a”	Vorherige Anführungszeichen (") bis nächste Anführungszeichen, ohne die Anführungszeichen
i'	Vorherige einfache Anführungszeichen (") bis nächste einfache Anführungszeichen, inklusive der Anführungszeichen
a'	Vorherige einfache Anführungszeichen (") bis nächste einfache Anführungszeichen, ohne die Anführungszeichen
i(	Vorherige öffnende Klammer [(] bis nächste schließende Klammer [)], inklusive der Klammern
a(	Vorherige öffnende Klammer [(] bis nächste schließende Klammer [)], ohne die Klammern
i[	Vorherige öffnende eckige Klammer ([) bis nächste schließende eckige Klammer (]), inklusive der Klammern
a[	Vorherige öffnende eckige Klammer ([) bis nächste schließende eckige Klammer (]), ohne die Klammern
i{	Vorherige öffnende geschweifte Klammer ({) bis nächste schließende geschweifte Klammer (}), inklusive der Klammern
a{	Vorherige öffnende geschweifte Klammer ({) bis nächste schließende geschweifte Klammer (}), ohne die Klammern
i<	Vorherige öffnende spitze Klammer (<) bis nächste schließende spitze Klammer (>), inklusive der Klammern
a<	Vorherige öffnende spitze Klammer (<) bis nächste schließende spitze Klammer (>), ohne die Klammern
i`	Vorheriges Backtick („rückwärts geneigtes Hochkomma“) (") bis nächstes Backtick, inklusive der Backticks
a`	Vorheriges Backtick („rückwärts geneigtes Hochkomma“) (") bis nächstes Backtick, ohne die Backticks

Unterstützte Befehle im Eingabemodus
D	Einrückung verringern
T	Einrücken
E	Von unten einfügen
Y	Wort löschen
W	Wort löschen
U	Zeile löschen
J	Neue Zeile
H	Löscht Zeichen rückwärts
Pos1	Geht zum ersten Zeichen im Dokument
R n	Fügt den Inhalt des Registers n ein
O, Befehl	Wechselt für einen Befehl zum normalen Modus
A	Verringert die aktuell gewählte Zahl
X	Erhöht die aktuell gewählte Zahl

Das Komma-Textobjekt
Dieses Objekt fehlt in Vim. Das Komma-Text-Objekt vereinfacht das Ändern von Parameterlisten in C-ähnlichen Sprachen und anderen durch Komma getrennte Listen. Dies ist der Bereich zwischen zwei Kommas oder einem Komma und einer Klammer. In der Demonstrationszeile sind die Bereiche, die dieses Text-Objekt umfassen kann, hervorgehoben.
Ein Beispiel für ein Komma-Textobjekt
Ein Beispiel für ein Komma-Textobjekt
Bereiche des Komma-Text-Objekts. Wenn sich der Cursor ⪚ über arg2 befindet, bewirkt das Drücken von ci(inneres Komma ändern), dass double arg2 gelöscht wird und der Cursor im Eingabemodus zwischen die beiden Kommas platziert wird. Das ist ein sehr angenehme Art, Funktionsparameter zu ändern.

Fehlende Funktionen
Wie bereits erwähnt, ist es nicht Ziel des VI-Modus in , die Funktionen von Vim zu 100 % zu unterstützen.