Arama ve Eşleştirme

Next: Diğer Dosyaların Metne Eklenmesi Up: vi Editörü Previous: Kopyalama

## Arama ve Eşleştirme

vi'da çalışırken arama yapmak isteyebilirsiniz. Eğer üzerinde çalıştığınız metin uzun ise belirli bir kelime veya kelime gruplarını aramak çok zaman alabilir. Komut modunda iken `/' karakterine basarak arama/tarama konumuna geçin. Ekranın en alt kısmında bir satır açılacaktır. Aramak istediğiniz kelimeyi yazın ve ENTER tuşuna basın. vi editörü imlecin bulunduğu yerden itibaren girilen anahtar sözcüğü metin içinde tarayacaktır. Eğer aranan kelime bulunmuşsa satır bunun üzerine konumlandırır.

`/' komutu dosyanın sonuna doğru arama yaparken `?' komutu başa doğru gider. Aynı kelimeyi tekrar aratmak için `n' tuşuna basın. Arama işlemi, `/' komutu yardımıyla yapılmışsa ileri doğru, `?' komutu yardımıyla yapılmışsa geriye doğru tekrar başlayacaktır.

Aslında arama yaparken komut modunda girilen her karakter grubu bir düzgün deyimdir. Örnek olarak komut modunda `d$' yazdığımızda $ harfinin satır sonunu belirttiğini, `dG' komutundaki `G' harfinin de metin sonunu işaret ettiğinden imlecin bulunduğu yerden itibaren dosya sonuna kadar sildiğini görmüştük. Metin içindeki büyük harfleri aramak için

    /[A-Z]

kullanılabilir. Burada gösterebildiğimiz özellikleri vi'ın sadece küçük bir parçasıdır. vi kullanıcılarının işine yarayabilecek birkaç arama-eşleştirme komutuna göz atalım.

`:[a,b]s/deyim/eşlenecek deyim/işleç`

Yukarıdaki komut metin içinde a ve b satırları arasındaki ``deyim''i, ``eşlenecek deyim''e çevirir. Özel tanımlı karakterleri de kullanabilirsiniz. Aşağıdaki komut da 1. ve 10. satırları arasında bulduğu tüm ``nümerik'' kelimelerini ``sayısal'' hale getirir.

`:1,10s/nümerik/sayısal;`

Satır sayısı yerine tüm dosya üzerinde eşleştirme yapmak için % sembolünü, satır sonunu belirtmek için $ sembolünü kullanabilirsiniz. Bu durumda satır sayısını belirten [a,b] tanımını boş bıraktığınızda değişiklik sadece imlecin bulunduğu satırda yapılacaktır. İşleçler de birkaç çeşit olabilir. `c' işleci, her eşleme öncesi kullanıcıdan izin alır. vi kullanırken çoğu durumda her satırda rastlanan ilk eşlemeyi yerine getirecek olan `g' işlecini kullandığınızı göreceksiniz. Daha az kullanılan `i' işleci ise aramanın büyük-küçük harf gözetimi yapmadan yerine getirmesini sağlar.

    :%s/elektronik/s/ik//g

komutu, içinde ``elektronik'' kelimesi geçen her satırdaki ``elektronik'' kelimesini ``elektron'' haline getirir. Fakat ``mekanik'' kelimesine dokunmaz. Sed altında kullanılan ``\`(`\`)' operatörü vi için de geçerli bir tanımdır. Aşağıdaki komut da yukarıdaki uygulamaya benzer şekilde her ``kalemlik'' kelimesini ``kalemler'' haline getirir.

    :%s/\(kalem\)lik/\1ler/g

Next: Diğer Dosyaların Metne Eklenmesi Up: vi Editörü Previous: Kopyalama