はじめに
vimでインクリメント、連番を簡単に入力出来たらな。って思った事はありませんか。
私は、IPアドレスを連番で入力している時にふと思いました。
そこで、vimのマクロ機能を使えば出来る事が発覚。
早速やってみました。
目標
192.168.1.1
これだけが入力された状態で、各行にIPアドレスが入り、192.168.1.225
までの連番を登録出来るようにしてみます。
マクロの登録
vimは、 q
の後にアルファベット1文字で、マクロを記録するモードに入ります。
今回は、a
という文字に対して登録してみようと思います。
マクロに登録する内容としては、下記のようにしてみます。
- 1行をコピーして、次の行に貼り付ける ->
yyp
- 貼り付けた文字列の行末に移動 ->
$
- 数字をインクリメントする ->
Ctrl+a
マクロを使って、255までを入力してみる
登録したマクロは、@+[アルファベット]
で利用可能です。
[アルファベット]
の部分はマクロを登録するときに指定した、q
の後に押した文字になります。
今回は、qa
と入力したので、@a
と入力すれば、インクリメントされた番号が次の行に貼り付けられます。
マクロは繰り返して使える
@a
と入力すると、登録されたマクロを実行しますが、[数字]@a
(例えば、5@a
)のようにすると、数字で指定した回数分が連続して実行されます。
目的を果たして見る
さて、では最初に目標としていた、192.168.1.1
だけ入力された状態から、192.168.1.225
までコピペを実現してみます。
コマンドとしては、192.168.1.1
の行で、254@a
とすれば良さそうです。
↓は実際に実行してみた結果です。