Ich muss (visuell) einen Zeilenbereich aus der Befehlszeile auswählen.
Der folgende Befehl :?^\s*for?+,/^\s*end/- p
druckt beispielsweise alle Zeilen zwischen a for
und end
(exklusiver Weg). Anstatt den Druckvorgang durchzuführen, möchte ich mit hervorgehobenen Zeilen in den visuellen Modus wechseln. Ich habe im Handbuch gesucht, aber einen solchen Ex-Befehl nicht gefunden.
command-line
visual-mode
nicmus
quelle
quelle
Antworten:
Die Grenzen einer visuellen Modusauswahl werden durch die Markierungen
<
und definiert>
.Daher wechselt der folgende Befehl in den visuellen Modus, wobei die Zeilen 5 bis 10 (einschließlich) ausgewählt sind:
:5mark <
setzt den Beginn der Auswahl auf Zeile 5,:10mark >
setzt das Ende der Auswahl auf Zeile 10,gv
wechselt in den visuellen Modus mit dem oben definierten Bereich,V
trifft die Auswahl zeilenweise.Sie können einen beliebigen Vim-Bereich an den
:mark
Befehl übergeben: Folgendes wechselt mit den regulären Ausdrücken in den visuellen Modusfoo
undbar
definiert die Grenzen des Auswahlbereichs:Der folgende Befehl ist eine einfachere Version des oben genannten Befehls, hängt jedoch von der Cursorposition ab:
Weitere Erklärungen finden Sie unter:
:help mark-motions
:help :mark
:help ranges
:help gv
:help v_V
:help :execute
:help search()
help expr-.
quelle
?^\s*for?+ mark < | /^\s*end/- mark > | norm gv
+
und-
in @ nicmus die Bereiche an, damit die Auswahl nicht die Zeilen enthält, die den regulären Ausdrücken entsprechen. (Siehe:help range
).
Verkettungsoperator hat mich wirklich umgehauen. Hier ist ein Beispiel, wenn jemand das gleiche Gefühl hat: Er:execute "l" . "s"
erzeugt die gleiche Ausgabe wie:ls
.