11 puan yazan GN⁺ 2024-08-19 | 3 yorum | WhatsApp'ta paylaş
  • 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-enter ile 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

 
GN⁺ 2024-08-19
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

    • Şu anda eski editörüne ve IDE'sine geri dönmüş durumda, ileride tekrar denemeyi planlıyor
  • Helix kullanmasının nedeni, VSCodium'dan Vim veya Neovim'e geçmeye çalışırken eklenti yapılandırmasının zor olmasıydı

    • Helix kutudan çıktığı gibi çalıştı, bu yüzden onu kullanıyor; tuş atamaları sezgiseldi ve Vim tuş atamalarını da öğrenebilmişti
    • Varsayılan renk teması biraz sarsıcı
  • Kısa süre önce Vim'den Zed'e geçti ve Zed'in birçok açıdan harika olduğunu düşünüyor

    • Ancak temel özelliklerde çok fazla hata var; yapay zeka entegrasyonu gibi şeyler yerine temel işlevlere öncelik verilmesini isterdi
  • Zed kullanırken çok hızlı ve temiz arayüzden keyif alıyor

    • Git entegrasyonu ve uzak destek daha iyi olursa tamamen geçebilir
  • 6 ay önce VSCode'dan Zed'e geçmişti, ancak yakın zamanda tekrar Neovim'e döndü

    • Zed'in Vim entegrasyonuna yaklaşımını beğenmişti, ancak temel özellik eksikliği ve hatalar nedeniyle Neovim'e geçti
    • Zed olgunlaşırsa geri dönmeye istekli
  • Zed'in daha fazla cilalanmasını ve kararlı hale gelmesini umuyor

    • O zamana kadar Sublime Text 4 kullanıyor; performansı çok iyi ve LSP uzantısı ile Sublime Merge, VSCode'un eksik bıraktığı yerleri tamamlıyor
  • Neovim dağıtımlarını deneyip denemediğini merak ediyor

    • LazyVim, AstroVim ve NvChad gibi dağıtımlarda gerekli eklentiler ve entegrasyonlar zaten yapılandırılmış durumda
  • VSCode içinde gerçek Neovim istiyorsanız, vscode-neovime göz atmanızı öneriyor

    • Gerçek VIM'i ve VSCode'un tüm özelliklerini birlikte kullanabilirsiniz
  • Kakoune ve Helix'e ilgi duyunca VSCode için modal düzenleme uzantısı yazdı

    • VIM'in çoğu özelliğini destekliyor ve AST tabanlı yeni davranışlar ile modlar ekliyor
    • Bir blog yazısı yazmayı planlıyor
  • macOS'ta Zed'i keşfettiğinde hızlı ve özellik açısından zengin bir editör olduğu izlenimini edinmişti

    • Ancak *nix sistemlerinde vi/vim kadar yaygın değil
    • Çeşitli altyapı ve dağıtım kısıtlarını düşününce, yaygın bir editöre odaklanmak daha kolay
    • Zed, vi/vim'e alternatif olabilir, ancak vi/vim kullanıcılarının çoğunun tamamen geçmesi pek olası görünmüyor
 
taking 2024-08-19

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.

 
roxie 2024-08-26

Varsayılan temanın fazla mor olduğu için pek beğenmediğinizi mi kastediyorsunuz? :eyes: