NBこれは、「d3fg」コマンドがどのように機能するかを複製したものではありませんか?投票する前に読んでください!
小さな削除を大きな削除のようにしようとする私の探求で少し行き詰まりになりました。私が持っている問題は、のようなコマンドを再マップする方法を理解できないことd3dです。実際、そもそもそれらがどのように機能するかを理解することも、Vimのヘルプでそれらの言及を見つけることもできません。
d3j簡単です:d
オペレータを3j
モーションに適用します。
3ddまた、簡単dd
です。3の「カウント」でコマンドを実行します。
d3d それは簡単なように見えますが、d
演算子を...に適用しますが、何3d
ですか?それは動きではありません。自分で入力3dした場合、Vimはそれをカウントの後に演算子が続くものとして扱い、それ以上の入力を辛抱強く待ちます。
また、演算子を他の演算子に適用することはできません。ddヘルプでは、2つの演算子のシーケンスとして説明されていません。これは、独立した2キーストロークコマンドです。(cf. dc、何もしません。)
また、2つのキーストロークを必要とするコマンドの場合、カウントの配置が柔軟であるということはないようです:2gjカーソルを2画面行下に移動しますがg2j、最初の2キーを完全に破棄し、カーソルを1行下に移動します。
それでは、どのように機能しますか?これはVimの内部コードの特殊なケースですか?d[count]d
マッピングを作成する方法はありますか?
編集:それはテキストオブジェクトですか?:h text-objects
「テキストオブジェクト選択コマンド」のリストには含まれませんが、「小さなオブジェクトから大きなオブジェクトにグループ化された」削除のリストにはdd が含まれます。そしてd2aw、カーソルの下の単語と次の単語を削除します。一方、c2d何もしません。
*それらについての言及が存在するに違いないと確信していますが、見つけることができません。私が読んだ:help deleting
、:help motion.txt
と試してみました:helpgrep dNd
1-9からのNの全ての値のために。
dd
は、はと同じですd_
。_
カーソルを([count]
-1)行目の最初の非空白に移動しますが、行単位であるため、演算子と組み合わせた場合、行全体で動作します。そのため、2つd
の間にカウントが表示されることは理にかなっています。
d
ものは確認として機能すると思います。ですから、と同じd3<CR>
です。y3y
そしてc3c
助け、VI(1)、NVI(1)、またはPOSIX仕様...それはで同じ動作を行います。また、Vimのいずれかでけれども、私はこの上の任意のドキュメントを見つけることができない...同じように動作vi
し、nvi
ところで。