VIM: 2文字以上の文字による `t` モーション

VIM: 2文字以上の文字による `t` モーション

次のような行を想定します。

grep -ir "$@" * | grep -v "/.svn/" | grep -v "/inc/help/" | head -n 100

カーソルが先頭にあり|、 まで削除したい場合head、 t でそれを実行するにはどうすればよいですか?v/heaまで選択できることはわかっていますが、その後テキストを削除すると、先頭heaも削除されます。文字を 1 つ戻すこともできますが、これは一連の回避策になります。機能しますが、もっと良い方法があるかどうかを知りたいです。hheadh

t1 つの文字ではなく 2 つ以上の文字に依存する方法はありますか?

答え1

これを試して:

:vnoremap / //b-1<left><left><left><left>

v視覚的に領域を選択するために入力し、次に/領域の終わりの検索を開始するために入力すると、Vimは次のように入力します。

//b-1

をコマンドラインに入力し、カーソルを 2 番目の の上に置きます/。次に、領域を終了させたい 2 文字以上の文字を入力して Enter キーを押します。 は、b-1Vim にそのパターンを検索し、一致の始まりの 1 文字前 ( -1)にカーソルを移動するように指示しますb

:help search-offset

をマップする必要はありません/t代わりに または他の文字をマップできます。

答え2

インタラクティブにできる場合は、easymotionプラグイン:

d;;fh-> はすべてのテキストをグレー表示し、すべてのh文字を赤でマークしますが、それらを に置き換えてからa,b,c,…、 を押してb2 番目まで削除できますh

この説明はちょっと難解ですが、ユーチューブビデオ

P.S.: 言い忘れましたが、;私のリーダーキーは

答え3

d2fhあなたの例ではそれを実行します。

答え4

いいえ、t1 文字しか受け付けません。 にしますvththd

関連情報