アンダースコアコマンド_が役立つのはなぜですか?


15

_カーソルの下の(COUNT-1)行目の先頭にジャンプするアンダースコアコマンドが、独自のキーを取得する理由については、ちょっと困惑しています。+またはではなく、^いつこれを使用しますか?

回答:


16

良い質問!

モーションとして、あなたは正しい、_特に有用なキーではありません。:h _

                            *_*
_  <underscore>     [count] - 1 lines downward, on the first non-blank
            character |linewise|.

ここでのキーワードは「行単位」です。だから、あなたの目標は、その後、ちょうどカーソルを移動する場合^jおよび+すべての仕事を得る、と多くのポイントがそこにはありません_。しかし、演算子への引数として、_非常に強力です。

多くのダブルキーショートカットは、実際には単なるショートカットです_。例えば、

dd -> d_
cc -> c_
yy -> y_
Y  -> y_

など。これは行単位の動きであるため、基本的にはカーソルの開始位置に関係なく操作対象の行全体を選択しますが、^キャラクターから最初の非空白に移動するだけです。

線の動きとブロックの動きを考えるとき、動きの直前vまたはV直前を押すと想像するのに役立ちます。私は想像するようd^に同等であることをv^d、私は想像するd_に相当しますV_dV^d。もちろん、モーションをオーバーライドして、強制的に行単位または文字単位にすることもできます。ですからdv_、実際にはd^or とまったく同じv^ddVwあり、Vwdwhichはまったく同じd_です。

特に「count-1番目」の行である理由は、1dd(実際にはd1_)1行全体を削除する2dd(実際にはd2_)2行全体を3dd削除する、3行全体を削除する、などです。


1
大丈夫ですが、実際に使用することはありますか? ddより簡単でd_3yjより簡単です4y_
歯磨き

5
@toothrot独自の演算子を作成していて、次のn行を操作したい場合。
DJMcMayhem

5
@Toothrot少しはっきりさせたいと思います。日々のvim編集では、いやそれは特に有用ではありません。私もほとんど使ったことがない。便利な理由は、多くの便利なコマンドの定義だからです。ddより便利かもしれませんd_が、ためですddちょうどマッピングですd_。また、vimscriptでも役立ちます。
DJMcMayhem

9
「モーション」に作用する一部のアクションには、他のショートカットがない場合があります。「gU_」のようなものは、カーソルが行の先頭にない場合でも、現在の行のすべてを大文字にします。
bmb

1
@bmbどうgUUですか?<operator>_使用される実際の例を見つけることは価値があると思います。
Hotschke
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.