Vimgolf One to Ten をやってみた

by dicekest,

問: One to Ten

Vimgolf のOne to Tenを解いてみた。

スタート(空ファイル)


ゴール

1
2
3
4
5
6
7
8
9
10

解答

12キーストロークでいくつか最短キーが上がっている(2019/09/16) とりあえず1番上の解答について調べてみる

i0<Esc>Y9Pv}g<C-A>ZZ

解説

i0<Esc>

0を書いてノーマルモードに戻る

Y9P

行をコピーし、下の行に9回ペーストする

v}g<C-A>

ヴィジュアルモードで段落を選択し、 g + Ctrl-Aは何をしているのかとvim-jpのリファレンスを調べていたら書いてあった。

ビジュアル選択されたテキスト中の数字またはアルファベットに [count] を加える。複数行がビジュアル選択されている場合、各行は付加された [count] ごとに増やされる (そのため効果的に [count] ごとに増加する配列を作ることができる)。

つまり、こういうテキストを全ての行選択して

0
0
0
0
0
0
0
0
0
0

g + Ctrl-Aすると、それぞれの行にカウントアップしてくれるので

1
2
3
4
5
6
7
8
9
10

となるようだ。

ZZ

保存して終了する。