23
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vimで簡単にインクリメント

Posted at

はじめに

vimでインクリメント、連番を簡単に入力出来たらな。って思った事はありませんか。
私は、IPアドレスを連番で入力している時にふと思いました。
そこで、vimのマクロ機能を使えば出来る事が発覚。
早速やってみました。

目標

192.168.1.1

これだけが入力された状態で、各行にIPアドレスが入り、192.168.1.225までの連番を登録出来るようにしてみます。

マクロの登録

vimは、 q の後にアルファベット1文字で、マクロを記録するモードに入ります。
今回は、aという文字に対して登録してみようと思います。
マクロに登録する内容としては、下記のようにしてみます。

  • 1行をコピーして、次の行に貼り付ける -> yyp
  • 貼り付けた文字列の行末に移動 -> $
  • 数字をインクリメントする -> Ctrl+a

test.gif

マクロを使って、255までを入力してみる

登録したマクロは、@+[アルファベット]で利用可能です。
[アルファベット]の部分はマクロを登録するときに指定した、qの後に押した文字になります。
今回は、qaと入力したので、@aと入力すれば、インクリメントされた番号が次の行に貼り付けられます。

マクロは繰り返して使える

@aと入力すると、登録されたマクロを実行しますが、[数字]@a(例えば、5@a)のようにすると、数字で指定した回数分が連続して実行されます。

目的を果たして見る

さて、では最初に目標としていた、192.168.1.1だけ入力された状態から、192.168.1.225までコピペを実現してみます。

コマンドとしては、192.168.1.1の行で、254@aとすれば良さそうです。

↓は実際に実行してみた結果です。

test2.gif

23
16
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?