[vim] 上の数値をコピペしてインクリメントする

私がVimを使い始めた理由の1つに「同じ事を簡単に繰り返す事ができる」 という事があります。 こんな物を作成したい時 ```c `gutter:false; hoge[0] = 0x12; hoge[1] = 0x20; hoge[2] = 0x13; hoge[3] = 0x30; hoge[4] = 0x12; hoge[5] = 0x00; hoge[6] = 0x00; ``` 普通のエディタだと、hoge[x]のxを自分でインクリメントしないと行けません。 vimならコマンドを覚えさせてリピートする事ができるので便利です。 (そもそもああいったコードが無駄とか言わないで...) ## 事前準備 .vimrcに以下記載しておきます。 (ヤンクしたもの置き換えるショートカット) ```text `gutter:false; nnoremap <silent> ciy ciw<C-r>0<ESC> ``` ## 実装 以下のようにコピーしておいて ```c `gutter:false; hoge[0] = 0x12; hoge[0] = 0x12; hoge[0] = 0x12; hoge[0] = 0x12; hoge[0] = 0x12; hoge[0] = 0x12; ``` 2番目の数値部分([0]の0の部分)に移動して以下のコマンドを実行します。 ```text `gutter:false; qukiywjciy<C-a>jq ``` <C-a>はControlを押しながらaを押します。 あとは@uを連打すればOKです。 Ctrl+aでカーソル下の数値をインクリメントできるので、上の数字をコピーしてインクリメントしています。

0 件のコメント :

コメントを投稿