- Vim Racer ist ein Online-Spiel, bei dem man mit Vim-Bewegungsbefehlen schnell Zielpunkte in einem Text ansteuert und die Befehlsbeherrschung in Form eines Rekordwettbewerbs üben kann
- Jedes Mal, wenn ein Ziel erreicht wird, erscheint das nächste Ziel; mit der Kombination von Vim-Bewegungsbefehlen wie
wund3jabsolviert man ein Rennen mit 12 Zielen - Wenn die Einstellung relative lines aktiviert ist, lässt sich das Bewegen anhand relativer Zeilennummern leichter üben, was in großen Dateien hilft, lange absolute Zeilennummern seltener eingeben zu müssen
- Das Leaderboard lehnt Zeiten unter 1 Sekunde ab, um die Fähigkeit zur manuellen Navigation zu messen, und Namensänderungen sind ebenfalls auf einmal pro Stunde begrenzt
- Man kann die Tastenanschläge der Bestplatzierten und Tipps pro Rennen einsehen, wodurch es über ein bloßes Spiel hinaus auch als Lernmaterial für Vim-Bewegungen genutzt werden kann
Ein Geschwindigkeitsspiel mit Vim-Bewegungsbefehlen
- Das Ziel von Vim Racer ist es, sich so schnell wie möglich zu allen Zielen zu bewegen
- Wenn ein Ziel erreicht wird, erscheint das nächste Ziel
- Ziele werden etwa als
Aangezeigt - Alle Vim-Bewegungsbefehle können verwendet werden, daher hängen schnelle Zeiten stark von der Wahl effizienter Bewegungsbefehle ab
- Um ein Rennen zu starten, klickt man auf reset
- Nach dem Klick wechselt der Browser-Fokus in den Editor, sodass man sofort Vim-Bewegungsbefehle wie
wverwenden kann
- Nach dem Klick wechselt der Browser-Fokus in den Editor, sodass man sofort Vim-Bewegungsbefehle wie
- Auf dem aktuellen Bildschirm werden
Race Level: 12 Targets (Burn Detector),Race Mode: StandardundNavigations: 0/12angezeigt - Feedback wird über die Reddit-Community entgegengenommen
Einstellungen und betriebliche Einschränkungen
- relative lines kann in den Einstellungen über das Zahnrad-Symbol oben links im Editor aktiviert werden
- Das ist nützlich, wenn man Befehle bevorzugt, bei denen vor der Bewegung eine relative Anzahl steht, wie bei
3j - In großen Dateien kann das schneller sein, als
1230ggeinzugeben - Ein Beispiel für eine lokale Einstellung ist, nur in der Cursor-Zeile die absolute Zeilennummer anzuzeigen und sonst relative Zeilennummern zu verwenden
- Das ist nützlich, wenn man Befehle bevorzugt, bei denen vor der Bewegung eine relative Anzahl steht, wie bei
- Spenden werden derzeit zur Finanzierung von Upgrades für den vim-racer-Server und die Datenbank verwendet
- Die aktuelle Datenbank ist DynamoDB
- Für den Start einer kleinen Website ist bei DynamoDB der Free Tier nützlich, allerdings gibt es funktionale Einschränkungen statt Kosteneffizienz
- Das derzeit wichtigste Ziel ist ein Upgrade auf eine SQL-Datenbank; die kleinste Instanz kostet etwa 100 US-Dollar pro Jahr
- Frühere Spenden werden wieder in die wiederkehrenden Einnahmequellen von vim-racer reinvestiert
- Der erste Spender war ThePrimeagen
Leaderboard und Lernen
- Das Leaderboard lehnt Zeiten unter 1 Sekunde ab
- Der Nutzer
howzeigt, dass sogar Zeiten unter 2 Sekunden legitim sein können - Das Spiel soll messen, wie gut Nutzer sich manuell durch den Text navigieren können
- Zeiten von
<20mszeigen zwar Vim-Können, passen aber nicht zur eigentlichen Idee des Spiels - Künftig könnte es neben Zielvarianten auch andere Spieltypen oder capped/uncapped Leaderboards geben
- Derzeit sind die Entwicklungsressourcen begrenzt, daher sollen vorerst nur Punkte im Leaderboard bleiben, die durch reine Navigation erzielt wurden
- Der Nutzer
- Benutzernamen können statt einer vollständigen Kontoerstellung nur einmal pro Stunde geändert werden
- Diese Begrenzung soll verhindern, dass das Leaderboard übermäßig gefüllt wird
- Vim Racer kann auch zum Erlernen von Vim-Bewegungen verwendet werden
- Jeder Renntyp bietet Tipps, um effiziente Wege zu den Zielen zu lernen
- Jeder Leaderboard-Eintrag enthält die Tastenanschläge, die von den Bestplatzierten verwendet wurden
- Nutzer können diese Tastenfolgen analysieren, um neue Vim-Bewegungsbefehle zu lernen und ihre Navigationsfähigkeiten zu verbessern
1 Kommentare
Hacker-News-Kommentare
Habe es mit dem jpeg-Level in 17 Sekunden auf die Bestenliste geschafft, und als kompetitives Spiel hat es wirklich Spaß gemacht.
Ich habe einfach instinktiv gespielt, um ohne Optimierung zur geforderten Position zu kommen, und hatte trotzdem Freude daran. Besonders die Funktion, den Bewegungsablauf von Bestenlisten-Runs anzuzeigen, wirkt auch als Lernmaterial nützlich.
Allerdings gibt es in den oberen Rängen einen 1-Sekunden-Eintrag; das wären weniger als 0,05 Sekunden pro Bewegung, was menschlich kaum möglich wirkt. Sieht nach geskripteter Eingabe aus, und das dürfte in diesem Interface schwer zu verhindern sein. Wenn man statt der verstrichenen Zeit die Anzahl der Tastendrücke wertet, würde nicht die schnellste, sondern die effizienteste Person oben stehen, und Script-Cheating würde weniger Sinn ergeben.
%verwendet wurde. Selbst mit unbeholfenem Spiel bin ich auf 6,5 Sekunden gekommen.Wirklich hervorragend.
Es wäre schön, einen Modus zu haben, der statt Geschwindigkeit die Anzahl der Tastendrücke minimiert. Dann wäre nicht schnelles hjkl-Hämmern der Wettbewerb, sondern eine optimierte Lösung im Vim-Golf-Stil.
Ein kleiner Bug: In der Bestenliste wird das Zeichen
`als „Unsupported“ angezeigt. Das fällt besonders auf, wenn man Duff's device mit Marks folgt.Vermutlich wird eine Allowlist verwendet, also sollte es reichen, es dort hinzuzufügen.
Ein Spiel, bei dem man nicht mehr aufhören kann, sobald man angefangen hat.
:q-Easter-Egg eingebaut werden.Wirklich unterhaltsam. Ich frage mich, ob es noch mehr solcher Vim-Spiele gibt.
Ich wollte Vim schon immer nutzen, bin aber als Nutzer des Evil Mode in Emacs noch nicht schnell.
Die Seite scheint irgendwie kaputt zu sein. Egal, was ich mache, es passiert nichts; ich habe es sowohl in Chrome als auch in Firefox ausprobiert.
Früher verlief der Wechsel reibungslos, aber jetzt muss ich den Cache manuell invalidieren. Es scheint nur bei manchen Deployments aufzutreten.
Wirklich cool. Allerdings ist das Programm gecrasht, nachdem ich in einer späteren Stufe die Zeile gelöscht hatte, die als Ziel vorgesehen war.
Trotzdem danke für den Hinweis; das hilft bei der Priorisierung.
Die Möglichkeit, über die Bestenliste zu sehen, wie andere es gemacht haben, ist sehr nützlich.
Ich würde es gern spielen, aber die Zeilennummern folgen dem Cursor. Sieht nach einem Bug aus; übersehe ich etwas? Ich habe Vim nicht viel benutzt, aber normalerweise kann man sich bewegen, auch wenn man langsam ist.
Ich habe es in Chrome und Firefox ausprobiert.
Durch das Feedback ist diese Arbeit in der Priorität gestiegen.
set rnuFür relative Bewegungen wie
5joder12kist das wirklich praktisch :)Unterhaltsam. Es wäre großartig, wenn eine Anzeige der Tastendrücke dazukäme sowie ein Modus, in dem man nicht schneller sein, sondern die Anzahl der Tastendrücke minimieren muss.
Außerdem wäre es gut, wenn in der Spielbeschreibung klarer erklärt würde, was „target“ ist.
Bei der Anzahl der Tastendrücke bin ich unschlüssig. Ich möchte den Fokus dieses Spiels wirklich auf Geschwindigkeit legen. VimGolf deckt solche Rätsel und Szenarien bereits gut ab, und der Unterschied hier ist die Geschwindigkeit.
Stattdessen möchte ich die Tastendaten analysieren. Zum Beispiel könnte sich herausstellen, dass
wwwschneller ist alsf. Meine ursprüngliche Hypothese war, dass Suchen mitfundFnicht effizienter ist als häufige Bewegungen wiew,e,h,j, aber das scheint bereits widerlegt zu sein. Man sollte es wohl eher so formulieren: „Ein beträchtlicher Teil der Spitzenplätze nutztfundF“, was bedeuten kann, dass diese Leute schnell sind oder dass diese Tasten zumindest kein großer Nachteil sind.Auch wenn das nicht dasselbe ist wie reine Geschwindigkeit, führt es im Vergleich zu anderen Editoren zu mehr Bedienkomfort und ist für das Tippgefühl sehr wichtig.
Ein miserables Spiel, aber eines zeigt es gut: Vim-Navigation ohne Easymotion ist nicht wie ein Rennwagen, sondern wie ein Wettlauf zu Fuß.