Vim Racerリリース
(vim-racer.com)- Vim Racerは、Vimの移動コマンドでテキスト内の目標地点を素早く探し出すオンラインゲームで、コマンドの習熟度を記録競争の形で練習できる
- 目標に到達するたびに次のターゲットが現れ、
w、3jのようなVim移動コマンドを組み合わせて12個のターゲットを巡るレースを行う - relative lines設定をオンにすると相対行番号ベースの移動を練習しやすく、大きなファイルで長い絶対行番号の入力を減らすのに役立つ
- リーダーボードは手動での探索能力を測るため、1秒未満の記録を拒否し、ユーザー名の変更も1時間に1回に制限している
- 高得点者のキー入力やレースごとのヒントを見ることができ、単なるゲームを超えてVim移動の学習資料としても活用できる
Vim移動コマンドで競うスピードゲーム
- Vim Racerの目的は、すべてのターゲットへできるだけ速く移動すること
- ターゲットに到達すると次のターゲットが現れる
- ターゲットは
Aのように表示される - すべてのVim移動コマンドを使用できるため、速い記録は効率的な移動コマンドの選択に大きく左右される
- レースを開始するにはresetをクリックする
- クリック後、ブラウザのフォーカスがエディタへ移動し、すぐに
wなどのVim移動コマンドを使える
- クリック後、ブラウザのフォーカスがエディタへ移動し、すぐに
- 現在の画面には
Race Level: 12 Targets (Burn Detector)、Race Mode: Standard、Navigations: 0/12が表示されている - フィードバックはRedditコミュニティを通じて受け付けている
設定と運用上の制約
- relative linesは、エディタ左上の歯車アイコンの設定からオンにできる
3jのようにコマンドの前に相対移動数を付ける方式を好む場合に便利- 大きなファイルでは
1230ggを入力するより速い場合がある - ローカル設定の例は、カーソル行だけ絶対行番号を表示し、それ以外は相対行番号を使う方式
- 寄付金は現在、vim-racerサーバーとデータベースのアップグレード資金に使われている
- 現在のデータベースはDynamoDB
- DynamoDBは小規模サイトを始めるには無料枠が有用だが、コスト効率の代わりに機能面の制約がある
- 現在の主な目標はSQLデータベースへアップグレードすることで、最小インスタンスの費用は年間約100ドル
- 以前の寄付金はvim-racerの継続的な収益源へ再投資されている
- 最初の寄付者はThePrimeagen
リーダーボードと学習での活用
- リーダーボードは1秒未満の記録を拒否する
- ユーザー
howは、2秒未満の記録も正当であり得ることを示している - このゲームは、ユーザーがテキストを手動でどれだけうまく探索できるかを測ろうとしている
<20msの記録はVim活用能力を示すものではあるが、ゲームの趣旨には合わない- 今後はターゲットのバリエーションだけでなく、別のゲームタイプやcapped/uncappedリーダーボードが登場する可能性がある
- 現在は開発リソースが限られているため、純粋な探索で得たスコアをリーダーボードに残す方針
- ユーザー
- ユーザー名はアカウントを作成する代わりに、1時間に1回だけ変更できる
- この制限は、リーダーボードが過度に埋まるのを防ぐためのもの
- Vim RacerはVim移動の学習にも使用できる
- 各レースタイプは、ターゲットへ効率的に移動する経路を学ぶためのヒントを提供する
- 各リーダーボード項目には、高得点者が使用したキー入力が含まれる
- ユーザーはそのキーシーケンスを分析して新しいVim移動コマンドを学び、探索スキルを改善できる
1件のコメント
Hacker News のコメント
jpeg レベルを 17秒でクリアしてランキングに名前を載せた。対戦型ゲームとして本当に楽しかった
最適化せず、指定された位置へ行くために本能的に動くようなプレイでも楽しかったし、特にランキング上のプレイの移動過程を見せる機能は学習教材としても有用そう
ただ、上位に1秒の記録があるが、1移動あたり0.05秒未満なので人間には可能に見えない。スクリプト入力を使っているようだし、このインターフェースでは防ぐのが難しそうなので、経過時間ではなくキー入力数で順位を付ければ、最速の人ではなく最も効率的な人が上位に来て、スクリプトによるチートの意味も薄れると思う
%を使ったのか気になる。自分は下手にやっても 6.5秒まで縮められた本当に素晴らしい
速度の代わりにキー入力数を最小化するモードがあるとよさそう。そうすれば、速い hjkl 連打ではなく、Vim ゴルフ式の最適解が競争対象になる
簡単なバグとして、ランキングで文字
`が「Unsupported」と表示される。マークを使う Duff's device を追うときに特に目立つおそらく許可リストベースで処理しているので、そこに追加すればよさそう
始めると止められないゲーム
:qのイースターエッグを入れるべきかもしれない本当に面白い。こういう Vim ゲームをほかに知っているか気になる
ずっと Vim を使いたいと思っていたが、Emacs evil mode ユーザーなので、まだ速くはない
サイトがどこか壊れているようだ。何をしても何の反応もなく、Chrome と Firefox の両方で試した
以前はスムーズに切り替わっていたが、今はキャッシュを手動で無効化する必要がある。一部のデプロイでだけ発生しているようだ
本当にクール。ただ、プログラムが後の段階で目標にする行を削除したらクラッシュした
それでも知らせてくれて、優先順位を決める助けになった
ランキングを通じて他の人がどうやったのか見られる機能がとても有用
プレイしてみたいのだが、行番号がカーソルについて回る。バグのように見えるけれど、何か見落としているのだろうか? Vim をたくさん使ったことがあるわけではないが、普通は遅くても移動はできる
Chrome と Firefox で試した
フィードバックのおかげで、この作業の優先度が上がった
set rnu5jや12kのような相対移動に本当に便利 :)面白い。キー入力数の表示と、より速く行く代わりにキー入力数を最小化しなければならないモードが追加されると素晴らしそう
ゲーム説明で「target」が何なのかも、もっと明確にしてくれるとよい
キー入力数は悩ましい。このゲームの焦点を本当に速度に置きたいからだ。VimGolf はそうしたパズルやシナリオをすでにうまく扱っていて、ここでの差別化点は速度だ
代わりにキー入力データを分析してみたい。たとえば
wwwがfより速いという結果が出るかもしれない。最初の仮説は、fとFで検索するのはw、e、h、jのような一般的な移動より効率的ではない、というものだったが、すでに間違っているように見える。ただし「上位陣のかなりの数がfとFを使っている」程度の表現にすべきだろうし、それは彼らが速い、または少なくともそれらのキーが大きな不利ではない、という意味かもしれないこれは純粋な速度と同じではないとしても、他のエディタと比べたときの使い心地につながり、タイピング体験には非常に重要だ
ひどいゲームだが、ひとつのことはよく示している。Easymotion なしの Vim 移動は、レーシングカーではなく徒歩でレースをしているようなものだ