Bu ayki yazılım tanıtımı köşemizde size, kod yazmaktan tutun da bu dergi yazılarını yazmaya kadar bir sürü iş için severek kullandığım metin düzenleyiciyi (text editor) anlatacağım: vi (vim, gvim)
Vi (vi-ay şeklinde okunur), ister terminal içinde, ister ayrı bir pencere olarak açılabilen; alışması zor, ama alışıldı mı da bırakılmayan hızlı bir metin düzenleyicidir. Vi, genellikle Linux dağıtımlarıyla beraber gelmektedir. Bir terminal açıp "vi" komutunu girdiğiniz zaman, vi, terminal penceresinin içinde açılacaktır. gvim komutunda ise, metin düzenleyicimiz farklı bir pencerede açılacaktır. Eğer böyle bir komutun bulunmadığını bildiren bir hata alırsanız, vi bilgisayarınızda kurulu değil demektir. Bu durumda kullandığınız dağıtımın paket deposundan vi, vim ve gvim paketlerinden birini yüklemeniz gerekmektedir. Ayrıca bir Windows kullanıcısıysanız, vi'ın windows sürümünü de kurabilirsiniz.
Vi'ın diğer metin düzenleyicilerde olmayan güzel bir özelliği, kullanım sırasında fareye hiç ihtiyaç duyulmaması. Bu özellik vi'ı, 10 parmak klavye kullanan ve fare kullanmayı zaman kaybı olarak gören birçok insanın favorisi haline getirmiştir.
Vi kullanımı
Vi'da 3 temel işlem modu bulunmaktadır. Bunlar:
- Komut modu (command mode)
- Yazım modu (input mode)
- Son satır modu (last line mode)
vi <dosya adı>
Komutunu girdiğiniz zaman, vi, yazdığınız dosyayı açacaktır. Dosya ilk açıldığında, komut modunda olacaksınız ve en altta "dosya adı [New File]" yazısını göreceksiniz.
Şimdi "i" tuşuna basın ve yazım moduna geçin. Bu sefer de en alt satırda "--INSERT--" yazdığını göreceksiniz. Bu bastığınız tuşların metin olarak dosyaya ekleneceğini gösterir. Birkaç şey yazın ve dosyayı kaydedin. Kaydetmek için önce Esc tuşuna basın. Esc tuşuna basmanızla, komut moduna girmiş olacağız. Komut modunde : tuşuna basarak da son satır moduna gireceğiz. Bu modda write (veya kısaca w) yazıp Enter tuşuna basarak dosyayı kaydedebiliriz. Dosyadan çıkmak içinse yine son satır modunda q(uit) kullanmamız gerekecek. Şimdi size, vi'da kullanılan belli başlı komutları sıralayacağım:
Yazım moduna geçmek için (komut modundayken):
- a : İmlecin sağından yazmaya başla (append after cursor)
- A : İmlecin bulunduğu satırın sonundan yazmaya başla (append after the end of current line)
- i : İmlecin solundan yazmaya başla (insert before cursor)
- I : İmlecin bulunduğu satırın başından yazmaya başla (insert before the beginning of current line)
- o : İmlecin bulunduğu satırın altına yeni bir satır aç ve yazmaya başla (open new line below current line and insert to new line)
- O : İmlecin bulunduğu satırın üstüne yeni bir satır aç ve yazmaya başla (open new line above current line and insert to new line)
Komut modunda metin silmek için (n sayıları opsiyoneldir):
- n**x :** İlk karakterden itibaren n tane karakteri siler. (Örn: "10x")
- n**X :** Geriye doğru n tane karakteri siler.
- n**dw :** İlk kelimeden itibaren n tane kelimeyi siler.
- n**db :** Geriye doğru n tane kelimeyi siler.
- n**dd :** İlk satırdan itibaren n tane satırı siler, silinen satırları tampon belleğe alır.
- D : İmleçten itibaren satırın sonuna kadar siler.
Komut modunda metin kopyalayıp yapıştırmak için:
- n**yy :** n tane satırı tampon belleğe alır. (Örn: "5yy")
- p : Tampon bellekteki metni, imlecin soluna yapıştırır.
Son satır modu komutları:
- :w dosyaadi : dosyaadı adıyla dosyayı kaydeder. dosyaadı yazılmazsa üzerinde çalışılan dosyaya kaydeder.
- :q : vi'dan çıkar. Eğer dosya üzerinde herhangi bir değişiklik yapmışsanız, bunu belirtir ve çıkmaz.
- :wq : Değişiklikleri kaydederek vi'dan çıkar.
- :q! : Değişiklikleri kaydetmeden vi'dan çıkar.
- :e dosyaadı : dosyaadı isimli dosyayı vi ile açar. Eğer üzerinde çalışılan dosyada değişiklik yapıldıysa bunu belirtir ve çıkmaz.
- :e! dosyaadı : dosyaadı isimli dosyayı vi ile açar. Üzerinde çalışılan dosyadaki değişiklikleri görmezden gelir.
- :r dosyaadı : dosyaadı isimli dosyayı çalışılan dosyaya ekler.
- :n : İmleci n numaralı satıra götürür. (Örn: ":52")
Seçenekler:
- :set showmatch : Kapama parantezi konduğu zaman, eşleniği olan parantezi gösterir.
- :set number : Satır numaralarını gösterir.
- :set tabstop=_n_ : Tab tuşu uzunluğunu n adet boşluğa çevirir.
Bunların dışında vi'da bir de görsel mod (visual mode) bulunmaktadır. Komut modundayken v tuşuna basarak geçebileceğiniz görsel modda (en altta --VISUAL-- yazar), kopyalamak istediğiniz metin parçasını seçip yy ile kopyalarsınız. Daha sonra da p ile istediğiniz yere yapıştırırsınız. Eğer karakter değil de satır olarak seçmek istiyorsanız V ile görsel moda geçersiniz (en altta --VISUAL LINE-- yazar).
Son olarak komut modunda u(undo)'ya basarak son yaptığınız değişiklikleri geri alabilirsininiz.
Vi'ın komutları tabii ki sadece bunlarla sınırlı değil.. Fakat bu kadarının başlangıç için yeterli olduğunu düşünüyorum. Unutmayın, vi'ı kullandıkça sevecek, sevdikçe daha fazla kullanacaksınız ;)