intranet-vi-editoru

VI Editörü

 

VI temel olarak “command”, edit/insert olmak üzere iki moddan oluşur.

 

1- Command Modu

Bu kısmında klavyeden basılan tuşa göre değişik komutları gerçekleştirilir.

Örneğin “dd” komutu imlecin bulunduğu satırı siler.

 

2- Edit Modu

Bu kısım klavyeden metin girişi yapılmasına olanak sağlar.

 

VI Editöre Giriş

 

VI editörünü kullanmaya başlamak için Unix promptunda “vi” komutu kullanılır.

 

“vi ceren” komutu vererek “ceren” isimli geçici bir dosya açabiliriz. “ceren” dosyası bulunulan dizinde mevcut ise o dosya açılacaktır. Bize hangi işlemi yapmak istediğimizi soracaktır.

 

VI'da Modlar Arası Geçiş

 

Insert moduna girip veri girişi yapabilmek için klavyeden “insert” tuşuna, veya buna alternatif olarak “i”, “a”, “o” tuşlarından herhangi birine basmak yeterlidir. insert mod açıldığında alt kısımda büyük harflerle “INSERT” yazacaktır. Daha sonra tekrar command moda geçiş yapmak için ise “esc” tuşuna basmak yeterli olacaktır.

 

Belge içerisinde klavyedeki yön tuşları kullanılarak rahatlıkla hareket edilebilir.

 

VI'da Kullanılan Temel Komutlar

 

“Esc” tuşuna basarak command modda komutlarınızı girmeye başlayabiliriz.

 

Dosya Komutları

:w => Dosyayı kaydeder.

L: Line/Satır sayısı C:Character/Karakter sayısı.

:w [dosya_adi] => Dosyayı belirtilen isimde veya adreste farklı kaydeder. :w! [dosya_adı] şeklinde yazıldığında ise adreste mevcut dosya olsa bile üzerine kaydedilir.

 

:q => yapılan değişiklikler kaydedilmiş ise vi düzenleyicinden çıkmanızı sağlar.

:q! => vi düzenleyicinden kaydedilmemiş işlem olsa da çıkmanızı sağlar. Dosya tekrar açıldığında en son ne zaman kaydedilmiş ise oradan devam edilebilir.

:wq => Kaydedip çıkmamızı sağlar (bunun yerine daha pratik olarak Shift+z+z kullanılablir).

 

:h veya :help => Yardım menüsünü açar. Yardım menüsü açık olduğu sürece uygulanan işlemler yardım metninde gerçekleşir. :help w veya :help d gibi belirli komutlar için de yardım alınabilir.

:help version4 & :help version5 & :help version6 => Versiyona ait spesifik bilgiler iceren yardım menüsü açılır.

 

Yardım menüsünden çıkmak ve çalışmanıza geri dönebilmek için :q komutunun uygulanması gerekir.

:/aranacak_kelime => Verilen kelimeyi arar. Bulunan kelimeler yine turuncu renk ile işaretlenir. Aşağıdaki örnekte :/sayar şeklinde arattığımızda gelen sonuç verilmiştir. :?aranacak kelime şeklinde aratıldığında ise yukarı doğru arar.

/aranacak_kelime => bu şekilde arama yapıldığında bulunan kelimeler seçilmiş olarak gösterilir, fakat turuncu olarak işaretlenmez. ?aranacak kelime şeklinde aratıldığında ise yukarı doğru arar.

 

:r !date => İmlecin bir alt satırına tarih bilgisi ekler.

:r !KOMUT => Unix komutlarına eriştikten sonra bu komutun çıktısını editör içine aktarmasını sağlar. Örneğin “cerenb” isimli bir metin üzerinde işlem yaparken editör dışına çıkmadan dizin listesini görüntülemek için ise :r !ls yazmak gerekir.

:r [dosya_adı] => imlecin bulunduğu yerden itibaren belirtilen dosyanın içeriğini üzerinde çalıştığımız dosyaya kopyalar. Aşağıdaki örnekte aynı içerikteki “cerenb” dosyası mevcut dosyanın sonuna ekleniyor. Dosya adı kısmına dosya yolu da yazılabilir.

:! [komut_adı] => vi editörü altında çalışırken kabuk komutlarının tümünü kullanmamızı sağlar.

Örneğin :!ls bulunduğumuz dizindeki dosya isimlerini listeler.

 

:e [dosya_adı] => [dosya_adı] yerine yazılan dosya üzerinde değişiklik yapmak için bu komut uygulanır.

:e + [dosya_adı] => [dosya_adı] yerine yazılan dosya üzerinde değişiklik yapmak için bu komut uygulanır.

 

:[range] [align] [width] => Belirtilen aralıktaki satırları yaslamak için kullanılır. Mesela :3,10 right 50 komutunu uyguladığımızda 3. satırdan itibaren 10 satıra kadar olan kısmı 50 karakter sayarak sağa yaslar. Veya :2,4 right 50 komutunu uygularsak 2. satırtan 4 satıra kadar ortalar.

 

Kısaltma operatörü: VI editöründe yararlanılan bir EX editörü komutu abbreviate'tir. Bu özellik, belirtilen katarlar için kısaltmalar yapabilmenizi sağlar. Örneğin "Ceren Bilgisayar ve Yazılım ltd. sti." adını sürekli yazmanız gerekiyorsa fakat bütün ismi yazmak istemiyoranız bunun için bir kısaltma kullanabilirsiniz. Bu örnek için komutumuz şöyle girilebilir:

:ab cby Ceren Bilgisayar ve Yazılım ltd. sti.

Bundan sonra cby yazdığınızda VI onu otomatik olarak “Ceren Bilgisayar ve Yazılım ltd. sti.” şeklinde gösterecektir. Fakat cby'nin diğer harflerden bağımsız olması gerekir. Örneğin cbyl şeklinde yazdığınızda bunu değiştirmez. :una cby komutu Önceden ":ab" ile tanımlanmış "cby" kısaltmasını kaldırır.

 

Metin Derleme Komutları

 

u => Yapılan işlemleri tek tek geriye alır. İngilizce “undo” kelimesinin baş harfidir.

U => Yapılan son işlemi geriye alır. Birden fazla geri almaz, tekrar basınca son eri almayı iptal eder.

 

>> => shift tuşu işlevi görür.

<< => shift işlemini geri kalır.

 

x => Sadece imlecin üzerinde bulunduğu karakteri siler. Öncesinde sayı girildiğinde imlecin üzerinde bulunduğu karakterden itibaren girilen sayı kadar karakteri siler.

X => İmlecin bulunduğu yerden geriye doğru bir karakter siler. Öncesince sayı girildiğinde ise imlecin üzerinde bulunduğu karakterden geriye doğru girilen sayı kadar karakteri siler.

 

dw => İmlecin bulunduğu kısımdan itibaren kelimeyi siler. Yani ilk boşluğa kadar olan kısmı siler.

dd => imlecin bulunduğu satırı komple siler. [sayi]dd şeklinde girildiğinde ise [sayi] yerine gelen sayı kadar satırı komple siler

D => imlecin bulunduğu yerden itibaren satırı siler.

d [yön tuşu] => d'ye bastıktan sonra sağ yön tuşuna basılır ise önceki karakter, sol yön tuşuna basılır ise sonraki karakter, yukarı yön tuşuna basılırsa üstteki satır, aşağı yön tuşuna basılır ise aşağıdaki satır silinir.

 

yy => İmlecin bulunduğu satırın içeriğini belleğe alır. yy komutunun öncesinde sayı girildiği takdirde imlecin bulunduğu satırdan itibaren girilen sayi kadar satiri bellege kopyalar.

 

p => Kopyalanan, bellekte kayıtlı metni imlecin bulunduğu yere yapıştrır.

P (büyük) => Bellekte kayıtlı metni imlecin bulunduğu yerden öncesine yapıştırır.

 

[sayi]jp => Bellekte kayıtlı olan metni [sayi] yerine gelen sayı kadar satır aşağıya yapıştırır.

. => Yazım modundayken bir satırda en son yazılanları komut modunda tekrar yapıştırır.

 

A => İmlecin bulunduğu satırın sonundan itibaren yazım (insert) moduna geçer

a => imlecin bulunduğu yerin bir sonraki karakterinden itibaren yazım (insert) moduna geçer

 

I => İmlecin bulunduğu satırın başından itibaren yazım (insert) moduna geçer

i => imlecin bulunduğu yerden itibaren yazım (insert) moduna geçer

 

R => Replace yazim moduna geciş sağlar.

 

r[x] => İmlecin üzerinde bulunduğu karakteri [x] yerine yazilan harf ile değiştirir. Tek harf için “replace” modu diyebiliriz. Komut modundayken pratik bir şekilde ufak hataları düzeltmek için kullanılır.

xp => İmlecin bulunduğu yerdeki karakterle bir sonraki karakteri yerini değiştirir.

 

s => İmlecin üzerinde bulunduğu karakteri silerek “Insert” yazım moduna geçer. Yerine başka bir metin yazılmasını sağlar.

S => İmlecin bulunduğu satırı komple silerek “Insert” yazım moduna geçer.

 

o => İmlecin bir altında bir satır boşluk bırak.

O => İmlecin bir üstünde bir satır boşluk bırak.

 

c [yön tuşu] => c'ye bastıktan sonra sağ yön tuşuna basılır ise önceki karakter, sol yön tuşuna basılır ise sonraki karakter, yukarı yön tuşuna basılırsa üstteki satır, aşağı yön tuşuna basılır ise aşağıdaki satır silinir. Ve “insert” moduna geçer.

 

J => İmlecin bulunduğu satırı bir sonraki satır ile birleştirir.

 

Set (ayarlama) Komutları

 

Set komutları kolaylık sağlayan kişisel ayarlarımızı yapılandırmamız için sunulmuş bir özelliktir. Bazı özellikler :set nonumber örneğinde olduğu gibi “no” öneki getirilerek iptal edilir. Bazıları ise sonuna ünlem “!” işareti alınarak geri çevrilir. :set all komutu yardımıyla mevcut ayarlarınızı görüntüleyebilirsiniz. Aşağıda bazı özelliklerin örneğini verdim.

 

:set ruler Cetveli gösterme komutudur. Sağ alt köşede hangi satır ve sütunda olduğumuzu gösterir. Cetveli gizlemek için :set noruler komutunu uygulamak gerekir. Cetvel varsayılan olarak gözükür.

 

:set number Satır başlarına numaralar koyar. Bu numaralandırma sarı fontta olur ve imlec numaraların üzerine gelmez. :set invnumber veya :set nonumber ise :set number komutuyla yapılan numaralandırmayı kaldırır.

:set ignorecase smartcase : Bu ayar bölü işareti(/) kullanarak Vim'de arama yaparken büyük-küçük harf ayrımının nasıl çalışacağını belirtir. Eğer arama yaparken hiç büyük harf yazmadıysanız, arama büyük-küçük harfler göz önüne alınmaksızın yapılır. Eğer aranması için yazdığınız kelimede en az bir büyük harf varsa, arama büyük-küçük harf ayrımına uyar. Örnek bir metin ve arama sonuçları aşağıdaki gibi olacaktır.

 

:set ignorecase! : Sondaki ünlemin anlamı bu ayarın "ignorecase" ayarını tersine çevirdiğidir, yani aramalarda her zaman büyük-küçük harf ayrımı gözetilir.

 

:set hlsearch : Arama işlemi sonucunda bulunan kelimenin parlak bir renkte işaretlenmesini sağlar. Böylelikle kalabalık bir dosyanın içinde aradığınız kelimenin nerelerde geçtiğini çok kolay görebilirsiniz.

 

:set incsearch : Arama yaparken, '/' karakterine bastığınız andan itibaren arama yapmaya başlanır. Arayacağınız kelimenin tamamını yazmadan, sadece yazdığınız kısmı dosya içinde aranır. Üstte açıklanan "hlsearch" ayarıyla birlikte kullandığınızda, aranan kelime dosyada yoksa hemen fark edebilirsiniz, ya da aradığınız kelimenin tamamını yazmadan yerini bulabilirsiniz.

 

:set showcmd : Komut modundayken girdiğiniz komutu ekranın en alt satırında görebilmenizi sağlar. Komutlar için ne yazdığınızı görebilmenizi ve yanlış bir şey yazdığınızda geri silme tuşuyla(backspace) komutu iptal edebilmenizi sağlar. Örneğin üç satır kopyalamak için "3yy" yazarken, siz ilk tuşa bastığınızda vim'in en alt satırında önce '3' daha sonra '3y' görünür.
 

:set shiftwidth=4: >> ve << ile bırakılan tab boşluğunun karakter sayısını belirler.

 

Gezinme Komutları

+ => İmleci bir sonraki satıra götürür.

=> İmleci bir önceki satıra götürür.

h => imlecin bulunduğu yerden 1 pozisyon sola gider. İşlevi klavyedeki sol yön tuşuyla aynıdır.

l => imlecin bulunduğu yerden 1 pozisyon sağa gider. İşlevi klavyedeki sağ yön tuşuyla aynıdır.

j => imlecin bulunduğu yerden 1 pozisyon aşağıya iner. İşlevi klavyedeki aşağı yön tuşuyla aynıdır.

k => imlecin bulunduğu yerden 1 pozisyon yukarıya çıkar. İşlevi klavyedeki yukarı yön tuşuyla aynıdır.

fx => bir sonraki x karakterinin üzerine git.

tx => x'ten bir önceki karakterin üzerine git.

mx => İmlecin bulunduğu yeri hafızaya al.

'x => İmleci hafızada kayıtlı olan satırın başına götür.

`x => İmleci hafızada kayıtlı olan yere götür.

w => Bir sonraki sözcüğün ilk karakterine gider. (Noktalamalar da sayılır)

b => Bir önceki sözcüğün ilk karakterine gider. (Noktalamalar da sayılır)

e => Bir sonraki sözcüğün son karakterine gider. (Noktalamalar da sayılır)

W => Boşluk ile ayrılmış bir sonraki sözcüğün ilk karakterine gider.

B => Boşluk ile ayrılmış bir önce sözcüğün ilk karakterine gider.

E => Boşluk ile ayrılmış bir sonraki sözcüğün son karakterine gider.

) => Bir sonraki cümlenin başına git. (Noktadan sonra boşluk yok ise cümle olarak sayılmaz.)

( => Bir önceki cümlenin başına git. (Noktadan sonra boşluk yok ise cümle olarak sayılmaz.)

} => Bir sonraki paragrafa git. (Boş bırakılan satırlar paragraf olarak sayılır)

{ => Bir önceki paragrafa git. (Boş bırakılan satırlar paragraf olarak sayılır)

Home => Satirdaki ilk karaktere git.

End => Satirdaki son karaktere git.

H => İlk karaktere git.

L => İmleci ekranda yer alan son satıra götür.

M => İmleci en ortadaki satıra götür.

G => Son satıra gider.

gg => İlk satıra gider.

Space (boşluk) => İmlec bir sonraki karaktere ilerler.

% => ( ) , { } gibi parantez karakterlerine gider.

[sayi] | => Satır içerisindeki [sayi] yerine girilen kolona gider. Örneğin klavyeden 15| girilir ise imleç satır içerisindeki 15. harfin üzerine gelir.

0 => Satırın başına git.

$ => Satirin sonuna git.

^ => Satırda boşluk dışındaki ilk karaktere git.

 

VI'da Kullanılan Temel Tuş Fonksiyonları

 

“Command” modundayken kullanabileceğiniz tuş fonksiyonlarından bazıları aşağıdaki gibidir.

 

CTRL + ALT + (-/+) => Yazı çözünürlüğünü değiştirir.

TAB => Komutun bir kısmını yazdıktan sonra tab'a bastığımız takdirde gerisini tamamlayacaktır. Tekrar tekrar tab'a bastıkça alternatif üretecektir.

CTRL + R => Yapılan undo işlemini geri alır.

CTRL + L => Sayfayı yeniler.

CTRL + E => Satır satır aşağıyı inerek alt satırları görüntülemek için kullanılır.

CTRL + F => Hızlı bir şekilde alt satırlara inmek için kullanılır.

CTRL + D => Çoklu, daha seri bir şekilde yukarı çıkmak için

CTRL + Y => Satır satır yukarı çıkarak yukarı satırları görüntülemek için kullanılır.

CTRL + B => Hızlı bir şekilde yukarı çıkmak için kullanılır.

CTRL + U => Çoklu, daha seri bir şekilde yukarı çıkmak için

CTRL + G => Toplam satır sayısını gösterir.

 

“Insert” modundayken kullanabileceğiniz tuş fonksiyonlarından bazıları aşağıdaki gibidir.

 

CTRL + T => Satır başına tab koyar.

CTRL + I => Bulunulan yere tab koyar.

CTRL + N => Bir ya da daha fazla harf yazıldıktan sonra bu tuş fonksiyonu uygulanırsa, bir sonraki aynı karakterler ile eşleşen kelime bulunur.

CTRL + P => Bir ya da daha fazla harf yazıldıktan sonra bu tuş fonksiyonu uygulanırsa, bir sonraki aynı karakterler ile eşleyen kelime bulunur.

CTRL + U => İmlecin bulunduğu yerden satır başına kadar siler

CTRL + Y => Üst satırdaki karakterin aynısını bulunulan haneye yazar.

CTRL + E => Alt satırdaki karakterin aynısını bulunulan haneye yazar.

CTRL + W => Geriye doğru kelime kelime siler.

CTRL + F => Sayfayı en alta indirir.

CTRL + K => Bu fonksiyonu uyguladıktan sonra klavyedeki karakter tuşları dışındaki insert, home, backspace gibi tuşlardan birine bastığımızda bunu belirteç içerisinde yazar.

 

VI'da Değiştirme

 

:s/eski/yeni => Sadece imlecin bulunduğu satırda değişiklik yapmak içindir. "eski" kelimesini "yeni" olarak değiştirir.

Örnek:

Adalet Bakanlığı

:s/Adalet/Sağlık => Bu komut imlecin bulunduğu satırdaki ilk “Adalet” kelimesini “Sağlık” ile değiştirir.

=> Sağlık Bakanlığı

 

:%s/eski/yeni => Bu komut yalnızca imlecin bulunduğu satırı değil, bütün satırları kontrol edecektir. "eski" kelimesini "yeni" olarak değiştirir.

Örnek:

Adalet Bakanlığı. Adalet.

Barış için Adalet.

:%s/Adalet/Sağlık => Bu komut metin içerisinde satırlardaki ilk “Adalet” kelimesini “Sağlık” ile değiştirir.

=> Sağlık Bakanlığı. Adalet.

=> Barış için Sağlık.

 

/g => Satırdaki sadece ilk değil bütün eşleşmeler üzerinde işlem yapmak için kullanılan parametredir.

Örnek:

Adalet Bakanlığı. Barış için Adalet.

:s/Adalet/Sağlık/g => Bu komut imlecin bulunduğu satırdaki bütün “Adalet” kelimelerini “Sağlık” ile değiştirir.

=> Sağlık Bakanlığı. Barış için Sağlık.

 

/c => Değişiklik yapmadan önce onay ister.

Örnek:

Adalet Bakanlığı

:s/Adalet/Sağlık/c

  • y – değiştir.

  • n – değiştirme.

  • a – hepsini değiştir.

  • q – işlem yapmadan çık

  • l – sıradakini değiştirdikten sonra sorgudan çık

  • ^E ve ^Y – ctrl+e ve ctrl+y yapılarak kaydırma çubuğu hareket ettirilebilir.

 

Regular Expressions

 

. (dot) => Nokta (.) karakteri bütün karakterlerin yerine geçebilir. İlgili yerde bir karakter olması gerektiği anlamına gelir. Örneğin “A.B” ifadesi “ARB” , “ASB” , “A2B” veya “AzB” ve benzeri gibi bütün ifadelere eşittir.

Örnek:

Moda gereksiz tüketime yol açar.

:%s/Mo.a/Bolluk/g => Bu komut belge içerisindeki moda, mola, mo5a, mo?a, mo$a gibi ifadelerin hepsini “Bolluk” olarak değiştirir.

=> Bolluk gereksiz tüketime yol açar.

 

[ ] => Köşeli parantezlerin içerisinde yer alan her bir karakter eşleşme sağlar. [abcd] ifadesi a, b, c ve d harfleriyle eşleşir.

Örnek-1:

kelime1 kelime2 kelime3 kelime4 kelime5

:%s/kelime[235]/BEYAZ/g => Bu komut belge içerisindeki kelime2, kelime3, kelime5 gibi ifadeleri “BEYAZ” olarak değiştirir.

=> kelime1 BEYAZ BEYAZ kelime4 BEYAZ

 

Örnek-2:

ERCAN ERHAN ERKAN ERMAN ERSAN ERTAN

:%s/ER[L-Z]AN/kütahya/g => Bu komut belge içerisindeki ERLAN, ERMAN, ERNAN, EROAN gibi ifadelerin hepsini “kütayha” olarak değiştirir. [ ] köşeli parantezi kullanarak harf veya rakam aralığı verebiliriz.

=> ERCAN ERHAN ERKAN kütahya kütahya kütahya

 

[^ ] => Köşeli parantezlerin içerisinde yer almayan bütün karakterler eşleşme sağlar. [^abcd] ifadesi a, b, c ve d harfleri dışında bütün karakterler ile eşleşir.

Örnek:

adres1 adres2 adres3 adres4

:%s/adres[^24]/Menekşe/g => Bu komut belge içerisindeki adres3, adres8, adres/, adress, adresF gibi ifadelerin hepsini “Menekşe” olarak değiştirir. “adres2” ve “adres4” olduğu gibi kalır.

=> Menekşe adres2 Menekşe adres4

 

^ => Satır başı belirteci. Sadece satır başında işlem gerçekleşmesi için kullanılır.

Örnek:

Sorgulama ve Öğrenme Hakkının Doğal ve Felsefi Kökeni

Öğrenme ve Sorgulama Hakkının Doğal ve Felsefi Kökeni

:%s/^Öğrenme/Yaşama => Bu komut belge içerisinde sadece satır başında yer alan “Öğrenme” kelimesini “Yaşama” olarak değiştirecektir.

=> Sorgulama ve Öğrenme Hakkının Doğal ve Felsefi Kökeni

=> Yaşama ve Sorgulama Hakkının Doğal ve Felsefi Kökeni

 

$ => Satır sonu belirteci. Sadece satır sonunda işlem gerçekleştirmek istendiğinde kullanılır.

Örnek:

123456789

987654321

:%s/1$/1 Bitti/g => Bu komut belge içerisindeki sadece satır sonunda yer alan “1” rakamını “1 Bitti” olarak değiştirir.

=> 123456789

=> 987654321 Bitti

 

* => Yıldız (*) karakteri kendisinden önce gelen ifadenin kaç defa geçtiğinin önemli olmadığını gösterir. Yani bir önceki ifade, hiç geçmese de, bir defa geçse de, beş defa geçse de eşleşme gerçekleşir.

Örnek-1:

Ankara 1 Batman 23456 Cankırı (555) Diyarbakır 123.000

:%s/[0-9][0-9]*/SAYI/g => Bu komut belge içerisinde bulunan sayıları kaç haneli olursa olsun silerek yerine “SAYI” yazar.

=> Ankara SAYI Batman SAYI Cankırı (SAYI) Diyarbakır SAYI.SAYI

 

Örnek-2:

İstanbul Kabataş Lisesi

İstanbul Lisesi

:%s/İstanbul.*Lisesi/Okul/g => Bu komut “İstanbul Erkek Lisesi” “İstanbul 50. Yıl Lisesi” gibi ifadeleri “Okul” olarak değiştirir.

=> Okul

=> Okul

 

\< => Kelime başı belirteci. Sadece kendisinden önce boşluk veya nokta karakterleri gelen ifadeler ile eşleşme yapmak için kullanılır.

Örnek:

Nagehan hande hanımefendi .hantal 6hane

:%s/\<han/MERKEZ/g => Bu komut belge içerisinde “han” ile başlayan ifadelerin başındaki “han”ı “MERKEZ” olarak değiştirir.

=> Nagehan MERKEZde MERKEZımefendi .MERKEZtal 6hane

 

\> => Kelime sonu belirteci. Sadece kendisinden sonra boşluk veya nokta karakterleri gelen ifadeler ile eşleşme yapmak için kullanılır.

Örnek:

Alican. 33can candan caner can.ali.

:%s/can\>/MEHMET/g => Bu komut belge içerisinde “can” ile biten ifadelerin sonundaki “can”ı “MEHMET” olarak değiştirir.

=> AliMEHMET. 33MEHMET candan caner MEHMET.ali.

 

\( \) => Gruplandırma yapmak için kullanılır. Oluşturulan gruplar sırasıyla numaralandırılarak çağrılmak üzere hafızaya kaydedilir. En fazla 9 grup oluşturulabilir. Mevcut kelimeyi koruyarak işlem yapılmak istendiğinde kullanılır.

Örnek-1:

Ece Temelkuran'ın kitabıdır.

:%s/\(kitabı\)/İkinci Yarısı \1/g => Bu komut belge içerisindeki “kitabı” ifadesinin önüne “İkinci Yarısı” getirir. “kitabı” kelimesini olduğu gibi korur.

=> Ece Temelkuran'ın İkinci Yarısı kitabıdır.

Örnek-2:

Bilim ve Teknik Dergisi

:%s/\(Bilim\)\(.*\)\(Teknik\)/\3\2\1/g => Bu komut belge içerisindeki “Bilim” ve “Teknik” ifadelerini numaralandırarak yerlerini değiştirir. Bu iki kelimenin arasında yer alan kelimelerin etkilenmemesi için \(.*\) kullanılabilir.

=> Teknik ve Bilim Dergisi.

 

\ => Aşağıdaki karakterler sed tarafından kullanılan özel karakterler kapsamına girer. Bu karakterlerin herbirisinin anlamı olduğundan dikkatli kullanılmaları gerekir.

.*[]^$\&

Öncesinde ters slash “\” kullanarak özelliklerini etkisiz hale getirebiliriz. Örneğin;

:%s/fiyati 500\$ kadar/fiyati 700$/g

Bu örnekte metinde geçen “fiyati 500$ kadar” ifadesi “fiyati 700$” ile değiştiriliyor.

 

[ ] için örnek kullanımlar:

[A-Z]

A ile Z arasındaki büyük harfleri içerir.

[a-z]

a ile z arasındaki küçük harfleri içerir.

[0-9]

0'dan 9'a kadar rakamları içerir.

[./=+]

nokta “.” slash “/” eşittir “=” ve artı “+” işaretlerini içerir.

[-A-F]

Tire “-” işareti karakter aralığı belirtmekte kullanıldığı için normal kullanımda en başta olması gerekir.

[0-9 A-Z]

A'dan Z'ye kadar olan büyük harfler ile 0'dan 9'a kadar olan rakamları içerir.

 

Karakter Sınıfları:

[[:alnum:]] Alfabetik harfler ve rakamları içerir. [a-z A-Z 0-9]

[[:alpha:]] Sadece Alfabetik karakterleri içerir. [a-z A-Z]

[[:blank:]] Boşluk (space ve tab) tuşlarını içerir.

[[:digit:]] Sadece numaraları içerir. [0-9]

[[:lower:]] Küçük harfleri içerir. [a-z]

[[:upper:]] Büyük harfleri içerir.[A-Z]

[[:punct:]] Noktalama işaretlerini içerir.

[[:space:]] Enter, tab, space, NL, CR, FF gibi tuşları içerir.

[[:graph:]] Enter, tab, space dışında görünen karakterleri içerir. [[:^space:]]

[[:print:]] Görünen bütün karakterleri içerir. [.]

[[:xdigit:]] Hexadecimal karakterleri içerir. [0-9 a-f A-F]

 

Örnekler:

Sozcuk

Satırda herhangi bir yerde “Sozcuk” kelimesi geçiyor ise eşleşir.

^Sozcuk$

Satırdaki tek kelime “Sozcuk” ise eşleşir.

^[a-zA-Z]

Satır alfabetik bir harf ile başlıyor ise eşleşir.

1234$

Satır “1234” ile bitiyor ise eşleşir.

[0-9][0-9]*

Satırda sayı var ise eşleşir.

^[^#]

Satırdaki ilk karakter # değil ise eşleşir.

\<özgür

Satırda “özgür” ile başlayan bir kelime var ise eşleşir.(özgürlük, özgürce, özgür gibi)

lik\>

Satırda “lik” ile biten bir kelime var ise eşleşir. (kalemlik, çelik, 2lik gibi.)

S.z

Satırda ilk harfi “S”, üçüncü harfi “z” oln kelimelerle eşleşir.(Siz, Saz, S7z, S#z gibi)