
Angenommen, es gäbe eine Zeile wie:
grep -ir "$@" * | grep -v "/.svn/" | grep -v "/inc/help/" | head -n 100
Wenn der Cursor am ersten steht |
und ich „bis“ löschen möchte head
, wie kann ich das mit „t“ machen? Ich weiß, dass ich „ v/hea
bis“ auswählen könnte hea
, aber wenn ich dann den Text lösche, habe ich auch den führenden h
Text entfernt. Ich könnte einfach ein Zeichen zurücksetzen, aber das ist jetzt eine Kette von Workarounds. Es funktioniert, aber ich würde gerne wissen, ob es einen besseren Weg gibt.head
h
Gibt es eine Möglichkeit, t
von zwei oder mehr Zeichen statt von einem einzigen Zeichen abhängig zu sein?
Antwort1
Versuche dies:
:vnoremap / //b-1<left><left><left><left>
Wenn Sie v
eine Region visuell auswählen und dann mit /
der Suche nach dem Ende der Region beginnen, gibt Vim Folgendes ein:
//b-1
in die Befehlszeile mit dem Cursor über dem zweiten /
. Dann geben Sie die 2 oder mehr Zeichen ein, mit denen Sie die Region beenden möchten, und drücken die Eingabetaste. Das weist Vim an, nach diesem Muster zu suchen und den Cursor ein Zeichen vor ( ) dem Anfang der Übereinstimmung b-1
zu platzieren . Siehe-1
b
:help search-offset
Sie müssen nicht mappen /
. Sie könnten t
stattdessen map oder ein anderes Zeichen verwenden.
Antwort2
Wenn Sie es interaktiv machen können, können Sie es versuchen mitEasymotion-Plugin:
d;;fh
-> der gesamte Text wird grau dargestellt und alle h
Buchstaben werden rot markiert, aber durch ersetzt. a,b,c,…
Anschließend können Sie auf Löschen klicken, b
um den zweiten Buchstaben zu löschen h
.
Ich weiß, diese Beschreibung ist etwas kryptisch - schauen Sie sich eineYoutube-Video
Ps.: Ich habe vergessen zu erwähnen, ;
dass dies mein Leader-Schlüssel ist
Antwort3
d2fh
werde es in Ihrem Beispiel tun.
Antwort4
Nein, t
akzeptiert nur ein Zeichen. Ich würde tun vththd
.