Gibt es eine Möglichkeit, mit dem Befehlszeilenmodus zu interagieren, während Sie immer in der Ausgangsposition bleiben?
Insbesondere sind die folgenden zwei Aktionen umständlich, da die Finger zu den Pfeiltasten und manchmal noch schlimmer zur Maus bewegt werden müssen.
- Bewegen: Gibt es eine Möglichkeit, sich im Befehlszeilenmodus hin und her zu bewegen, während Sie in der üblichen Position bleiben?
- Wie können Sie kopieren und in die Befehlszeile einfügen? Ich meine, beide von einem Teil der Befehlszeile selbst in einen anderen Teil oder aus dem Text oder sogar der Zwischenablage zu kopieren.
command-line
Shahbaz
quelle
quelle
:q
. dies eröffnet einen neuen „Puffer-like“ Fenster, in dem Sie verwenden können ,hjkl
für Bewegung,y
für yanking usw.q:
, richtig?) Gut zu wissen! Ich war in der Vergangenheit versehentlich dort angekommen, habe aber nicht wirklich darüber nachgedacht, es zu benutzen. Es scheint jedoch nicht zu funktionieren/
(Suche).Antworten:
Es gibt die Befehlszeile (die Sie kennen) und das Befehlszeilenfenster (die Befehlszeile in einem speziellen Puffer, den Sie wie jede andere bearbeiten können). Sie geben diese entweder über
<C-f>
von der Kommandozeile (auch für/
Suchanfragen etc.) , wenn Sie das Bedürfnis verspüren , für mehr „Macht Bearbeitung“ oder direkt vom Normalbetrieb über den dediziertenq:
,q/
usw. Befehle.Lesen Sie mehr dazu unter
:help command-line-window
.quelle
<C-f>
ist sehr nützlich zu wissen, da es funktioniert, nachdem Sie bereits die Hälfte des Befehls abgeschlossen haben.:
kommt für mich fast automatisch, daher ist es gut, wechseln zu können, ohne in den normalen Modus zurückzukehren.Neben der Bereitstellung des Befehlszeilenfensters bietet Vim auch einige eingeschränkte Funktionen, mit denen Sie im Befehlszeilenmodus ( ohne Verwendung der Pfeiltasten) mit der Befehlszeile interagieren können.
Bewegung
<ctrl-b>
Bewegen Sie den Cursor an den Anfang der Befehlszeile<ctrl-e>
Bewegen Sie den Cursor an das Ende der BefehlszeileBearbeitung
<ctrl-h>
Löschen Sie das Zeichen vor dem Cursor (wie die Rücktaste).<ctrl-w>
Löschen Sie das Wort vor dem Cursor<ctrl-u>
Löschen Sie den gesamten Weg vom Cursor zurück zum Anfang der BefehlszeileSie können natürlich Befehlszeilenzuordnungen hinzufügen
:cnoremap
, um die Navigationstasten bestimmter anderer Programme zu emulieren . Oder installieren Sie das RSI-Plugin von Tim Pope , um die De-facto-Standard-Readline-Bindungen zu verwenden.Einfügen
Sie können den Inhalt eines Registers an der Position des Cursors in die Befehlszeile einfügen, indem Sie
<ctrl-r>
gefolgt von dem Zeichen, das das Register angibt, drücken . zB<ctrl-r>
,+
wird der Inhalt der Zwischenablage in die Befehlszeile einfügen;<ctrl-r>
,"
fügt den Inhalt des "unbenannten" Registers ein (dh den Inhalt Ihres letzten Löschens oder Ruckelns).Siehe
:help cmdline.txt
für weitere Details aller oben.quelle
<ctrl-r>
wäre besonders nützlich.^R
für Makros verwendet. Es hat mir ermöglicht, super knifflige Manipulationen von Text durchzuführen, indem ich einen Teil der Datei während des Makros und später auch während des Makros mit dem gezogenen Teil in einem langen Ex-Modus-Befehl mit gezogen habe^R
. :)