VimGolf 解説 Space out the alphabet

More than 1 year has passed since last update.

https://www.vimgolf.com/

解説する問題はこれ: https://www.vimgolf.com/challenges/56fb2e75ccffcc0009026473

興味ある方は是非、下の解説を見ずに挑戦してみてください。


start

abcde

fghij
klmno
pqrst
uvwxyz


goal

a   b   c   d   e

f g h i j
k l m n o
p q r s t
u v w x y z


以下解説



解答(現状最短解)

15 ストローク

<:%s/./ &/g<CR>.ZZ


解説

この15文字に詰まっているテクニックを解説する。


:%s/./ &/g

:s 置換: [range]s[ubstitute]/{pattern}/{string}/[flags] [count]

* %: すべての行

* .: 任意の一文字

* &: ヒットした pattern 全部 \0 と同じ

* g: 行内すべて

この時点

a b c d e

f g h i j
k l m n o
p q r s t
u v w x y z


<:%s

<{motion} : {motion} 行を 'shiftwidth' 1個分左にずらす。

<:%: すべての行に command line mode 実行し、最後に対象行を 1個分左にずらす。

ここがポイントで <{motion} を使っているためこの後 command line mode の実行を single-repeat できる


.

single-repeat する。前述のとおり。


ZZ

保存して終了。


終わり

他の問題を解説したものも紹介しておきます。

https://qiita.com/elzup/items/5b6992d21408ba35a3b4