最近vimgolfやってる
最近はだいぶvimにも慣れてきて、下手にIDEを使うよりもvimを使う方が楽に感じるようになってきた。 ところが、友人の扱うvim技術を見ていると、どうやら、自分のvim使いはかなりよろしくないことがわかった。 そこで、一度しっかりと基本的なコマンドを覚えなおして、vimのプラグインもちゃんと選択して、場合によってはvim scriptぐらいかけるようになりたいと思った。
その取っ掛かりとして、vimgolfをやってみようと思う。
vimgolf
vimgolfとは、テキストが提供されてそれを目的の状態に修正する、そのときのキーストロークの長さをより短くする競技のようなものである。 例えば...
- One number per line - ----------------------- 2,3,5,7, 11,13,17, 19,23,29,
というテキストを提供されて
2 3 5 7 11 13 17 19 23 29
に修正するといったような具合である。
わかったこと
vimgolfでは、自分の提出したキーストロークよりも少し少ない数の提出者のキーストロークをみることができるので、それと自分のを見比べた。 結果、ほぼ、すべての課題であまり使ったこと無いコマンドが存在していた。
コマンド | 意味 |
---|---|
c | 選択されている文字を削除してInsertModeに移行 |
r | 選択されている文字を次に入力する文字に置換する |
f | fの次に入力する文字が次に出現する箇所にカーソルを移動 |
q | 指定したキーストロークを登録し呼び出すことができる(マクロ) |
. | 直前に実行したコマンドを再実行 |
V | 行全体を選択するVisualModeに移行 |
いくつか使ってなかった重要なコマンドを上げてみた。特に、qやc、fはかなり使われていた。実際、文字を新しく入力するよりも、修正することが多いので、削除して入力したり、似たような構造がいくつかあるような場合になマクロを組むと、一気に改善する場合が多かった。
逆に、修正という意味で利用していたvim sed(:%s)が、実際に使おうとすると、文字をすべて入力しないといけなくなるため、かなりキーストロークが伸びてしまい、vimgolfだとあんまり良い手段ではなかった、マクロで組んだほうがよかったりする。
これだけでも、かなり、vim使いが改善してきたように感じるので、これらのコマンドに慣れていきたい。