2 puan yazan GN⁺ 2024-08-27 | 1 yorum | WhatsApp'ta paylaş
  • Vim Racer, Vim hareket komutlarıyla metindeki hedef noktalara hızlıca ulaşmayı amaçlayan çevrimiçi bir oyun; komut hâkimiyetini rekor yarışı biçiminde çalışmayı sağlıyor
  • Her hedefe ulaşıldığında sonraki hedef beliriyor; w, 3j gibi Vim hareket komutlarını birleştirerek 12 hedeflik bir yarış tamamlanıyor
  • relative lines ayarı açıldığında göreli satır numarasına dayalı hareketleri çalışmak kolaylaşıyor; bu da büyük dosyalarda uzun mutlak satır numaraları girmeyi azaltmaya yardımcı oluyor
  • Liderlik tablosu, manuel gezinme becerisini ölçmek için 1 saniyenin altındaki kayıtları reddediyor; kullanıcı adı değiştirme de saatte bir kezle sınırlandırılıyor
  • Yüksek puan alanların tuş girişleri ve yarışa özel ipuçları görülebildiğinden, basit bir oyunun ötesinde Vim hareketlerini öğrenme kaynağı olarak da kullanılabiliyor

Vim hareket komutlarıyla yarışılan hız oyunu

  • Vim Racer’ın amacı tüm hedeflere mümkün olduğunca hızlı gitmek
    • Bir hedefe ulaşıldığında sonraki hedef beliriyor
    • Hedefler A gibi gösteriliyor
    • Tüm Vim hareket komutları kullanılabildiği için hızlı dereceler büyük ölçüde verimli hareket komutlarını seçmeye bağlı
  • Yarışı başlatmak için reset’e tıklanıyor
    • Tıklamadan sonra tarayıcı odağı editöre geçiyor ve hemen w gibi Vim hareket komutları kullanılabiliyor
  • Mevcut ekranda Race Level: 12 Targets (Burn Detector), Race Mode: Standard, Navigations: 0/12 gösteriliyor
  • Geri bildirimler Reddit topluluğu üzerinden alınıyor

Ayarlar ve işletim kısıtları

  • relative lines, editörün sol üstündeki dişli simgesi ayarlarından açılabiliyor
    • 3j gibi komutun önüne göreli hareket sayısı ekleme yöntemini tercih edenler için kullanışlı
    • Büyük dosyalarda 1230gg yazmaktan daha hızlı olabilir
    • Yerel ayar örneği, yalnızca imlecin bulunduğu satırda mutlak satır numarasını, diğerlerinde ise göreli satır numaralarını göstermeye dayanıyor
  • Bağışlar şu anda vim-racer sunucusu ve veritabanı yükseltme fonu için kullanılıyor
    • Mevcut veritabanı DynamoDB
    • DynamoDB’nin ücretsiz katmanı küçük bir siteyi başlatmak için kullanışlı olsa da maliyet verimliliği yerine işlevsel kısıtları var
    • Şu anki ana hedef SQL veritabanına yükseltmek; en küçük instance’ın maliyeti yılda yaklaşık 100 dolar
    • Önceki bağışlar vim-racer’ın yinelenen gelir kaynaklarına yeniden yatırılıyor
    • İlk bağışçı ThePrimeagen

Liderlik tablosu ve öğrenme amaçlı kullanım

  • Liderlik tablosu 1 saniyenin altındaki kayıtları reddediyor
    • how kullanıcısı, 2 saniyenin altındaki kayıtların da meşru olabileceğini gösteriyor
    • Oyun, kullanıcının metin içinde manuel olarak ne kadar iyi gezindiğini ölçmeyi amaçlıyor
    • <20ms kayıtlar Vim kullanma becerisini gösterse de oyunun amacıyla uyuşmuyor
    • Gelecekte hedef varyasyonlarının yanı sıra farklı oyun türleri veya capped/uncapped liderlik tabloları ortaya çıkabilir
    • Şimdilik geliştirme kaynakları sınırlı olduğundan, saf gezinmeyle elde edilen puanların liderlik tablosunda kalması hedefleniyor
  • Kullanıcı adı, tam hesap oluşturma yerine yalnızca saatte bir kez değiştirilebiliyor
    • Bu kısıtlama, liderlik tablosunun aşırı dolmasını önlemek için var
  • Vim Racer, Vim hareketlerini öğrenmek için de kullanılabiliyor
    • Her yarış türü, hedeflere verimli biçimde gitmenin yollarını öğrenmeye yönelik ipuçları sunuyor
    • Her liderlik tablosu kaydında, yüksek puan alan kullanıcının kullandığı tuş girişleri yer alıyor
    • Kullanıcılar bu tuş dizilerini analiz ederek yeni Vim hareket komutları öğrenebilir ve gezinme becerilerini geliştirebilir

1 yorum

 
GN⁺ 2024-08-27
Hacker News yorumları
  • jpeg seviyesinde 17 saniye ile liderlik tablosuna adımı yazdırdım; rekabetçi bir oyun olarak gerçekten eğlenceliydi
    Hiç optimizasyon yapmadan, istenen konuma gitmek için içgüdüsel hareket ederek oynadım ama yine de keyifliydi; özellikle liderlik tablosundaki oynanışın hareket sürecini gösteren özellik öğrenme materyali olarak da faydalı görünüyor
    Ancak üst sıralarda 1 saniyelik bir kayıt var; hareket başına 0,05 saniyenin altında olduğu için insani olarak mümkün görünmüyor. Script girdisi kullanıyor gibi ve bu arayüzde bunu engellemek zor olacaktır; bu yüzden sıralama geçen süreye göre değil de tuş basma sayısına göre yapılırsa en hızlı kişi değil en verimli kişi yukarı çıkar, script ile hile yapmanın anlamı da azalır gibi

    • O konuma ulaşmak için en kısa komut kombinasyonunu bir ölçüde aramak mümkün
    • % kullanıp kullanmadığını merak ediyorum. Ben beceriksizce yapmama rağmen 6,5 saniyeye kadar indim
    • VimGolf bunu o şekilde yapıyor
  • Gerçekten harika
    Hız yerine tuş basma sayısını en aza indirmeye yönelik bir mod olsa güzel olurdu. O zaman hızlı hjkl spam’i değil, Vim golf tarzı en iyi çözüm rekabet konusu olur
    Basit bir hata olarak, liderlik tablosunda ` karakteri “Unsupported” olarak görünüyor. Mark kullanan Duff's device’ı izlerken özellikle göze çarpıyor

    • Büyük keşif, teşekkürler. Neyin eksik olduğundan emin değildim
      Muhtemelen izin listesi tabanlı işliyorum; oraya eklemek yeterli olacaktır
  • Başlayınca bırakamadığınız bir oyun

    • Vim’den çıkamadığınız için mi? :-)
    • Bir gün :q easter egg’i eklemem gerekebilir
  • Gerçekten eğlenceli. Buna benzer başka Vim oyunları bilen var mı merak ediyorum
    Hep Vim kullanmak istemiştim ama Emacs evil mode kullanıcısı olduğum için henüz hızlı değilim

  • Site bir yerlerde bozulmuş gibi. Ne yaparsam yapayım hiçbir tepki yok; hem Chrome hem Firefox’ta denedim

    • Vim’le ilk tanıştığımda da böyle hissettirmişti, belki de gerçekçi bir uygulamadır
    • Üzgünüm. Dağıtım pipeline’ı tarafında bir sorun var gibi
      Eskiden sorunsuz geçiş yapardı, şimdi cache’i elle geçersiz kılmam gerekiyor. Sanki yalnızca bazı dağıtımlarda oluyor
    • Aynı sorunu yaşıyorum. Chrome’da CPU’yu da epey kullanıyor ama hiçbir şey olmuyor; hangi tuşa basarsam basayım tepki yok
  • Gerçekten çok iyi. Ancak programın ileriki aşamalarda hedefleyeceği satırı sildiğimde çöktü

    • Düzeltmesi zor bir hataydı. Ayara göre silmek imkânsız olmalı, ama VIM key binding kütüphanesi bunu ezip geçiyor gibi
      Yine de haber verdiğin için önceliklendirmeye yardımcı oldu
  • Liderlik tablosu üzerinden başkalarının nasıl yaptığını görebilme özelliği çok faydalı

  • Oynamak istiyorum ama satır numarası imleci takip ediyor. Hata gibi görünüyor; acaba bir şeyi mi kaçırıyorum? Vim’i çok kullanmış değilim ama normalde yavaş da olsa hareket edebilirim
    Chrome ve Firefox’ta denedim

    • Bu, Vim’de göreli satır numaraları denen bir seçenek
    • Artık bu ayarı yapılandırılabilir yaptım ve varsayılanı normal Vim satır numaralarına çevirdim
      Geri bildirim sayesinde bu işin önceliği yükseldi
    • Yerel Vim’de şöyle deneyebilirsin:
      set rnu
      5j veya 12k gibi göreli hareketler için gerçekten kullanışlı :)
  • Eğlenceli. Tuş basma sayısı göstergesi ve daha hızlı gitmek yerine tuş basma sayısını en aza indirmenin gerektiği bir mod eklenirse harika olur
    Oyun açıklamasında “target”ın ne olduğu da daha net anlatılsa iyi olur

    • İyi nokta. Sonraki sürüme daha iyi bir açıklama koyacağım
      Tuş basma sayısı konusunda kararsızım. Çünkü bu oyunun odağını gerçekten hız üzerinde tutmak istiyorum. VimGolf bu tür bulmaca ve senaryoları zaten iyi ele alıyor; buradaki fark hız
      Bunun yerine tuş basma verilerini analiz etmek istiyorum. Örneğin www’nin f’ten daha hızlı olduğu sonucu çıkabilir. İlk hipotezim, f ve F ile aramanın w, e, h, j gibi yaygın hareketlerden daha verimli olmadığıydı; ama şimdiden yanlış görünüyor. Yine de “üst sıralardakilerin önemli bir kısmı f ve F kullanıyor” gibi ifade etmek gerekir; bu da onların hızlı olduğu veya en azından bu tuşların büyük bir dezavantaj olmadığı anlamına gelebilir
    • Rekabet unsuru olarak tuş basma sayısını en aza indirmeyi mutlaka eklemenizi isterim. Vim’i çekici kılan şey hızın yanı sıra bir yere gitmek veya bir şey yapmak için gereken tuş girişlerini azaltması
      Bu saf hızla aynı şey olmasa da, diğer editörlerle karşılaştırıldığında kullanım rahatlığına dönüşüyor ve yazma deneyimi için çok önemli
  • Berbat bir oyun ama bir şeyi iyi gösteriyor: Easymotion’sız Vim hareketi, yarış arabasıyla değil yürüyerek yarışmaya benziyor