Vimgolf Add string initializers to an enumをやってみた
問: Add string initializers to an enum
Vimgolfの以下の問題を解いてみたのでvimのキー操作について残しておく。
スタート
const enum TestkitType {
vanilla,
unidriver,
protractor,
puppeteer,
unknown,
}
ゴール
const enum TestkitType {
vanilla = 'VANILLA',
unidriver = 'UNIDRIVER',
protractor = 'PROTRACTOR',
puppeteer = 'PUPPETEER',
unknown = 'UNKNOWN',
}
解答
21キーストロークで現在最短(2019/09/15)
qq+ea = '<C-P>'<Esc>vbUq5@qZZ
解説
qq
q{0-9a-zA-Z"}
タイプしたキーをマクロとして登録して記録する。 qでレコードを開始して次に押したキーに対してマクロを登録する、マクロの終了はqで行い今回はqキーに対してマクロを登録する。
+
次の行の最初の文字にカーソルを移動する
e
単語の最後の文字にカーソルを移動する
a = '<C-P>'<Esc>
= 'vanilla'
を入力してノーマルモードに戻る
<C-P>
でvanillaをキーワード補完で入力している。
vbU
ヴィジュアルモードでvanillaを選択して大文字に切り替える
'vanilla'
-> 'VANILLA'
ヴィジュアルモードのUで大文字に切り替え、uで小文字に切り替える
q5@q
ここまでの操作をマクロに保存し、qに登録されたマクロを5回繰り返す。
マクロの実行は @q
で行う。
また、 :reg
で登録されているマクロを確認することができる
:reg
--- レジスタ ---
"q +ea = '^P'^[vbU
ZZ
保存して終了する。