問: 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
保存して終了する。