Gönderen Konu: Vim öğrenme oyunu  (Okunma sayısı 1018 defa)

Çevrimdışı İhsan Cemil Çiçek

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 268
  • Kafayı yazılımla bozmuş otokoncu
Vim öğrenme oyunu
« : Ekim 03, 2019, 02:28:53 ÖS »
Vim eskilerden beri kullanılan ve bir çok kişi tarafından sevilen bir text editor. Özellikle linux dağıtımlarından birisini kullanırken elinize hiçbir zaman fareye götürmeden kodunuzu yazıp, çalıştırıp, sonuçlarınızı hızlı bir şekilde ulaşmanızı sağlıyor.

Bir çok kısayol tuşu ve tuş kombinasyonu ile normalden çok daha hızlı kod geliştirebilir hale gelebilirsiniz. Tuş kombinasyonunu öğrenmek başta zor gelebilir. Bunun için de şöyle güzel bir oyun buldum. Oyunu oynarken çıkan karakterleri okursanız, çok hızlı bir şekilde Vim'e ısınabilirsiniz.

Emacs için de ders gibi şeyler var. Vim'deki gibi bir oyun bulamadım. Bulabilen var mı?
« Son Düzenleme: Ekim 03, 2019, 05:21:59 ÖS Gönderen: İhsan Cemil Çiçek »
İmza() // recursive

Çevrimdışı Furkan Kurt

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 245
  • Mahmudov
Ynt: Vim öğrenme oyunu
« Yanıtla #1 : Ekim 03, 2019, 02:29:20 ÖS »
Yok.

Çevrimdışı Celaleddin Hidayetoğlu

  • OTOKON Üyesi
  • *
  • İleti: 1275
Ynt: Vim öğrenme oyunu
« Yanıtla #2 : Ekim 04, 2019, 02:21:01 ÖS »
Editör savaşlarında vim taraftarları tarafından Emacs'cilere yöneltilen şöyle bir söz vardır: "Emacs harika bir işletim sistemidir, tek eksiği güzel bir metin editörü."

Yaklaşık dört yıldır vim, bir buçuk yıldır da dolaylı olarak Emacs kullanıyorum.

vim, öğrenmeye başladığımdan beri beni hep heyecanlandırdı, hala da heyecanlandırır. vim ile metin düzenlemek bana her zaman keyif verir. Öyle ki bu keyif bazen içeriğin önüne geçer ve yazmamı engelleyecek hale gelir. Bir şeyler yazarken bir anda onu manipüle etmeye kendimi kaptırıp yazdığım konunun bağlamından kopar tamamen metin düzenleme diyarına geçerim. Kelimeler ve cümleler anlamını kaybeder, paragraflar harf bloklarına dönüşürler. Artık sadece vim ustalıklarımı üstünde uygulayabileceğim nesneler olmuşlardır. vim'in metin düzenlemeye yaklaşımının en olumsuz yanı bu bence, zaman zaman bu tarz bir procrastination'a mahal verebiliyor.

Şu an birincil yazma ortamım olarak Emacs kullanıyorum, ama hiçbir zaman Emacs kısayollarını öğrenmedim. Emacs'in "harika bir işletim sistemi" olmasının bir sonucu olarak görüyorum bunu. Bazı günümüz işletim sistemleri gibi katı bir yapıya sahip değil, neredeyse dibine kadar programlanabilir bir ortam. Biraz Emacs Lisp (Emacs'in büyük bir kısmının gerçeklendiği programlama dili, bir Lisp lehçesi) öğrenerek bile geliştirme ve metin düzenleme ortamınızı çılgınca özelleştirebilirsiniz. Tabii bu özelleştirme atılımları sırasında her an Emacs kaynak kodları arasında bir şeylerle boğuşurken de bulabilirsiniz kendinizi.

Evet, Emacs'i dolaylı olarak kullandığımı söylememin sebebi varsayılan kısayollarını hiçbir zaman öğrenmemiş olmam. Bir önceki paragrafta bahsettiğim özelleştirme fırsatı zenginliği tabii ki Emacs'in kullanıcı topluluğunu da etkiliyor, bu topluluğun kültürünün temel yapıtaşlarından biri oluyor. Topluluklar kendi tecrübeleri doğrultusunda özelleştirdikleri Emacs dağıtımları oluşturuyorlar. Ben Spacemacs adlı bir dağıtım kullanıyorum, bu dağıtımın temel söylemi şu: "The best editor is neither Emacs nor Vim, it's Emacs and Vim!" Emacs'in (benim pek mantıklı bulmadığım (yeterince üstüne düşünmemiş olabilirim :D)) varsayılan kısayollarının yanında (son derece mantıklı) vim kısayolları ve başka (son derece mantıklı) erişim şekilleri ortaya koyan, bir araya getiren bir dağıtım.

Bu derin özelleştirme kültürü yanında güzel bir sonuç da getiriyor: Keşfetme olanakları. Editörün yapabileceklerini, bunları nasıl yapacağını yine editörü kullanarak keşfedebilmek için araçlar. Erişilebilir dokümantasyon, interaktif kısayol keşif imkanları, fonksiyonalitenin adı üstünden fonksiyonaliteye ulaşmak gibi şeyler.

vim topluluğunun ortaya çıkardığı dağıtımlar da var. Bunları hiç denemediğim için bunlarla ilgili bir yorum yapamayacağım.

Konuya tekrar dönüyorum.

Tecrübe ettiğim kadarıyla Emacs'in keşfedilebilirliği vim'inkinden daha yüksek. Ayrıca, vim'in modlu düzenleme yaklaşımı standart bilgisayar kullanım alışkanlıklarımızla uyumlu olmadığı için bu tarz oyunlarla bu yaklaşıma aşina olmak mümkün oluyor. Emacs'te böyle bir durum olduğunu düşünmüyorum, standart kullanım alışkanlıkları yerini koruyor, bolca (ve bazen anlamsız :P) kısayolla destekleniyor sadece. Dolayısıyla oyunluk bir durum var mı emin değilim, daha çok ezbere ve alışkanlıklara (kas hafızası?) bakıyor.

Son olarak, illa Emacs ve oyun kavramlarını bir arada tecrübe etmek istiyorsan, Emacs üzerinde oyunlar oynayabilirsin. :D
https://www.emacswiki.org/emacs/CategoryGames
« Son Düzenleme: Ekim 04, 2019, 02:36:02 ÖS Gönderen: Celaleddin Hidayetoğlu »
"Hobi olarak kaşık da kullanırım. Fakat ciddi işlerimde çatal tercihimdir. Çorbayı kaşıkla içerim, çünkü çorba cıvıktır."

Çevrimdışı Furkan Kurt

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 245
  • Mahmudov
Ynt: Vim öğrenme oyunu
« Yanıtla #3 : Ekim 04, 2019, 02:58:12 ÖS »
Emacs kisayollarini sevmemek icin bir diger neden de "Emacs Pinky" kavrami. Kisyollarin cogunun Ctrl tusuna bagli olmasi sonucu serce parmakta olusan agriyi vurguluyor. Hatta insanlar usenmeyip bunun nasil onlenebilecegiyle ilgili uzun uzun dokumanlar da yazmis. Buyrun ErgoEmacs'ten bir kaynak.

Çevrimdışı Furkan Kurt

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 245
  • Mahmudov
Ynt: Vim öğrenme oyunu
« Yanıtla #4 : Ekim 06, 2019, 10:29:47 ÖS »
3. bolumden sonra devam etmek icin lisans satin alinmasi gerekiyor. Bir de odeme sadece PayPal ile yapilabiliyor. Benim pinky aci cekmeye devam edecek gibi. Yine ogrenemedik su Vim'i.

Çevrimdışı İhsan Cemil Çiçek

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 268
  • Kafayı yazılımla bozmuş otokoncu
Ynt: Vim öğrenme oyunu
« Yanıtla #5 : Ekim 07, 2019, 09:13:46 ÖÖ »
vim-adventures-rev adı ile nodejs ile kurulabilecek bir versiyonunu yapmışlar.

Çalıştırmak için sırası ile
- Nodejs indirin.
- Nodejs'i PATH variable olarak ekleyin.
- Verdiğim github linkini klonlayın (Klonlamayı bilmiyorsanız zip olarak indirin sağ üstte göreceksiniz sonra bir lokasyona içeriğini çıkarın.)
- Komut satırında klasörün bulunduğu dizini açın (cd komutunu kullanmanız gerek)
- "npm install" komutunu çalıştırın.
- "npm install -g pkg" komutunu çalıştırın.
- "pkg ." komutu ile derleyin. (Exe dosyasını çalıştırınca "Port 80 requires elevated privileges" hatası alıyorsanız aşağıdaki adımları takip edin.)
- bin/www dosyasını vim ile açın yukarıda process.env.PORT || 80 göreceksiniz oradaki 80'i 8080 yapın :x ile kaydederek kapatın.
- "pkg ." komutunu bir daha çalıştırın.
- Oyuna http://localhost:8080 adresinden ulaşabilirsiniz.
« Son Düzenleme: Ekim 07, 2019, 09:22:27 ÖÖ Gönderen: İhsan Cemil Çiçek »
İmza() // recursive

Çevrimdışı Furkan Kurt

  • Mezun olmuş OTOKON'cu
  • *
  • İleti: 245
  • Mahmudov
Ynt: Vim öğrenme oyunu
« Yanıtla #6 : Ekim 07, 2019, 10:48:48 ÖÖ »
- bin/www dosyasını vim ile açın yukarıda process.env.PORT || 80 göreceksiniz oradaki 80'i 8080 yapın :x ile kaydederek kapatın.

Ilk uc bolumde yazi yazmayi ogretmiyorlar. Su an dosyayi actim, kelimeler arasinda gezinebiliyorum sadece.