Ich weiß, wie man sich im Befehlsmodus im Allgemeinen bewegt, insbesondere zum Springen zu Zeilen usw. Aber wie lautet der Befehl, um zum Ende der Zeile zu springen, in der ich mich gerade befinde?
vim
editor
keyboard-shortcuts
vi
salt.racer
quelle
quelle
vimtutor
ist großartig. Wahrscheinlich wussten sie nichts davon?Antworten:
Nur die Taste $ (Dollarzeichen) . Sie können Adamit zum Ende der Zeile wechseln und in den Bearbeitungsmodus wechseln (Anhängen). Um das letzte Nicht-Leerzeichen zu springen, können Sie drücken gdann _Tasten.
Das Gegenteil von Aist I(Einfügemodus am Zeilenanfang). Wenn Sie nur die Taste drücken, ^wird der Cursor auf das erste Nicht-Leerzeichen der Zeile gesetzt.
quelle
g_
g_
Variation nützlicher, da sie keine leeren Zeichen enthältWie viele Leute gesagt haben:
aber auch:
quelle
|
Befehl kann jedoch gezählt werden, z. B. 3 | zur dritten Spalte springen.g _ geht zum letzten Nicht-Leerzeichen.
g $ geht zum Ende der Bildschirmzeile (wenn eine Pufferzeile über mehrere Bildschirmzeilen gewickelt ist)
quelle
b
geht zum Anfang des vorherigen Wortes, was überhaupt nicht dasselbe ist. Es ist ungefähr gleichbedeutend mit$ge
._
undg_
zum visuellen / Ziehen, da$
auch das neue Zeilenzeichen (LN) kopiert / gelöscht wird.g_
ist der einzige Weg, den ich gefunden habe, um zum eigentlichen Ende der Linie zu gelangen.$
geht bis zum Ende der Zeile, auch wenn es für mich eingewickelt ist. Ich kenne keine Einstellung, um sein Verhalten anzupassen. Vielleicht wurde es von Ihrer .vimrc neu zugeordnetg$
?Die Hauptfrage - Zeilenende
$ geht zum Zeilenende, bleibt im Befehlsmodus
A geht zum Zeilenende, wechselt in den Einfügemodus
Umgekehrt - Zeilenanfang (technisch das erste Nicht-Leerzeichen )
^ geht zum Zeilenanfang, bleibt im Befehlsmodus
I (Großbuchstabe i) wechselt zum Zeilenanfang und wechselt in den Einfügemodus
Weiter - Zeilenanfang (technisch die erste Spalte unabhängig vom Leerzeichen )
0 (Null) geht zum Zeilenanfang, bleibt im Befehlsmodus
0i (Null gefolgt von Kleinbuchstaben i) wechselt zum Zeilenanfang und wechselt in den Einfügemodus
Für diejenigen, die anfangen, vi zu lernen, finden Sie hier eine gute Einführung in vi, indem Sie nebeneinander vi-Befehle für typische Cursorbewegungen und Tastenkombinationen des Windows-GUI-Editors auflisten.
vi Editor für Windows-Benutzer
quelle
I
ist nicht0
aber^
, da beideI
und^
zum ersten Nicht-Leerzeichen der Zeile gehen, sondern0
zur Spalte Null gehen (wie der Name schon sagt).0
wäre? (Gehe zum ersten Zeichen (= Spalte 0) der Zeile und gehe in den Einfügemodus.)0i
. :-)Wenn Ihre aktuelle Zeile den sichtbaren Bildschirm in die nächste Zeile umschließt, können Sie mit g $ zum Ende der Bildschirmzeile gelangen .
quelle
gw
undgq
Befehle sind, die Text neu formatieren. (siehe:h gw
und:h gq
) Was wahrscheinlich passiert ist, war, dass Siegw{motion}
Text geändert haben, sodass die Bildschirmzeilen den tatsächlichen Zeilen entsprachen.Das Dollarzeichen: $
quelle
In vielen Fällen, wenn wir uns in einer Zeichenfolge befinden, werden wir von einem doppelten Anführungszeichen eingeschlossen, oder wenn wir eine Anweisung schreiben, möchten wir nicht die Esc-Taste drücken und mit der Pfeiltaste zum Ende dieser Zeile gehen und das Semikolon (
;
) drücken, um zu enden die Linie. Schreiben Sie die folgende Zeile in Ihre vimrc- Datei:Was sagt die Zeile? Es ordnet Strg + l einer Reihe von Befehlen zu. Dies entspricht dem gleichzeitigen Drücken von Esc(Befehlsmodus), $(Zeilenende), a(Anhängen).
quelle
vim
Mit solchen Dingen können Sie sicherlich viel mehr in viel kürzerer Zeit erreichen. @razorxpress wäre eine geringfügige Anpassungimap <C-l> <Esc>A
, bei der Strg + l dem Drücken vonEsc
(EinfügemodusA
beenden ) und dann (am Zeilenende anhängen) entspricht.inoremap <C-l> <C-o>A
Der Vorteil der Taste 'Ende' besteht darin, dass sie sowohl im normalen als auch im Einfügemodus funktioniert.
'$' funktioniert nur im Normal- / Befehlsmodus, aber auch im klassischen vi-Editor (gut zu wissen, wenn vim nicht verfügbar ist).
quelle
Beachten Sie auch die Unterscheidung zwischen Linie (oder vielleicht physikalischer Linie) und Bildschirmlinie . Eine Zeile wird durch das Zeilenendezeichen ("\ n") abgeschlossen. Eine Bildschirmzeile ist das, was gerade als eine Zeichenzeile in Ihrem Terminal oder auf Ihrem Bildschirm angezeigt wird. Die beiden werden getrennt, wenn Sie physische Linien haben, die länger als die Bildschirmbreite sind, was beim Schreiben von E-Mails und dergleichen sehr häufig vorkommt.
Die Unterscheidung wird auch in den Zeilenendebefehlen angezeigt.
Wenn Sie immer das letztere Verhalten bevorzugen, können Sie die Schlüssel folgendermaßen neu zuordnen:
quelle
g_
ist das letzte Nicht-Leerzeichen der physischen Linie. Wie wäre es mit Bildschirmzeile?Drücken Sie A, um am Ende der Zeile in den Bearbeitungsmodus zu wechseln.
quelle
Oder es gibt die offensichtliche Antwort: Verwenden Sie die EndTaste, um zum Ende der Zeile zu gelangen.
quelle
Ich kann keinen Hotkey für MacBook zur Verwendung von vim im Standardterminal sehen. Hoffe es wird jemandem helfen. Für MacOS-Benutzer (getestet auf MacBook Pro 2018):
Für die letzten beiden Befehle muss manchmal zweimal getippt werden.
quelle
Möglicherweise ohne Bezug, aber wenn Sie eine neue Zeile nach der aktuellen Zeile beginnen möchten, können Sie o an einer beliebigen Stelle in der Zeile verwenden.
quelle
Die einfachste Möglichkeit wäre die Eingabe $. Wenn Sie mit Textblöcken arbeiten, können Sie den Befehl {und }das Verschieben eines Absatzes vorwärts bzw. rückwärts zu schätzen wissen .
quelle
Ich war es gewohnt, mit Home / End im Einfügemodus (von Windows und Linux) an den Anfang und das Ende von Zeilen zu gelangen, was der Mac nicht unterstützt. Dies ist besonders ärgerlich, da ich vim auf einem Remote-System nicht einfach ausführen kann. Nach einigen schmerzhaften Versuchen und Irrtümern kam ich auf diese
.vimrc
Zeilen, die dasselbe tun, aber für den Zeilenanfang an Strg-A und für das Zeilenende an Strg-D gebunden sind. (Aus irgendeinem Grund ist Strg-E vermutlich reserviert, oder ich konnte zumindest keinen Weg finden, es zu binden.) Viel Spaß.Hier gibt es eine gute Tabelle für die ASCII-Steuerzeichencodes, auch für andere:
http://www.physics.udel.edu/~watson/scen103/ascii.html
Sie können auch Strg-V + Strg- ausführen, aber das wird an solchen Stellen nicht so gut eingefügt.
quelle