Sojiro’s Blog

This is nothing much.

Vimで連番を振る方法

大量のvalueに連番を振りたくなったのでvimの機能を調べて使ってみた。 目標は以下のようにurlのリストをPerlのハッシュ化すること。

1
2
3
4
5
6
7
example_1.com
example_2.com
example_3.com
~
example_254.com
example_255.com
example_256.com
1
2
3
4
5
6
7
8
9
my %urls = (
    1   => 'example_1.com',
    2   => 'example_2.com',
    3   => 'example_3.com',
~
    254 => 'example_254.com',
    255 => 'example_255.com',
    256 => 'example_256.com',
);

使うvimの機能

  • 数字のインクリメント/デクリメント
  • 操作の記録(complex repeat)

①数字のインクリメント/デクリメント

数字のインクリメント

数字にカーソルを合わせて

1
Ctrl + a

数字のデクリメント

数字にカーソルを合わせて

1
Ctrl + x

②操作の記録(complex repeat)

操作の記録は以下の順序で行う

  1. 準備
  2. 一連の操作に名前をつけて記録を開始
  3. 一連の操作を行う
  4. 記録を終了
  5. 記録した操作を繰り返し実行

1. 準備

1
2
3
4
1 => example_1.com
example_2.com
example_3.com
~

最初のキーである1だけ用意しておく。

2. 一連の操作に名前をつけて記録を開始

1
q
1
a

操作を開始する位置(キー1の上)にカーソルを合わせ、q, aの順でキーを押すと、’a’という名前で操作が記録される。

操作の名前は’a’の大文字、小文字のアルファベット、もしくは数字から1字を選んで付けることができる。

3. 一連の操作を行う

1
v (visual mode)
1
llllll (=> までを選択)
1
y (yank)
1
j P (1行下がってpaste)
1
0 (行頭へカーソルを移動)
1
Ctrl + a (インクリメント)
1
0 (行頭へカーソルを移動)

4. 記録を終了

1
q

qを押して記録を終了

5. 記録した操作を繰り返し実行

1
254 (繰り返す回数)
1
@a ('a'と名付けた操作を指定)

ここまで完了時点で以下のようになる。

1
2
3
4
5
6
7
1   => example_1.com
2   => example_2.com
3   => example_3.com
~
254 => example_254.com
255 => example_255.com
256 => example_256.com

Perlの記法に合わせて整形

vimの矩形選択( Ctrl + v )などをつかって正しいハッシュの文法に整形する

Comments