なぜYはy $ではなくyyの同義語なのですか?
これには特定の歴史的理由がありますか? 背景 —(質問を既に理解している場合は、この部分をスキップできます。) 中級/上級viユーザーが知っているようにy、 "yank"コマンドは次の移動コマンドで指定されたテキストをヤンク(コピー)します。* ye単語の最後までヤンクし、y0カーソル位置から行頭までヤンクしますy_現在の行全体をy$ヤンクし、カーソル位置から現在の行の最後までヤンクします。 d(削除)コマンドとc(変化する)コマンドが両方同様にこれらの動きのすべてで使用することができます。 ddは、d_現在の行全体の同義語であり、削除します。同様に、現在の行のcc同義語でc_あり、変更します(つまり、すべてのテキストを削除し、行の先頭で挿入モードにします)。** 「yank」コマンドはこの規則に従います。yyのように現在の行全体をヤンクしますy_。 同義語の別のセットがあります:Dは同義語でd$あり、カーソル位置から行末までを削除します。 Cは同義語でc$あり、カーソル位置から行末までテキストを変更し、挿入モードにして新しいテキストを入力します。 しかし、Yある別の同義語yyかy_とヤンクます全体のラインをあなたから期待通りだけでなく、カーソルから行末までCとDパターン。 Vimの下位互換性を維持するためにVimでこのように保持されていることを理解していviます:help Y。 「Y」をカーソルから行末まで(より論理的ですが、Vi互換ではない)動作させたい場合は、「:map Y y $」を使用します。 だから、これはからのホールドオーバーですvi。いいよ しかし、そもそもコマンドがそのように設計されたのはなぜですか?これまでに何か論理はありましたか? *具体的には、レジスタ0にテキストを配置し、名前のないレジスタをレジスタ0に向けます。 **これSは私の質問には関係ありませんが、ccまたはの別の同義語ですc_。