Vi editörü hakkında FreeBSD 6 kitabı için yazdığım kısmı burada yayınlıyorum.
1
Vi Editörü
Vi editörü tüm UNIX
ve Linux dağıtımlarıyla birlikte gelen ve yaygın bir kullanıcı kitlesi olan bir
metin editörüdür. Komut satırından çalışmaktadır ve dosya oluşturmak, var olan
dosyada değişik yapmak için kullanılır.
Vi’da kabaca iki
farklı mod vardır. Birincisi komut diğeri yazı modu. Vi editörü çalıştığında
komut modunda açılır.
Komut modunda
editöre sadece komutlar gönderilir. Verilen komutlar ekranda yazı olarak
gözükmez. Bu komutlar satır, kelime silme, dosyada aşağı, yukarı, sağa, sola
hareket etme, dosyada kelime arama vs amaçlı verilebilir.
Yazı modunda ise
basılan her karakter ekrana veri olarak yazılır. Yazı modundan komut moduna
geçmek için ESC tuşu kullanılır. Fakat komut modunda iken bir başka komut
çalıştırmak için ESC tuşuna basmaya gerek yoktur.
Genel kullanım
biçimi aşağıdaki gibidir.
# vi
[parametreler] dosyaadı
Not: Bu bölümde
imlecin yerini belirtmek için imlecin olduğu karakterin altı çizili olarak
gösterilecektir.
1.1 Dosya Açma Kapama İşlemleri
Örneğin deneme
dosyası oluşturmak için aşağıdaki komut verilir.
#
vi deneme
~
~
~
deneme: new file: line 1
Buradaki ~ ifadesi boş satırları ifade eder. Satırlara
yazı yazıldıkta bu ifade kaybolur.
En altta da
dosyanın adının deneme olduğu ve yeni oluşturulan bir dosya olduğu
belirtiliyor. Yukarıda belirtildiği gibi vi şu anda komut modundandır. Bu
durumda iken i tuşuna basılarak yazma moduna geçilir ve yazılmak istenen metin
yazılır.
Bu bir deneme metnidir.
~
~
Yazma işlemi
bittiğinde dosyayı kaydetmek için önce ESC tuşuna basılır sonra :w (iki nokta
üst üste ve w) tuşuna basılır.
Bu bir deneme metnidir.
~
~
deneme: 1 lines, 24 characters.
Değişiklikleri :w ile yazdıktan sonra dosyadan çıkmak için
:q komutları verilir. Değişikliği yazıp çıkmak içinse :x komutu veya :wq verilir
.Yapılan değişiklikler kaydedilmeden çıkılacak olursa vi
“File modified since last complete write;
write or use ! to override.” uyarısını verecektir. Bu
durumda değişiklikler kaydedilmelidir veya kaydetmeden çıkmak için :q! komutu verilir. dosyayı farklı bir isimde
kaydetmek için :w yenidosyadı komutu
verilir.
1.2 Vi’de Hareket Etme ve Yazma
Yazma ve dosya
içerisinde hareket etmek için aşağıdaki vi komutları kullanılır.
i İmlecin bulunduğu yerin bir
gerisinden yazmaya başlar.
a İmlecin bulunduğu yerin bir
ilerisinden yazmaya başlar.
ENTER ENTER tuşu ile bir alt satırdan
yazmaya devam edilir.
o (Küçük O harfi) Bir alt satırda boşluk açıp satır başından
yazma moduna geçer.
O (Büyük O harfi) Bir üst satırda boşluk açıp satır başından
yazma moduna geçer.
I (Büyük I harfi) Bulunan satırın başına geçip yazma
moduna geçer.
A Bulunan satırın sonuna geçip yazma
moduna geçer.
j Bir satır aşağı inilir.
k Bir satır yukarı çıkılır.
l Bir karakter sola geçilir.
h Bir karakter sağa geçilir.
0 (Sıfır ) Bulunan satırın başına geçer.
$ Bulunan satırın sonuna geçer.
w imlecin
bulunduğu yerden bir sonraki kelimenin başına geçer.
b imlecin bulunduğu yerden bir önceki
kelimenin başına geçer.
:0 Dosyanın ilk satırına geçer.
:$ Dosyanın en son satırına geçer.
:satır numarası Dosyanın belirtilen satır
1.3 Vi’da Silme ve Kopyalama
Yazı modunda iken
backspace tuşu ile karakterler silinebilir. Komut modunda ise x komutu ile
imlecin üzerinde bulunduğu karakter silinir. Birden fazla karakter silmek için
bu komut art arda kullanılır. Veya imlecin bulunduğu yerden itibaren silinecek
karakter sayısı ve x komutu verilir. Örneğin aşağıdaki satırda imleç i harfi
üzerinde iken ve komut modunda iken 4x komutu verildiğinde
Bu bir deneme metinsdr.
~
Sonuç aşağıdaki
gibi olacaktır.
Bu bir deneme metr.
~
Diğer silme
komutları aşağıdaki gibidir:
dw İmlecin olduğu yerden itibaren kelimenin geri
kalan kısmını siler.
db İmlecin olduğu yerden kelimenin başına kadar olan
kısmı siler.
D İmlecin olduğu yerden satır sonuna kadarki tüm
karakterleri siler.
dd İmlecin bulunduğu satırı tamamen siler.
Kopyalama içinse
aşağıdaki komutlar kullanılır.
y Yakalamak (yank) manasına gelir. Tek bir
karakteri kopyalar. Kopyalanan karakter
p komutu ile imlecin konumun sağına yapıştırılır.
yy İmlecin olduğu satır kopyalanır. Yine p komutu
ile yapıştırılır.
P Büyük P
komutu ile de kopyalanan satır imlecin bir üstündeki satıra yapıştırılır.
Örneğin
Aşağıdaki dosyanın
ilk satırını dosyanın sonuna kopyalamak için birinci satırda iken yy komutu
verilir dosyanın sonuna :$ ile geçilir ve p komutu verilir.
Bu bir deneme metnidir.
Bu bolumde vi editoru anlatilacaktir.
~
Sonuç aşağıdaki
gibi olacaktır:
Bu bir deneme metnidir.
Bu bolumde vi editoru anlatilacaktir.
Bu bir deneme metnidir.
~
Dosyanın en son
satırında iken p yerine P komutu verilseydi sonuç aşağıdaki gibi olacaktı:
Bu bir deneme metnidir.
Bu bir deneme metnidir.
Bu bolumde vi editoru anlatilacaktir.
~
Hata yapıldığında
yapılan değişiklik u komutu ile geri alınır. Bu komut ile sadece son komutta
yapılan değişiklikler geri alınır. Tekrar u komutu verilirse yapılan değişiklik
tekrar gelir (redo)
1.4 Vi’de Değiştirme ve Arama
Tek bir karakteri değiştirmek için imleç
ilgili karakterin üzerindeyken r komutuna basılır ve hemen ardından yeni
karakter tuşlanır, işlem sonunda vi komut moduna döner.
s komutu ile de birden fazla karakter değiştirilebilir. Komutun başına
değiştirilecek karakter sayısı yazılır. Bu komutla vi yazı moduna geçer.
cw (change word) komutu ile bir kelimenin tamamen silinip yerine yenisi
yazılır. Kelimenin başında iken cw komutu verildiğinde kelime silinecek, vi
yazı moduna geçecektir. Eğer komut
kelime ortasında verilirse imleçten kelime sonuna kadar olan karakter
silinecektir.
~ komutu ile imlecin üzerindeki harf büyükse küçük, küçükse de büyük
harf yapılır.
Metin içerisinde geçen
bir karakter veya kelimeyi aramak için / komutu kullanılır. / komutu
verildiğinde arama moduna geçilir ve ekranın en alt kısmında / ile başlayan bir
satır oluşur. Buraya aranacak kelime yazıldıktan sonra ENTER tuşuna basılır.
Aranan kelime metinde varsa imleç bu kelimenin üzerine gidecektir. metin içerisinde aramaya devam etmek için n
komutu kullanılır.
Örneğin aşağıdaki
metinde vi kelimesi aratıldığında
Bu bir deneme metnidir.
Bu bolumde vi editoru anlatilacaktir.
vi unix dunyasinda yaygin olarak kullanilan
bir editordur.
~
/vi
Bu bir deneme metnidir.
Bu bolumde vi editoru anlatilacaktir.
vi unix dunyasinda yaygin olarak kullanilan
bir editordur.
~
n komutu verilirse
imlecin yeri aşağıdaki gibi değişecektir.
Bu bir deneme metnidir.
Bu bolumde vi editoru anlatilacaktir.
vi unix dunyasinda yaygin olarak kullanilan
bir editordur.
~
/ yerine ? komutu kullanılırsa geriye doğru arama yapılır.
Metinde geçen bir
kelimeyi değiştirmek için :%s komutu kullanılır. Komutun kullanım şekli aşağıdaki gibidir.
:s/eski/yeni Sadece imlecin bulunduğu satırdaki eski değeri yeni olarak değiştirir.
:%s/eski/yeni/g Tüm metin içerisinde değişiklik yapar. g
değerinin yanına c değeri de eklenerek (:%s/eski/yeni/gc) değişiklik yapılmadan önce onay alınabilir.
Aslında buradaki
eski ve yeni değerleri birer düzenli ifadedir (regular expression). Düzenli
ifadeler kullanılarak ileri seviye değişiklikler yapılabilir.
Örneğin aşağıdaki
metindeki Pazar ifadesini Pazartesi yapmak için:
Bu Pazar enderunix toplantisi yapilacaktir.
Pazar gunu gorusmek uzere....
~
:%s/Pazar/Pazartesi/g komutu verilir.
Bu Pazartesi enderunix toplantisi
yapilacaktir.
Pazartesi gunu gorusmek uzere....
~
1.5 Diğer komutlar
En son komutu
tekrar çalıştırmak için sadece . (nokta) tuşuna basılması yeterlidir.
:set number veya
kısaca :set nu komutu verilerek satırların yanında satır numarasının gözükmesi
sağlanabilir
# vi
deneme
Bu bir deneme metnidir.
Bu bolumde Acik Akademi yayinlarindan cikan
FreeBSD 6 kitabi hakkinda bilgi verilecektir.
~
~
:set
nu
komutu verildiğinde
ekran aşağıdaki gibi gözükecektir:
1 Bu bir deneme metnidir.
2
3 Bu bolumde Acik Akademi yayinlarindan cikan
FreeBSD 6 kitabi hakkinda bilgi verilecektir.
~
~
Satırları tekrar
numarasız hale getirmek için de
:set
nonu veya
:set nonumber
komutu verilir.
:r
dosya komutu
ile dosya içeriği mevcut dosya aktarılır.
İsmail Yenigül
Not: Açık Akademi
FreeBSD 6 kitabından alınmıştır.