11 puan yazan GN⁺ 2025-10-11 | 2 yorum | WhatsApp'ta paylaş
  • 20 yıldır Vim kullanan bir geliştirici, Helix editörüne geçip 3 aylık kullanım deneyimini paylaşıyor
  • Helix, karmaşık yapılandırma gerektirmeden dil sunucusu (LSP) desteğini varsayılan olarak sunmasıyla dikkat çekiyor
  • Özellikle Vim/Neovim'e kıyasla güçlü arama özellikleri ve çoklu imleç gibi iyileştirmeler sayesinde, birden fazla dosyada bağlamı kavramak ve toplu düzenleme yapmak daha kolay
  • Tuşlara basarken görünen hızlı başvuru penceresi (quick reference) sayesinde kısayolları unutmadan kullanmak mümkün
  • Markdown listeyi otomatik oluşturma desteğinin olmaması, kalıcı undo eksikliği ve haftada yaklaşık bir kez yaşanan çökme gibi bazı rahatsız edici noktalar olsa da genel deneyim tatmin edici
  • 20 yılda oluşan Vim kas hafızasını yeniden eğitme süreci beklenenden daha kolay olmuş; Vim tarzını zorla sürdürmek yerine "Helix tarzını" öğrenmek çok daha etkili olmuş

Helix'e geçme nedeni

  • Helix kullanmaya başlamasının ana nedeni, dil sunucusu entegrasyonunu kolayca kullanabilmek
    • Vim/Neovim'de dil sunucusu ayarlamak karmaşıktı; Helix'te ise ek yapılandırma olmadan hemen tanıma gitme ya da sembol adını değiştirme gibi işlemler yapılabiliyor
    • Önceden çok sayıda eklenti ve yapılandırma dosyasını sürdürmek gerekiyordu, ancak Helix'in yerleşik desteği bu yükü azaltıyor

Helix'in başlıca avantajları

  • Arama sisteminin başarısı
    • Depo genelinde bir metin arandığında sonuçlar önizleme penceresinde gösteriliyor; böylece eşleşen dosyalar arasında kaydırarak çevredeki kodu da birlikte görmek mümkün
    • Vim'in ripgrep eklentisinin aksine sonuçlar daha zengin bağlam sunduğu için hızlı karar vermeyi kolaylaştırıyor
  • Hızlı kısayol başvuru özelliği
    • g tuşuna basıldığında gidilebilecek komutların listesi bir yardım açılır penceresi olarak gösteriliyor; bu da kullanımı sezgisel hale getiriyor
    • Sık kullanılmayan kısayolları da kolayca kontrol etmek mümkün olduğundan öğrenme eğrisi daha yumuşak

Vim ile Helix arasındaki farklar

  • İşaret (mark) özelliği için ma, 'a yerine Ctrl+O, Ctrl+I ile imleç hareket geçmişi takip ediliyor
  • Makrolar yerine çoğunlukla çoklu imleç düzenleme kullanılıyor
    • Belge içinde toplu değişiklik yaparken % ile tümünü seçip s ile regex seçimi yaparak gerekli çoklu düzenlemeler gerçekleştiriliyor
    • Her seferinde makro yazmaktan çoklu imleç kullanmak çok daha pratik
  • Sekmeler yerine space + b ile buffer switcher kullanılarak hızlı geçiş yapılabiliyor

Helix'in rahatsız edici yönleri

  • Metni yeniden akıtma (text reflow) özelliği, Vim'deki gq kadar etkili değil
    • Listelerle uyumu zayıf
  • Markdown liste otomatik oluşturma desteği yok
    • Liste öğesinin sonunda "Enter" tuşuna basıldığında liste devam etmiyor
    • Madde işaretli listeler için kısmi çözümler var ama numaralı listeler için yok
  • Kalıcı undo özelliği henüz uygulanmamış
    • Vim'de undofile ile editörden çıktıktan sonra bile değişiklikler geri alınabiliyordu; Helix'te ise bu özellik henüz yok
  • Dosyayı otomatik yeniden yükleme desteği yok
    • Dosya disk üzerinde değiştirildikten sonra :reload-all (:ra<tab>) komutunu elle çalıştırmak gerekiyor
  • Ara sıra çökme yaşanıyor
    • Haftada yaklaşık bir kez; bunun yoğun Markdown düzenleme ile ilgili olabileceği düşünülüyor
    • Yeniden açmak yeterli olduğu için büyük bir sorun sayılmıyor
  • Buna rağmen Helix kullanılmaya devam ediliyor

Geçiş süreci ve öğrenme deneyimi

  • 20 yılda oluşan Vim kas hafızasını yeniden eğitmenin çok zor olacağından endişe edilmiş
  • Tatil sırasında bir yan projede Helix kullanılmaya başlanmış ve 1-2 hafta sonra artık kafa karışıklığı kalmamış
  • Başta Vim'e benzer tuş bağlarını zorla dayatmaya çalışılmış ama başarısız olunmuş; bunun yerine "Helix tarzını" öğrenmek çok daha kolay olmuş
  • Hâlâ kafa karıştıran bazı noktalar var
    • Vim'deki w ile Helix'teki w, "kelime" tanımı açısından farklı çalışıyor (Helix kelimenin sonrasındaki boşluğu da kapsıyor, Vim kapsamıyor)

Terminal tabanlı düzenleme ortamı

  • Yıllardır ağırlıklı olarak vim/neovim'in GUI sürümleri kullanıldığı için terminalde editör kullanmak biraz alışma gerektirmiş
  • Sonunda şu iş akışı benimsenmiş
    • Her proje için ayrı bir terminal penceresi kullanılıyor ve o pencerenin tüm sekmeleri aynı çalışma dizinine sahip oluyor
    • Helix sekmesi terminal penceresinin ilk sekmesine yerleştiriliyor
  • Birden fazla projeyi paralel yürütmek daha kolay olduğundan, bu yöntem önceki iş akışından bile daha iyi olabilir

Yapılandırma

  • Yüzlerce satırlık Neovim yapılandırmasına kıyasla çok sade bir yapılandırma korunuyor
    • Temelde yalnızca 4 klavye kısayolu ayarlanmış
  • Başlıca ayarlar
    • Tema: solarized_light
    • Varsayılan yank kaydı + olarak ayarlanarak sistem panosuyla senkronizasyon sağlanmış
    • #, yorum aç/kapat kısayolu olarak atanmış (Ctrl+C varsayılanı beğenilmemiş)
    • ^ ve $, satır başına/sonuna gitmek için yeniden eşlenmiş (başka bir yöntemi öğrenmek istenmemiş)
    • <space>l, :reflow olarak atanmış (çok fazla metin yazıldığı için sık sık yeniden akıtma gerekiyor; Vim'deki gq kısayolu özlenmiş)
  • Ayrı bir languages.toml yapılandırma dosyasında dil bazlı tercihler tanımlanmış
    • Python için: black biçimlendiricisi, pyright dil sunucusu, otomatik biçimlendirme kapalı

Sonuç: 3 aylık izlenim

  • 3 ay çok uzun bir süre değil ve bir gün Vim'e geri dönme ihtimali hâlâ var
    • Geçmişte nix'e geçip 8 ay sonra Homebrew'a geri dönme deneyimi olmuş (ancak bir sunucunun yönetiminde hâlâ NixOS kullanılıyor ve bundan memnun)
  • Helix henüz tamamlanmış bir ürün değil, ancak "yapılandırmasız editör" yaklaşımının yönü net
  • Sadelik ve yerleşik özellikler sayesinde uzun vadede Vim'in yerini alma potansiyeli taşıyor
  • Ancak kullanımın sürüp sürmeyeceği, ileride kararlılık iyileştirmeleri ve özellik genişlemesine bağlı olacak

2 yorum

 
GN⁺ 2025-10-11
Hacker News görüşleri
  • Editörün ara sıra segfault nedeniyle haftada bir çöktüğü ama bunun çok da dert edilmediği, sadece yeniden açmanın yeterli görüldüğü bu veri kaybı yaklaşımı ilginç; Helix'te persistent undo olmadığı için yeniden açınca önceki duruma da dönülmüyor
    Uzun zamandır Vim/Neovim kullanıyorum; hem kendi özel ayarlarımı yaptım hem de hazır yapılandırmalar denedim. Vim'i gerçekten sevmeme rağmen, Helix'in ek ayar yapmadan doğrudan kullanılabilmesi çok çekici
    Ama Helix config'inin kendisi oldukça ilkel hissettiriyor; dürüst olmak gerekirse, Vim'i ilk birkaç yıl kullandıktan sonra Helix'te elde ettiğim ortamı zaten kopyalayabilirdim diye düşünüyorum ve bunu yaptıktan sonra da artık ayar cehennemi yaşamadığımı söylemek isterim
    Yardım popup'larının hangi yolu izlemeniz veya hangi keybinding'i kullanmanız gerektiğini göstermesi çok hoş; normalde "go to definition" ya da "go to references" gibi özellikleri sık kullanmadığım için kısayolları kolay unutuyorum. Bu tür bağlamsal popup'ların yaygınlaşmasını isterdim; özellikle de yalnızca girişte tereddüt ettiğinizde akıllıca belirseler gerçekten çok faydalı olurdu
    • Tüm uygulamalarda karmaşık keybinding'ler kullanırken bağlamsal yardım popup'ları olsa inanılmaz rahat olurdu; özellikle yalnızca giriş duraksadığında akıllıca gösterilirse daha da iyi olur
      20 yıldır Vim/Neovim kullanıyorum ama which-key adlı eklentiyi ancak son 6 ay önce kurdum ve çok faydalı buluyorum
      which-key.nvim GitHub
    • Vim'deki ayar sorunlarının bağlamı gözden kaçmış gibi
      Ana language server kurulumunu (örneğin "go to definition" çalışacak şekilde) düzgünce oluşturmayı defalarca denedim ama Vim veya Neovim'de konforlu bir ortam kurmak bana hep fazla zor geldi
    • Vim ayarlarını kopyalayabilme fikrine katılıyorum ama Helix'i sunucuya doğrudan kurup hemen kullanabilmek çok pratik
      Vim yapılandırmasını ve ilgili bağımlılıkları taşıma derdi yok; geliştirme ortamı çok daha taşınabilir hissettiriyor (tabii karmaşık bir Vim kurulumu kadar değil, daha temel bir düzeyde)
    • Yardım popup özelliğine %100 katılıyorum; bu tür bir şeyin daha fazla yerde uygulanması gerçekten çok yardımcı olur
      Özellikle ilgili makaledeki açıklama ve ekran görüntülerini gördükten sonra bu özelliği ciddi biçimde istemeye başladım
      Popup akıllıca timeout gibi koşullarla görünürse, ihtiyaç olmadığında rahatsız etmez ve yalnızca tereddüt ettiğinizde otomatik rehberlik sunar
    • Helix'i 3 yıldır neredeyse her gün kullanıyorum ama segfault yüzünden çökmesi bir elin parmaklarını geçmeyecek kadar nadir oldu; neredeyse hiç yaşanmıyor
  • Helix'e bayağı bağlandım ve tüm geliştirme işlerimde kullanıyorum
    Önceden ağırlıklı olarak neovim ve VS Code kullanıyordum; Helix benim için özel bir boşluğu dolduruyor
    • Tasarımı güzel (ayrıntılara çok özen gösterilmiş)
    • Performansı hızlı (hiç yavaş gelecekmiş gibi hissettirmedi)
    • Varsayılan keybinding'ler ele çok iyi oturan ergonomik bir tasarıma sahip
    • Kurar kurmaz hiçbir ayar yapmadan kullanılabiliyor
      neovim'i yapılandırmakla uğraşmak ya da vim kullanmayı sürdürmek bana yorucu geldiğinden, VS Code ile nvim arasında bir orta noktaya ihtiyacım vardı; Helix tam buna uyuyor
      vimscript ustası olsaydım belki farklı düşünürdüm ama değilim, o yüzden bana çok iyi geliyor
      Helix'in daha modüler ya da UNIX benzeri çalışmasına gerek yok; şimdiki haliyle devam etmesini isterim
      Zaten çok çeşitli bir araç ecosystem'i var ve Claude Code ile de entegre kullanılabiliyor (buffer refresh ile yeni düzenlemeler uygulanıyor)
      En iyi editörlerden biri olduğu için projeye aylık destek vermeye de başladım
      İleride gelişmesini istediğim en büyük konu, editör içinde görsel veya formül render edilebilmesi; bunun Kitty terminal protokolü ya da sixel gibi eklentilerle gelmesini umuyorum
      Bunu özellikle Markdown dosyalarıyla not/blog yazarken çok faydalı bulurdum
      Helix'e başarılar
    • Helix gibi kurar kurmaz çalışan uygulamalar supply chain attack konusunda daha az endişe yarattığı için çok iç rahatlatıcı
      VSCode veya (neo)vim tarafında birçok yerden eklenti çekmek gerektiği için hep tedirgin oluyordum
    • nvim ile vscode arasında bir orta nokta arıyorsan, neden doğrudan vscode içinde vim eklentisi kullanmıyorsun diye düşünüyorum
    • Helix'i seviyorum ama nvim'den de vazgeçmeyeceğim
      Lua geliştiricisi değilim ama LLM'ler nvim ayarlarını yapmak veya değiştirmek konusunda büyük yardımcı oluyor
      helix'e geçmemin en büyük nedeni LSP/lint yapılandırmasının çok iyi olmasıydı
    • “vimscript ustası” demek yerine, aslında neovim kullanmak için Lua bilmek gerekmiyor mu?
  • neovim'den helix'e birkaç haftalığına geçmeyi denedim ama bazı temel özellikler hâlâ yoktu, not almıştım
    • Kaydetme sırasında otomatik code action (ör. Go import ekleme): PR #6486
    • telescope+rg benzeri dosya seçiciyle entegre fuzzy search: PR #11285
    • Diskte dosya değiştiğinde buffer'ın otomatik güncellenmesi: sorun #1125
    • Dosya ağacı gezgini: eklenti sisteminin parçası olarak eklenmesi reddedildi, hâlâ uygulanmadı PR #5768 Bunların dışında katlanılabilir küçük şeyler de vardı; 1-2 yıl sonra yeniden denemeyi düşünüyorum
    • Ben Helix'i homebrew üzerinden sık sık HEAD'den derleyerek kullanıyorum; Julia'nın sık çökmesinden bahsedilmesine şaşırdım
      HEAD'de zaten merge edilmiş özelliklerle ilgili birkaç şey paylaşayım —

      Kaydederken code action: kaydetme kancasıyla çözülebiliyor (Go için geçerli), ama diğer dillerde zor olabilir
      Fuzzy search: çok uzun zamandır gömülü geliyor ve yakın zamanda yeniden elden geçirilerek epey iyileştirildi
      Otomatik buffer güncellemesi: editörü sık sık arka planda bıraktığım için benim de mutlaka ihtiyaç duyduğum bir özellik
      Dosya ağacı: HEAD'de Space+e/E ile hiyerarşik gezgin kullanılabiliyor, nispeten yeni eklendi

    • Bağlantısı verilen dosya gezgini iptal edildi ama vim-telescope tarzı bir gezgin bu yılın başında Helix'e merge edildi
      Zaten yerleşik fuzzy search tabanlı bir dosya seçici olduğu için, klasik bir dosya gezgini çok fazla ek fayda sağlamıyor
    • Ben de neovim'den helix'e geçmeye çalıştım ama onlarca yılda yerleşmiş vim komut kas hafızası yüzünden küçük hatalar birikince çok geçmeden vazgeçtim
      Helix için vim keybinding eklentisini de kullandım ama sadece kısmen uyduğu için daha da hayal kırıklığı yarattı
    • Dış programlar (templ, sqlc vb.) dosyayı değiştirdiğinde Helix'in bunu otomatik algılayıp yeniden yüklememesi üzücü
      Deneyimli Helix kullanıcıları bunu nasıl çözüyor merak ediyorum
  • Helix kullanmaya başlama nedenim büyük ölçüde language server (LSP) kurulum süreciydi
    Vim/Neovim'de rahat bir language server kurulumu yapmak o kadar iş hâline gelmişti ki Helix'e geçtim
    Ama son 5 yılda Neovim için bataryalar dahil gibi her şeyi hazır getiren dağıtımlar çıktı ve kurulum çok kolaylaştı
    Birçok geliştiricinin editör debug etmeye vakit harcamak istemediğine katılıyorum; bence JetBrains'in popüler olmasının nedeni de bu
    Yine de 20 yıllık bir Neovim kullanıcısının düzgün bir LSP ortamı kuramamış olması bana pek inandırıcı gelmiyor; yazarın gerçekten kendi deneyimini mi anlattığından emin değilim
    • 10 yıldan uzun süredir Vim kullanıp LSP'yi hiç kurmamış biri olarak böyle örnekler var
      Sonunda tam bir IDE kullanmak daha rahat geldiği için kurulum ve ayara girişmekte hep tereddüt ettim
    • Ben de 20 yıldan uzun süredir vim → neovim kullanıyorum ama LSP bozulup kısayollar da çalışmaz hâle gelince, sebebini araştırmak istememeye yol açan ciddi bir psikolojik eşik oluşuyor
      Yazarın yaşadıkları bana gayet tanıdık geliyor
    • İlginç, ben og ya da neovim'de LSP kurulumu konusunda hiç zorlanmadım
      Ben de ayarları minimumda tutup barebones kullanıyorum; zor değildi ve Lua bana vimscript'ten çok daha ergonomik geliyor
      ALE gibi araçları kullanmaya devam etmemin nedeni de bu
      Helix kullananların da memnun olmasını dilerim
    • Bu bana tamamen garip geliyor; neovim'in LSP'si iki yıldan uzun süredir yerleşik değil miydi?
    • Orta ölçekli şirketlerin vscode araç zincirini standartlaştırdığı açıkça görülüyor
      Başka editörler kullanılabiliyor ama neredeyse tüm debugging ve yapılandırma vscode merkezli olduğu için onu kullanmanız teşvik ediliyor
      Neovim+treesitter+LSP kurulumu da artık oldukça pürüzsüz çalışıyor; eskiden zor olsa da bugün büyük bir sorun değil
      Helix'e geçiş motivasyonu LSP ise biraz şüpheli geliyor; belki de yazarın asıl derdi LSP'nin kendisidir
  • Helix'in noun-verb (nesne-eylem) modeli başta taze hissettirdi ama kullandıkça verb-noun (eylem-nesne) modelinin bana çok daha uygun olduğunu fark ettim
    noun-verb yaklaşımının dezavantajlarından biri tekrar komutunun (.) mümkün olmaması
    Vim'de dd.., dap.. gibi tekrarlar yapılabiliyor ama noun-verb modelinde bu zor
    Daha temel olarak, tuş sayısı yetmiyor sorunu ortaya çıkıyor
    Fazla sayıda temel işlem için Alt tuşuna ihtiyaç var ve vim'deki gibi normal/visual/insert modları yok; sadece visual/insert var
    motion/nesne ayrımı da net değil, bu da key mapping'i zorlaştırıyor ve tuş kıtlığı yaratıyor
    • verb-noun yaklaşımı insanın düşünme biçimini bile değiştiriyor
      Gerçekten kod yazarken gereken zihinsel modele daha uygun hissettiriyor
  • nvim tarafındaki son dönemin en iyi gelişmesi mini.nvim oldu
    echasnovski'nin geliştirdiği bir eklenti koleksiyonu; farklı ihtiyaçları karşılıyor, aynı zamanda tutarlılık ve iyi dokümantasyon sağlıyor
    nvim 0.12(nightly) ile birlikte yerleşik eklenti yöneticisi (vim.pack) sayesinde sadece mini.nvim ve lspconfig kurmak bile yeterli
  • lsp gibi “ileri seviye” editör araçlarından tamamen vazgeçmenin ne kadar özgürleştirici bir deneyim olduğuna hâlâ şaşırıyorum
    neovim'i eklentisiz, otomatik tamamlama olmadan, hatta syntax highlighting bile kapalı kullanıyorum
    Bu yaklaşımın getirdiği öz disiplinin daha iyi kod yazdırdığını hissediyorum
    Herkes için uygun olmayabilir ama en azından bir kez denemeyi tavsiye ederim
    • Eklentisiz ve otomatik tamamlamasız yaşamak tamam da, syntax highlighting'i de kapatmak bana gereksiz bir çile gibi geliyor
    • Ben de henüz tamamen geçmedim ama Emacs'ta otomatik tamamlama 1 yıldır bozuk ve neredeyse hiç eksikliğini hissetmiyorum
      Code action ya da goto definition da kullanmıyorum; anlık hata gösterimi bazen yararlı ama derleyici zaten çok hızlı olduğu için büyük fark yaratmıyor
      LSP'yi tamamen kapatma isteğim var; 20 yıl öncesine göre programlama becerimi dramatik biçimde geliştirdiğini düşünmüyorum
      Syntax highlighting konusunda da çok renkli temaların dikkat dağıttığını ve anlam katmadığını düşünüyorum
      Tek renkli ya da iki renk ağırlıklı temaları tercih ediyorum; değişken adıyla fonksiyon adının ayrı renkte olmasına bile ihtiyaç duymuyorum
    • Mitchell Hashimoto'nun bu şekilde gayet verimli çalıştığını duyunca, en yeni araçlar olmadan da yeterince üretken olunabileceğine dair güven kazandım
      Yine de her şeyi akılda tutmak zorunda kalmanın zamanla yormayacağını ya da bu yöntemin gerçekten daha iyi kod üretip üretmediğini merak ediyorum
    • Ben de hiçbir yardımcı araç olmadan kod yazıyorum ama syntax highlighting'i her zaman açık tutuyorum
      Renkler, koddaki hata ve yanlışları göze daha kolay çarpan, ayrıca kod içinde gezinmeyi hızlandıran ek bir bilgi katmanı sağlıyor
    • Kişisel projelerde bu minimal yaklaşımı ben de benimsiyorum
      Ama aşırıya kaçmıyorum; syntax highlighting ve LSP üzerinden sözdizimi hatası geri bildirimini koruyorum
      Otomatik tamamlama ya da belge bağlantılamayı kullanmıyorum
  • Helix öğrenmek isteyenlere nic-revs'in hazırladığı yenilenmiş Helix dokümantasyonunu tavsiye ederim
    helix-editor.vercel.app
    Resmî belgelerden çok daha okunaklı ve birçok ipucu/hile içeriyor; böylece verimli düzenleme yöntemleri veya keybinding'ler gibi konularla Helix'in bazı eksileri (örneğin yerleşik terminal olmaması) bir ölçüde telafi edilebiliyor
    • Resmî dokümanların okunabilirliğinden hep bunalmışımdır; gerçekten çok yararlı bir bilgi oldu
  • Neovim dağıtımlarındaki aşırı yan özellikler gerçekten rahatsız edici olabiliyor
    Uzun süreli vim kullanıcıları için kickstart'ı, özellikle modüler çatalı kickstart-modular.nvim, tavsiye ederim
    kickstart.nvim
    Çok minimal bir başlangıç noktası olduğu için harika
    • kickstart'ın güzel yanı tüm ayarların tek bir dosyada olması
      Yalnız biraz büyük; ben fold marker kullanarak bölümleri kapatıp yönetmeyi daha kolay hâle getiriyorum
 
qdr7h 2025-10-13

LSP ve plugin ayarlarının kolaylığı gibi nedenlerle zaman zaman Helix'e ilgi duyuyorum, ancak ellerim vi/vim'e fazla alıştığı için bu pek kolay olmuyor.