(小ネタ)連番を作成する方法


昔は効率よく作成できなかった連番の作成方法です。
手入力で
1
2
3
4
5
...
とやって打ち間違えたり。。
今思いつくものを挙げてみます。
例はほとんどが1から1ずつ増加するパターンですが、ほぼ逆順や間隔を指定できます。

色々な作成方法

色々と言っておきながら、あまり思いつきませんでした。。

Excelやスプレッドシートを使う

一番知っている人が多そうです。
セルに上から
1
2
3
と入力していき、「3」のセルの右下を下方向にドラッグするとセルごとに連番が入力されていきます。

ATOMのSequential Numberプラグインを使う

無理矢理感があり、まずやりませんがとっさに思いついたので。(笑)
Sequential Numberプラグインはインストール済とします。

  1. 新規ファイルを開き振りたい数字の数だけ改行する。
  2. 改行をドラッグしてコマンドパレットから「Split into lines」を実行(もしくはCtrl(Cmd) + Shift + LでもOK)
  3. コマンドパレットから「Sequential Number」を実行
  4. 各行に連番が出力されます。

seqコマンドを使う

手っ取り早くて、一番よく使います。
例のように逆順や間隔指定もさほど難しくありません。

seq 2 -1

2
1
0
-1
seq 0 3 9

0
3
6
9

Vimエディタ上でseqコマンドを使うこともあります。(むしろその方が多い。)
コマンドモードで外部プログラムを呼び出す方法です。

:r!seq 0 3 9

echoコマンドを使う

echoコマンドでも作成できます。
seqコマンドほどシンプルではありませんが、下記のように連続したアルファベットやクォート付きも作成できます。

echo \\n{1..10}

1
2
3
4
5
6
7
8
9
10

echo \\n\'{A..J}\'

'A'
'B'
'C'
'D'
'E'
'F'
'G'
'H'
'I'
'J'

プログラマーらしく(?)プログラムで出力

上のseqコマンドがあるので、やはりあまりやりませんが、
(この方法を使うとすれば、もっと複雑な数列の場合でしょう。)
プログラマーがプログラムで解決しようとする心がけが大切と思っておくことにします。
ここではphpをターミナルで実行させていますが、お好きな言語でどうぞ。

php -r 'for ($i = 1; $i <= 10; $i++) {echo $i . "\n";}'

1
2
3
4
5
6
7
8
9
10

上述のseqコマンドと同じく、PHPのワンライナーもVimエディタの書き込みに使うことができます。
Vimから外部コマンドを呼び出してその標準出力をエディタのカーソル位置に書き込むテクニックは色々と使えます。

:r!php -r 'for ($i = 1; $i <= 10; $i++) {echo $i . "\n";}'

「連番」でググってみると

連番作成のフリーソフトやWeb上で連番を作成できるツールがけっこう転がっていますね。
上記の方法、意外に知られていないかも?