Vimアドベントカレンダー2023の12/18の記事です。
昨日の記事は以下の通りでした
- ryoppippiさんによる「Vimで人生が豊かになった話」(2023/12/18 22:25時点で未投稿)
- atusyによる「Vimで無名レジスタでchange/delete/yankした時に、イニシャルに相当するレジスタにも値を入れる」
Vimのモーションのinclusive/exclusive、なかなか意識する場面が少ないですね。
たとえば、単語の区切りのスペースの上でdb
すると、スペースが消えずに、単語の間のスペースが2つになってしまいます。
これはb
がexclusive motionなためです(:h b)。
難しい……。
hoge fuga piyo
↑ここでdbすると
hoge piyo
になる
d
やc
を実行するとOperator待機モードという、操作範囲の指定を待つモードに入るわけですが、このモード用にマッピングされているv
(:h o_v)を使うと、文字単位のexclusive motionとinclusive motionを相互変換できます。
つまり、さっきの例でdvb
すると、inclusiveになってスペースが1つになる……!
hoge fuga piyo
↑ここでdvbすると
hoge piyo
になる
今回のケースくらいなら、dbx
やxdb
という手もあります。
hoge fuga piyo
↑ここでdbして
hoge piyo
↑ここにカーソルがくるのでxすると
hoge piyo
しかし、たとえば行末にカーソルがあるような状況でfuga piyo
をyankしたい時など、yv2b
やyvFf
が大活躍することでしょう。
hoge fuga piyo
↑ここでyvFf
ENJOY!