Bir Yazılımcı Olarak Kullandığım Terminal Araçları

Terminal Kullanımı

Günün çoğunu terminalde geçiren biriyim. Havalı durduğu için değil. Yıllar içinde küçük küçük şeylerin ne kadar vakit yediğini görünce böyle oldu. Üç dosyayı commit’e eklemek için git arayüzünde tıklaya tıklaya dolaşmak. Tek bir fonksiyona bakacağım diye koca IDE’nin açılmasını beklemek. Bir config dosyası birden hiç bilmediğin bir editörde açılınca ne yapacağını şaşırmak. Tek tek bakınca önemsiz ama hepsi bir araya gelince gün içinde ciddi bir zaman kaybı oluyor.

İyi bir terminal düzeni işte bu kaybı önlüyor. Buradaki araçları MacBook’umda iTerm2 ile kullanıyorum, örnekler de ona göre. Ama neredeyse hiçbiri sadece Mac’e özel değil. Çoğu, paket yöneticisiyle kurulan ve her yerde çalışan komut satırı araçları. Yani Windows (WSL) ya da Linux kullanıyorsan da rahat rahat takip edebilirsin. Sadece Mac’e özel olan tek şeyi ayrıca söyleyeceğim.

iTerm2

Mac’te hazır gelen Terminal fena değil, iş görüyor. Ama iTerm2 ücretsiz ve o kadar çok küçük derdi çözüyor ki bir daha dönmedim. En çok kullandıklarım ekranı bölme, düzgün arama ve terminalde görsel gösterebilmesi.

brew install --cask iterm2

Windows: iTerm2 orada yok ama Windows Terminal artık işletim sistemiyle birlikte geliyor ve aynı işleri görüyor. Yazının geri kalanında “iTerm2” yazan yeri “Windows Terminal” diye düşün.

KısayolNe yapar
Cmd+DDikey böl
Cmd+Shift+DYatay böl
Cmd+FGeçmişte ara, tüm eşleşmeleri işaretler
Cmd+[ / Cmd+]Bölmeler arasında geçiş

Görsel gösterme kısmı kulağa önemsiz geliyor ama önizleme yapan bir dosya yöneticisi kullanmaya başlayınca değeri anlaşılıyor.

Vim’den Sağ Çıkmak

Bunu baştan anlatıyorum çünkü asıl panik yaratan şey bu. Üstelik Vim kullanmak istemekle falan da alakası yok. Mesaj yazmadan git commit çalıştırıyorsun ya da bir config dosyasını düzenliyorsun, bir bakmışsın çıkışını bir türlü bulamadığın bir editörün içindesin. O editör de genelde Vim.

İşin bütün mantığı şu: Vim’in modları var. Açıldığında normal moddasın, orada tuşlar yazı yazmaz, komut çalıştırır. Yazı yazmak için i‘ye basıp insert moduna geçiyorsun. İşin bitince Esc ile normal moda dönüyorsun. Gerisi iki nokta ile başlayan komutlar.

KomutNe yapar
iInsert modu (yazmaya başla)
EscNormal moda dön
:wKaydet
:qÇık
:wqKaydet ve çık
:q!Kaydetmeden çık (acil çıkış)
gg / GBaşa / sona git

Bir daha takılıp kalmamak için bu kadarı yeter. Vim zaten her Mac ve Linux’ta hazır geliyor, Windows’ta da Git for Windows ile birlikte kuruluyor.

lazygit

Günlük git işleri için, yani neyin değiştiğine bakmak, dosya eklemek, commit atmak, geçmişe göz atmak için görsel bir arayüz cidden vakit kazandırıyor. lazygit tam olarak bunu yapıyor, git’in üstünde çalışan bir terminal arayüzü. Herhangi bir repo içinde lazygit yazınca açılıyor.

brew install lazygit          # Windows: scoop install lazygit
TuşNe yapar
SpaceDosyayı (ya da diff’teki satırı) ekle / geri al
cCommit
P / pPush / pull
TabPaneller arasında geçiş
qÇık

Beni asıl vuran geçmiş ekranı oldu. Eski commit’ler arasında gezip her birinin diff’ini anında görüyorsun. git log ile git show arasında gidip gelmene gerek kalmıyor. Ham git komutlarını hâlâ sürekli kullanıyorum ama işlerin çoğu için lazygit çok rahat.

yazi

Yan tarafında canlı önizleme olan bir terminal dosya yöneticisi. Bir dosyayı seçtiğinde içeriğini gösteriyor. Kod ise renklendirilmiş halde, markdown ise düzgün işlenmiş halde, görsel ise (iTerm2 sağ olsun) doğrudan resim olarak. Hiç bilmediğin bir projeyi editör açmadan gezip okumak için birebir. yazi yazınca başlıyor.

brew install yazi             # Windows: scoop install yazi
TuşNe yapar
h / lKlasörden çık / içine gir
j / kYukarı / aşağı
qÇık

Shell ayarını yaparsan çıkarken seni gezindiğin klasöre cd yapıyor. Yani derin bir klasöre yolun tamamını yazmadan hızlıca gitmenin de bir yolu.

Küçük Alışkanlıklar

Alias’lar. Sık yazdığın komutları kısaltmak lazım. .zshrc (ya da .bashrc) dosyasına ekleyip source ~/.zshrc diyorsun.

alias gs="git status"
alias gl="git log --oneline --graph --decorate"

Geçmişte arama. Ctrl+R‘a basıp eski bir komuttan aklında kalan herhangi bir şeyi yaz. Tekrar bastıkça daha eskilere gidiyor. bash ve zsh’ta zaten hazır, ayar gerektirmiyor.

Tab ile tamamlama. Bir branch adını ya da dosyayı yarım yazıp Tab‘a bas. Eklentilerin varsa flag’leri ve git branch’lerini bile tamamlıyor.

Kurmaya değer iki şey. zoxide en çok gittiğin klasörleri öğrenen akıllı bir cd. Bir süre sonra z proj deyince seni doğrudan oraya atıyor. fzf ise hem Ctrl+R‘ı hem dosya aramasını çok daha iyi hale getiren bir arama aracı.

brew install zoxide fzf

Bunların hiçbiri “gerçek terminalci böyle olur” ayağı değil. Ben hâlâ uzun yazı yazacağım zaman normal editöre geçiyorum. Ama bir yazılımcının günlük akışı için, yani dosyalar arasında dolaşmak, git işlerini halletmek, config düzenlemek için hep aynı klavye odaklı ortamda kalmak, farkında olmadan çektiğin bir sürü küçük derdi ortadan kaldırıyor. iTerm2 ya da Windows Terminal ile başla, panik yapmayacak kadar Vim öğren, lazygit ve yazi’yi ekle. Topu topu bir öğleden sonralık iş.

About Barış Gündüz
Web ve mobil teknolojilere ilgi duyuyorum. Yaklaşık 12 yıldır web geliştirme ve internet reklamcılığı üzerinde çalışıyorum. Web yazılım teknolojileri ve yönetimi konusunda uzmanım. Birçok şirkete teknoloji ve reklamcılık danışmanlığı verdim. Hâlâ bazılarına destek vermeye devam ediyorum. Kendi projelerimle ilgili bazı çalışmalarım var. Çoğu içerik üreticiliği ile ilgili. Projelerimin hepsi Gündüz Medya markası altında toplanmıştır.
Barış Gündüz posts
No comments

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir