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ısayol | Ne yapar |
|---|---|
Cmd+D | Dikey böl |
Cmd+Shift+D | Yatay böl |
Cmd+F | Geç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.
| Komut | Ne yapar |
|---|---|
i | Insert modu (yazmaya başla) |
Esc | Normal moda dön |
:w | Kaydet |
:q | Çık |
:wq | Kaydet ve çık |
:q! | Kaydetmeden çık (acil çıkış) |
gg / G | Baş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 |
|---|---|
Space | Dosyayı (ya da diff’teki satırı) ekle / geri al |
c | Commit |
P / p | Push / pull |
Tab | Paneller 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 / l | Klasörden çık / içine gir |
j / k | Yukarı / 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ş.





No comments