VimのOperator待機モードでexclusive motionをinclusiveに使う

by
カテゴリ:

Vimアドベントカレンダー2023の12/18の記事です。
昨日の記事は以下の通りでした

Vimのモーションのinclusive/exclusive、なかなか意識する場面が少ないですね。

たとえば、単語の区切りのスペースの上でdbすると、スペースが消えずに、単語の間のスペースが2つになってしまいます。
これはbがexclusive motionなためです(:h b)。
難しい……。

hoge fuga piyo
         ↑ここでdbすると
hoge  piyo
になる

dcを実行するとOperator待機モードという、操作範囲の指定を待つモードに入るわけですが、このモード用にマッピングされているv:h o_v)を使うと、文字単位のexclusive motionとinclusive motionを相互変換できます。

つまり、さっきの例でdvbすると、inclusiveになってスペースが1つになる……!

hoge fuga piyo
         ↑ここでdvbすると
hoge piyo
になる

今回のケースくらいなら、dbxxdbという手もあります。

hoge fuga piyo
         ↑ここでdbして
hoge  piyo
     ↑ここにカーソルがくるのでxすると
hoge piyo

しかし、たとえば行末にカーソルがあるような状況でfuga piyoをyankしたい時など、yv2byvFfが大活躍することでしょう。

hoge fuga piyo
             ↑ここでyvFf

ENJOY!