"Neovim ile üretkenlikte kuantum sıçraması" sunum materyali
(docs.google.com)Kayıt videosu: https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
Ek: https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/
2023-06-03 tarihinde 2. ExcelCon'da "Neovim ile üretkenlikte kuantum sıçraması" başlığıyla bir sunum yapmıştım; geç de olsa burada da paylaşıyorum.
Sunum içeriği özeti
Sadece Neovim kullanarak üretkenlik nasıl arttı?
- VSCode, Notion, RoamResearch, GitKraken gibi araçlar arasında sürekli geçiş yaparken bunları Neovim'de birleştirince gereksiz bilişsel yük azaldı
- macOS ve archilinux arasında dönüşümlü çalışmama rağmen her yerde tutarlı bir geliştirme ortamını koruyabiliyorum (
dotfiles) - Cihaz performansı konusunda endişelenmeme gerek kalmadı.
- Before : AndroidStudio, VSCode, RoamResearch vb. birçok uygulamayı aynı anda açıp çalıştığım için sık sık thrashing yaşanıyordu. Kaynak kodu yazarken bile gecikme oluyordu / After : Uçağın kalkış sesi gibi fan sesi bile duyulmuyor. Bellek kullanımı da oldukça düşük.
Üretkenliği artırmak için 3 adım
- Üretkenlik iyileştirmesi, hangi eylemlerde gereksiz yere zaman harcadığımı analiz eden bir meta farkındalıkla başlamalı.
- Önce kullandığım araçlara alışırım.
- Hangi işleri tekrar tekrar yaptığımı gözden geçirir, bu tekrarlanan işleri yaparken harcadığım süreyi azaltacak kullanım yöntemleri olup olmadığına bakarım. (örn. şablon, eklenti, makro, snippet, …)
-
- adımdaki süreçte bana uyanları seçip içselleştiririm.
Hacim nedeniyle açıklayamadığım içerikleri blogda ek olarak derledim.
- AstroNvim, LazyNvim dahil Neovim'e yeni başlayanlar için starter kit'ler
- Neovim'e özel tree-sitter eklentisi
- Otomatik tamamlama özelliği sunan nvim-cmp
Vim'i daha iyi kullanmak isteyenler için bir Discord topluluğu da işletiyorum (vim.kr), ilginizi beklerim :)
11 yorum
https://github.com/github/copilot.vim
Ben VS Code Copilot'ı o kadar iyi kullanıyorum ki araştırınca Neovim Copilot Plugin'in de olduğunu gördüm. Denesem mi diye düşünüyordum ama sanırım bir kez Neovim'i denemem gerekecek.
İlk iş değiştirdiğim şirkette geliştirmeyi
vim + tmuxLinux sunucusuna uzaktan bağlanarak yapıyorlardı.Bu ortamda uzaktan pair programming yapılabilmesi beni etkilemişti. (kod değişiklikleri anında yansıyor ve terminal de paylaşılıyor)
Uzak sunucudaki dotfiles (
.vimrc,.bashrc) sayesinde vim’e gerçekten giriş yapmış oldum.Elimin altında bir örnek olduğu için rahatça başlayabildiğimi hatırlıyorum; bu yüzden metindeki dotfile hikâyesine katılıyorum haha
Ben de NVIm'den vscode'a geçmiştim ama bu yazıyı görünce tekrar geri dönmek istedim. :)
Metin editörleriyle ilgili bir konu olması gerçekten sevindirici. Sonuçta yaptığımız her işin metinle uğraşmak olduğunu kabul edince, kendi metin ortamıma özen göstermek de yük gibi gelmiyor. Ben de geçen yıldan beri Emacs kullanmaya başladım ve gerçekten her şeyi klavyeyle yapabilir hale geldim. 0. maddede söylediğiniz gibi, gereksiz harcanan zamanı epey azalttım. vim.kr umarım daha da büyür!!
Videoda benim kaçırdığım bir nokta mı var diye soruyorum. Notion’ı neovim ile değiştirdiğinizi söylemeniz, neovim içinde bir wiki sistemi kurup onu kullandığınız anlamına mı geliyor, yoksa Notion’ı neovim içinde yönetmeye yarayan bir kütüphane olduğu anlamına mı geliyor, merak ediyorum. Sorunun amacı, şirkette kullandığımız Notion’ın da neovim içinden yönetilip yönetilemeyeceğini öğrenmek.
Elbette Notion’u doğrudan kontrol etmedim.
Notion API desteği sunarsa teorik olarak
neovimiçinde kontrol etmek mümkün olabilir, ancak şu ana kadar böyle bir deneme görmedim.Şirkette kullanılan Notion’un
neovimüzerinden kontrol edilip edilemeyeceğini kesin olarak söylemek zor; bunun kurumsal politika açısından bir mesele olabileceğini düşünüyorum.Notion API sunuyor, ancak pratikte aklıma gelen çeşitli kısıtlamalar yüzünden uygulama durmuştı; iyi bir çözüm var mı diye merak ediyordum. Yanıtınız için teşekkürler :D
Daha çok bir wiki sistemi kurdum demek daha doğru olur.
telekasten.nvimadlı eklenti, benim gereksinimlerimi %100'ün de ötesinde karşılayacak düzeyde; akla gelebilecek çoğu özelliği zaten barındırıyor.Şablon özelliği de oldukça iyi. İç dokümanları yönetme işlevleri de yeterince başarılı.
Kişisel olarak sevdiğim özelliklerden biri olan grafik görselleştirmesini de
force-graphadlı bir kütüphaneyle doğrudan kendim işledim.Faydalı olabilir diye ilgili kaynak kodu bağlantılarını da bırakıyorum.
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- grafik görselleştirmesi için gereken düğüm (belge) / kenar (iç bağlantı) verisini üretme
https://github.com/kodingwarrior/kodingwarrior.github.io/… --
force-graphtabanlı görselleştirmeBen de neovim kullanıyorum ve bambaşka bir dünyayla tanıştım. Bu yüzden çevremdeki geliştiricilere de bir deneyin diye çok söyledim ama kimse geçiş yapmadı. neovim kullanırken geliştirme ortamı kurmak için gereken şeyleri daha ayrıntılı öğrenmiş oldum. Kore Vim topluluğu olduğunu da bilmiyordum, gidip bakacağım; sizi görmek çok sevindirici!
Şirkete ve takıma göre değişir ama... şaşırtıcı biçimde geliştirme ortamı kurulumuna ilgi duymayan epey insan var..
Vim'i iyi kullanmak için sonunda zsh ve tmux'u da birlikte kullanmak gerekiyor gibi görünüyor.
Emacs'tan farklı olarak sakal bırakmak gerekmemesi sevindirici.