いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

プログラミング時に便利なvimの選択モーション (i{, i(, i[, i", it)

f:id:gsf_zero1:20211217140202g:plain

概要

よく忘れるのでここにメモメモ。。。知っているとちょっと楽できます。

プログラミングしてる時って以下のような動きをすることが多いです。

  • 関数の中身を消したいor選択したい
  • 関数の引数指定してる部分を消したいor選択したい
  • 配列の初期化している部分を消したいor選択したい
  • 文字列の中身を消したいor選択したい
  • タグの中身を消したいor選択したい

普通に dd とか dw して作業しても何の問題もないですが

こんなときに vim だと楽にできるモーションがあったりします。

知らない人から見ると一瞬で中身が消えたりカーソルが飛んでくれるのでvimに興味持ってもらえる確率が上がるかもしれませんw

関数の中身を消したいor選択したい ( i{ )

使うモーションは i{ or i} です。inner { block って覚えておけば分かりやすいです。

文字通り、今カーソルがいる {} のブロックを選択するモーションとなります。

これにオペレーションをつけて操作します。

例えば、di{ だと今いるブロックの中身が削除されます。

ci{ だと今いるブロックの中身が消えて、そのまま挿入モードになります。

vi{ だと今いるブロックの中身が選択されます。

下記は、今カーソルが9行目の先頭にいます。

f:id:gsf_zero1:20220209112036p:plain

この状態で di{ とすると

f:id:gsf_zero1:20220209112105p:plain

となります。

関数の引数指定してる部分を消したいor選択したい ( i( )

使うモーションは i( or i) です。inner ( block って覚えておけば分かりやすいです。

文字通り、今カーソルがいる () のブロックを選択するモーションとなります。

これにオペレーションをつけて操作します。

例えば、di( だと今いるブロックの中身が削除されます。

ci( だと今いるブロックの中身が消えて、そのまま挿入モードになります。

vi( だと今いるブロックの中身が選択されます。

下記は、今カーソルが7行目の先頭にいます。

f:id:gsf_zero1:20220209112536p:plain

この状態で di( とすると

f:id:gsf_zero1:20220209112604p:plain

となります。

配列の初期化している部分を消したいor選択したい ( i[ )

使うモーションは i[ or i] です。inner [ block って覚えておけば分かりやすいです。

文字通り、今カーソルがいる [] のブロックを選択するモーションとなります。

これにオペレーションをつけて操作します。

例えば、di[ だと今いるブロックの中身が削除されます。

ci[ だと今いるブロックの中身が消えて、そのまま挿入モードになります。

vi[ だと今いるブロックの中身が選択されます。

下記は、今カーソルが3行目の先頭にいます。

f:id:gsf_zero1:20220209113156p:plain

この状態で di[ とすると

f:id:gsf_zero1:20220209113224p:plain

となります。

文字列の中身を消したいor選択したい ( i" )

使うモーションは i" です。inner strings って覚えておけば分かりやすいです。

文字通り、今カーソルがいる 文字列 の中身を選択するモーションとなります。

これにオペレーションをつけて操作します。

例えば、di" だと今いる文字列の中身が削除されます。

ci" だと今いる文字列の中身が消えて、そのまま挿入モードになります。

vi" だと今いる文字列の中身が選択されます。

下記は、今カーソルが15行目のダブルクォートの部分にいます。

f:id:gsf_zero1:20220209113623p:plain

この状態で di" とすると

f:id:gsf_zero1:20220209113651p:plain

こうなります。

タグの中身を消したいor選択したい ( it )

使うモーションは it です。inner tag block って覚えておけば分かりやすいです。

文字通り、今カーソルがいる タグ の中身を選択するモーションとなります。

これにオペレーションをつけて操作します。

例えば、dit だと今いるタグの中身が削除されます。

cit だと今いるタグの中身が消えて、そのまま挿入モードになります。

vit だと今いるタグの中身が選択されます。

下記は、今カーソルが9行目の先頭にいます。

f:id:gsf_zero1:20220209114144p:plain

この状態で dit とすると

f:id:gsf_zero1:20220209114200p:plain

となります。

参考情報


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com