Neovim'i bırakıp Zed'e geçiyorum
(stevedylan.dev)- Her geliştiricinin kendine ait bir metin editörü yolculuğu vardır ve bugün kullandığı araca ulaşana kadar bir süreçten geçer. Bu hikâyeler ilgi çekicidir ve geliştirme araçlarına ve onlara harcanan emeğe büyük bir takdir duymamı sağlar
- Bu yazı, geliştirme araçlarıyla ilgilenen kişilerle kendi yolculuğumu paylaşmak ve onları yeni araçlar denemeye teşvik etmek için yazıldı
Metin editörü yolculuğunun başlangıcı
- İlk olarak Atom kullandım ve HTML, CSS, Javascript temellerini öğrenmeye başladım
- Daha sonra VSCode'a geçtim; ancak o dönemde eşimin fotoğraf düzenlemek için dizüstü bilgisayarı kullanması gerekiyordu ve benim kullandığım MacBook, VSCode'un Electron derlemesi nedeniyle performans düşüşü yaşıyordu
- Bu sırada tesadüfen Vim'i keşfettim ve klavye merkezli iş akışına ve hızına hayran kalarak Vim öğrenmeye başladım
- İlk başlarda Vim RC'yi düzenleyerek kullandım; sonrasında chris@machine videoları sayesinde Neovim'i öğrendim
- Yıllarca Neovim kullanarak yüksek verimlilik elde ettim. Ayarları ince ince düzenlemek için çok zaman harcadım ama sonunda neredeyse hiç yapılandırma değişikliği gerektirmeyen bir noktaya ulaştım
Değişim
- Ancak zaman geçtikçe yapılandırma dosyalarını sürekli sadeleştirmem gerekti ve en temel işlevleri korumak için bile ciddi emek harcamam gerekti
- Bazen bir eklentiyi her güncellediğimde Neovim sorun çıkarıyor, ben de işi bırakıp problemi çözmek için zaman harcıyordum. Bunu çözmek için yapılandırmayı sadeleştirmeye çalıştım ama temel işlevleri korumak için çaba harcamak yine de gerekiyordu
- Özellikle büyük kod tabanlarında çalışırken Neovim'in yavaşlaması ve ekranın donması gibi sorunlar yaşanıyor, bu da verimliliğimi olumsuz etkiliyordu
- Başka terminal emülatörlerine geçmeyi denedim (Alacritty, Wezterm vb.) ancak kayda değer bir fark olmadı
- Daha önce Zed'i duymuştum ama terminal tabanlı olmadığı için kullanmayı bırakmıştım. Yine de Zed'in hızıyla ilgili olumlu yorumları duyunca tekrar denemeye karar verdim
- İki ay boyunca her gün kullandıktan sonra, Zed'in son derece tatmin edici bir deneyim sunduğunu gördüm ve bundan sonra da kullanmayı planlıyorum. Neovim'e geri dönmeyi düşünmüyorum
Zed kullanım deneyimi
- Zed'i neden seçtiğimi anlatmak için, bugüne kadarki genel kullanım deneyimimi ve onu kendime nasıl uyarladığımı açıklamak istiyorum
Her şey "sadece çalışıyor"
- Zed'in en büyük avantajlarından biri, "her şeyin sadece çalışması"
- Özellikle Language Server Protocol (LSP) gibi özellikler Neovim'de yapılandırmak için çok zaman isterken, Zed'de varsayılan olarak sorunsuz çalışıyor
- Zed'de "tanımı görüntüle", "tanıma git" ve "kod aksiyonları" gibi tuş atamaları varsayılan olarak geliyor ve çoğu dili desteklediği için sorun yaşatmıyor
Hız
- Zed'i seçmemin başlıca nedenlerinden biri hızdı ve sonuçtan fazlasıyla memnun kaldım
- Büyük kod tabanlarında bile gecikme olmadan hızlı çalışıyor ve şimdiye kadar herhangi bir performans sorunu yaşamadım
- Neovim'i daha da hızlandırmak mümkün olabilir, ancak verimliliği artırmak için zaman kaybetmek yerine Zed kullanmak daha iyi
Vim modu
- Bir Neovim kullanıcısı olarak, VSCode'un Vim eklentisinin kararsız ve hatalarla dolu olması nedeniyle hayal kırıklığı yaşadığım olmuştu
- Zed'in Vim modu geliştiriciler tarafından doğrudan yapılmış bir özellik ve oldukça kararlı; önemli işlevleri de iyi destekliyor
- Tuş atama yapısı son derece esnek ve Vim kullanıcılarının hoşuna gidecek özellikler sunuyor
AI özellikleri
- Zed, yapay zeka özellikleri de sunuyor ve varsayılan olarak Copilot yerleşik geliyor
- OpenAI, Ollama, Anthropic gibi yapay zeka modelleri API üzerinden kullanılabiliyor
- Kodun bir kısmını seçip
ctrl-enterile yapay zeka asistanını çağırarak kod yazdırabildiğiniz satır içi asistan özelliği de kullanışlı
Zed ≠ Neovim
- Zed, Neovim'in tamamen yerini alabilecek bir araç değil. Neovim'in terminal içinde doğal olarak bulunması büyük bir avantaj
- Basit dosya düzenlemelerinde Neovim daha pratik, ancak uzun süreli oturumlar veya projeler için Zed kusursuz
Neovim kullanıcıları için Zed'i özelleştirmek
Zed, Neovim'in bire bir yerine geçen bir araç değil; ancak Neovim/Vim kullanıcılarına tanıdık bir ortam sunmak için çeşitli küçük ayarlarla deneyimi ciddi biçimde iyileştirmek mümkün
Vim modu ve tuş atamaları
- Yapılacak ilk şey Vim modunu etkinleştirmek. Zed, Vim modu için bir dokümantasyon sayfası sunuyor ve burada varsayılan Vim atamaları ile ek yapılandırmanın nasıl yapılacağı anlatılıyor
- Zed'in büyük avantajlarından biri, Vim moduna göre tuş ataması tanımlayabilmeniz. Örneğin "Normal" mod ve "Visual" mod için farklı atamalar uygulayabilirsiniz
[
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space b": "editor::ToggleGitBlame",
"shift-k": "editor::Hover",
"space l f": "editor::Format",
"space d": "diagnostics::Deploy",
"space f f": "file_finder::Toggle",
"space o": "tab_switcher::Toggle",
"space e": "workspace::ToggleLeftDock",
"space /": "workspace::NewSearch",
"n": "search::SelectNextMatch",
"shift-n": "search::SelectPrevMatch",
"space t": "workspace::NewCenterTerminal",
"g b": "editor::ToggleComments",
"+ +": "workspace::Save",
"space c": "pane::CloseActiveItem"
}
},
{
"context": "Editor && vim_mode == visual && !VimWaiting && !VimObject",
"bindings": {
"shift-j": "editor::MoveLineDown",
"shift-k": "editor::MoveLineUp"
}
},
]
- Ayrıca, Zed'de paneller arasında geçiş için tuş atamaları yaparak Neovim'e benzer bir iş akışı oluşturabilirsiniz
[
{
"context": "Dock || Terminal || Editor",
"bindings": {
"ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-j": ["workspace::ActivatePaneInDirection", "Down"]
}
},
]
- Varsayılan Vim keymap'ine göz atıp ihtiyaç duyduğunuz ayarları buna göre düzenlemenizi de öneririm. Varsayılan Vim keymap'i, Zed'in neleri desteklediğini ve hangi noktaları ayarlamak isteyebileceğinizi görmek için yararlı bir başvuru kaynağıdır
Sadeleştirilmiş arayüz
- Zed zaten minimal bir arayüz sunuyor; ancak Neovim kurulumunuza daha çok benzeyen bir arayüz tercih ediyorsanız sekme çubuğunu, kaydırma çubuğunu ve araç çubuğu gibi öğeleri devre dışı bırakabilirsiniz
{
"cursor_blink": false,
"relative_line_numbers": true,
"scrollbar": {
"show": "never"
},
"vertical_scroll_margin": 0,
"tab_bar": {
"show": false
},
"toolbar": {
"breadcrumbs": true,
"quick_actions": false
},
}
Eklenti karşılıkları
- Zed'de Telescope benzeri bir özellik olarak, dosyalar veya buffer'lar arasında gezinmek için sekme değiştiriciyi (
Toggle) kullanabilirsiniz
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space o": "tab_switcher::Toggle",
}
}
- Proje genelinde arama, Telescope yerine kullanılabilir; sonuçları çoklu buffer görünümünde gösterir ve kolayca gezinmenizi sağlar
- Terminal aç/kapat işlevi VSCode'dakine benzer; ancak Zed'de terminali ana düzenleme görünümünde bir buffer olarak açma seçeneği de vardır
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space t": "workspace::NewCenterTerminal",
}
}
- Tmux'u ve proje değiştirme işlevlerini tamamen ikame edemese de, Zed'in proje geçiş özelliği bu işi oldukça iyi yapıyor
{
"context": "Workspace",
"bindings": {
"cmd-k": [
"projects::OpenRecent",
{
"create_new_window": false
}
]
}
}
Zed kullanmalı mısınız?
- Zed'i denemeyi düşünüyor ama kararsızsanız, birkaç gün kullanmanızı öneririm
- Zed, kendine özgü ve yetkin bir metin editörü; nihayetinde önemli olan verimliliğinizi artıran araçtır
- Bu araç VS Code, JetBrains ya da EMacs olabilir
- Size en uygun aracı seçin, ama yeni şeyler denemeye karşı fazla katı olmayın
3 yorum
Hacker News görüşleri
Zed'i ilk başta beğenmişti, ancak işbirliği ve yapay zeka özelliklerine odaklanırken temel editör işlevleri eksik kaldığı için daha az kullanışlı hale geldi
Helix kullanmasının nedeni, VSCodium'dan Vim veya Neovim'e geçmeye çalışırken eklenti yapılandırmasının zor olmasıydı
Kısa süre önce Vim'den Zed'e geçti ve Zed'in birçok açıdan harika olduğunu düşünüyor
Zed kullanırken çok hızlı ve temiz arayüzden keyif alıyor
6 ay önce VSCode'dan Zed'e geçmişti, ancak yakın zamanda tekrar Neovim'e döndü
Zed'in daha fazla cilalanmasını ve kararlı hale gelmesini umuyor
Neovim dağıtımlarını deneyip denemediğini merak ediyor
VSCode içinde gerçek Neovim istiyorsanız,
vscode-neovime göz atmanızı öneriyorKakoune ve Helix'e ilgi duyunca VSCode için modal düzenleme uzantısı yazdı
macOS'ta Zed'i keşfettiğinde hızlı ve özellik açısından zengin bir editör olduğu izlenimini edinmişti
Ben de yakın zamanda Helix'e geçtim.
Hacker News'teki görüşte olduğu gibi, mevcut NeoVim'de eklentilerin hepsini kullanmadığım için helix'i denedim ve hemen geçiş yaptım. Ancak renk teması gerçekten şok edici.
Varsayılan temanın fazla mor olduğu için pek beğenmediğinizi mi kastediyorsunuz? :eyes: