Vimgolf Add string initializers to an enumをやってみた

by dicekest,

問: 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

保存して終了する。