Site logo
VS Code vs Neovim mi?

VS Code vs Neovim mi?

Şu başlığı atmak bile bir tık moralimi bozdu. Ne neovimmiş arkadaş… Gerçi konuya böyle girince sanki sonunda neovimi tercih etmemişim gibi oldu ama konu genel olarak fazla gündeme geldi.

Öncelikle neovim nedir, VS Code ‘un tahtına kim göz dikmeye cüret etmiş ona bir bakalım. Efendim neovim, terminal tabanlı, grafiksel render yapmayan, hepimizin ilk linux zamanlarında vim komutu ile karşımıza çıkan uyuz editörün güncellenmiş bir branchı.

vim dosya.adi

komutu ile dosyayı açıp, nasıl kapanıyor bu diye uğraştığımız arkadaş…

Ey Neovim! Sen kimsin?

Peki nasıl oluyorda bu komut ekranı ile kullandığımız hadsiz kendini bilmek, koskoca modern VSCODE ‘a takip oluyor.

Sağda solda en çok rastladığım argümanları hemen listeliyorum

  • Düşük kaynak kullanımına sahip
  • Hızlı kod düzenleme ve gezinme özellikleri var
  • Odaklanmaya yardımcı

Bu listeye herhangi bir itirazım yok ama karşı bazı argümanları da görmezden gelemiyorum. Örneğin gayet güçlü bir bilgisayarı olan yazılımcı, düşük kaynak kullanımına ihtiyaç duymayabilir. Hızlı kod düzenleme ve gezinme özellikleri, yalnızca neovim ortamında uzun süre çalıştıktan sonra aklına yerleşiyor. Özetle uzun bir öğrenme eğrisi var. Odaklanmaya yardımcı olabilir ama aynı sebepler ile yavan da gelebilir.

Aktif olarak neovim kullanan bir yazılımcı olarak, benim bu ortamı seçme nedenim yukarıdakilerin hiç birisi değildi. Birazdan bu sebebe de değineceğim.

Neovim deneyimi

Neovim yazılımı için linux tabanlı bir işletim sistemi kullanmamız gerektiğini hatırlatarak başlayayım bu bölüme. Yine de bu demek değil ki windowsta neovim kullanamıyoruz. Elbette windows ‘un WSL özelliğini kullanarak CMD üzerinden neovime erişim sağlayabiliyoruz ve problemsizce native ortamdaki gibi bu editörü kullanabiliyoruz.

Gel gelelim neovim, editör ortamı için sorunsuz bir başlangıç sunmuyor. Öncelikle hiç linux kullanmayan biri için bu deneyimin acı verici hale gelmesi işten bile değil.

Neovim ilk kurulduğu hali ile yavan, vim in üzerine pek az özellik eklenmiş bir halde elimize ulaşıyor. Editörün tüm potansiyelini kullanmak istersek, pluginlerini yükleyerek maceramıza başlıyoruz. Bu da yetmiyor, bir çok özelleştirme ile üstüne cila atmamız da neredeyse zorunlu.

Yalnızca neovim ortamını kurmak, özelleştirmek ve kullanmayı öğrenmek çok ciddi bir iş yükünü beraberinde getiriyor.

Bu deneyimi iyileştirmeyi hedefleyen bazı neovim paketlerini de inceleme fırsatı buldum. Bunlardan en populeri olan Lazyvim paketi, toplu bir şekilde kurduğu pluginlerle birlikte, bir anda neoviminizi VSCode türevi bir arayüz ve işlevine çevirebiliyor.

Buradaki sorun şu.. Eğer VSCode ‘a benzer bir şey kullanmak istiyorsan, neden VSCode ‘u kullanmıyorsun ki? Neovimin en kötü kullanımı, onu olmadığı bir şey gibi kullanmaya çalışmak olmalı.

Yine de Lazyvim ile gelen LSP ayarları, tema, telescope vs gibi pluginler, ilk başlangıç için oldukça büyük bir avantaj sağlamıyor değil. Aksi halde, hiç bilmediğiniz bir ortamda Lua dili ile editörünüzü editlemeniz gerekiyor.

Peki ben neden neovim kullanıyorum

Benim için neovim in en büyük özelliği, ortam bağımsız kullanılabilir olması. Ne demek istediğimi kendi geliştirme ortamımdan örnek vererek anlatayım.

Evimde homelab olarak adlandırabileceğimiz, plex, docker, radarr, sonarr gibi servislerimin olduğu Proxmox üzerine kurduğum bir serverım var. Bu server, bazı codec işlemlerini kolaylaştırabilmek adına 3060ti bir ekran kartına da sahip.

VSCode ‘dan Neovim ‘e geçerken, bu Proxmox sunucum üzerinde Debian bir sanal makina yaratıp, gerekli olan tüm donanımı bu makinaya sağladım ve Neovimi buraya yükledim. Git, golang, node vs gibi altyapılar bu sanal makina üzerinde çalışırken, Mysql, Phpmyadmin, vs vs gibi veritabanı unsurlarım ise aynı makina üzerindeki docker sunucum üzerinde yayında.

Ne zaman yazılım geliştirecek olsam, herhangi bir şekilde SSH sunucusu üzerinden bu sanal makinaya bağlanmam benim için yeterli oluyor.

Bu terminal temelli çalışma biçimi, o anda kullandığım cihazın hangi özelliklere sahip olduğunu ilgisiz kılıyor.

VSCode sadece windows, linux ve mac üzerinde çalışmakta. iOS ve android desteği bulunmamakta. VSCode Server ile mobil cihazlar üzerinden de erişebilir olsa da, server proxyleri, farklı network erişimleri, port yönlendirmeleri gibi bir çok komplike sorunu da beraberinde getiriyor.

Halbu ki 10inchlik bir android tablet ve bluetooth klavye ile, yapay zeka destekli, her türlü teknolojiye sahip bir editöre, Termux uygulaması üzerinden erişebiliyorum.

Haliyle neovim sayesinde, ister eski bir laptopum olsun ister basit bir tabletim, ekran kartımın gücü ile çalışan ollama temelli bir yapay zeka yardımcılı, bütün language serverları destekleyen, son derece hızlı ve kaynak tüketmeyen kod editörüm, bağda bahçede deniz kenarında, otobüste uçakta, ne neredeysem benimle olmaya hazır.

Kodlarım kendi serverımda, güvenli ssh key ile eriştiğimin sunucumda her daim, herhangi bir cihazdan güvenle beni bekliyor.