VIM: `t`-Bewegung mit zwei oder mehr Zeichen

VIM: `t`-Bewegung mit zwei oder mehr Zeichen

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/heabis“ auswählen könnte hea, aber wenn ich dann den Text lösche, habe ich auch den führenden hText 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.headh

Gibt es eine Möglichkeit, tvon 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 veine 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-1zu platzieren . Siehe-1b

:help search-offset

Sie müssen nicht mappen /. Sie könnten tstattdessen 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 hBuchstaben werden rot markiert, aber durch ersetzt. a,b,c,…Anschließend können Sie auf Löschen klicken, bum 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

d2fhwerde es in Ihrem Beispiel tun.

Antwort4

Nein, takzeptiert nur ein Zeichen. Ich würde tun vththd.

verwandte Informationen