Vi ve Vim Editorleri

Vi Nedir? 

Vi aracı bir metin editörüdür . Her Linux sisteminde varsayılan olarak kuruludur.  Başka bir deyişle, tüm Linux dağıtımlarında kullanılabilir. Farklı dağıtım ve platformlarda aynı şekilde çalışır. Güçlü bir uygulamadır. Vi editörünün geliştirilmiş sürümü ise vim'dir. 

Yeni dağıtımların hepsinde vi’yi çalıştırdığınızda, varsayılan olarak vim aracı çalışmaktadır. 

Vi editörü sektörde zor olduğu düşünülerek genelde kullanılmaz. Bunun yerine nano editörü kullanılmaktadır. Ancak her dağıtımda nano editörü bulunmaz. O yüzden en azından temel seviye kullanmanız, sizin için çok faydalı olacaktır.

Başlamadan önce terminal ekranında vi yazıp enter tuşuna basıyorum. Görselde gördüğünüz gibi aslında vim editörü açıldı. Vim editörü vi editörün tüm özelliklerine sahiptir. Hemen ardında :help yazıp enter tuşuna bastığımda tüm komutları bi göz gezdirelim.

vi 

Modları kontrol etmek için aşağıdaki görseldeki gibi :help x veya diğer modları kontrol edebiliriz. 

Çıkmak için :q! yazıp enter tuşuna basıyorum, ardından tekrar :q! yazıp enter tuşuna bastığımda terminal ekranına dönecektir. 

vi yazıp bir dosya adı verirsek, vi editorü ile yeni bir dosya açmış oluruz. 

vi mehmet 

vi editöründe  2 tane mod vardır.

  • Komut Modu
  • Yazma Modu

Yazma modu bu moda geçmek için i tuşuna basılması gerekmektedir. Komut moduna tekrar geçmek için esc tuşuna basmamız yeterlidir. 

Yazma Moduna Geçmek

Yazma moduna geçmek için bir kaç yöntem vardır.

  • Küçük a tuşuna bastığımızda satırın en başında yazma moduna geçer.
  • Büyük A tuşuna bastığımızda satırın en sonunda yazma moduna geçer.
  • Küçük i veya büyük İ tuşuna bastığımızda bulunduğumuz yerde yazma moduna geçer.
  • Küçük o tuşuna bastığımız bir alt satıra inip yazma moduna geçer.
  • Büyük O tuşuna bastığımız bir üst satıra çıkıp yazma moduna geçer.

Editörü Kaydetmek ve Çıkmak

Editörü kaydetmeden komut satırına dönmek için, ilk Esc tuşuna basarak  komut moduna geçiyoruz, : (iki nokta üst üste) tuşuna basarak  q! yazıp enter tuşuna basmamız yeterlidir.

:q!

Editörü kaydedip komut satırına dönmek için, ilk Esc tuşuna basarak  komut moduna geçiyoruz, : (iki nokta üst üste) tuşuna basarak  wq! yazıp enter tuşuna basmamız yeterlidir.

:wq!

Editörü kaydedip komut satırına dönmek için, diğer bir yöntem ise Esc tuşuna basarak  komut moduna geçiyoruz ve büyük harf ZZ tuşuna basıyoruz.

ZZ

Editörü çıkmadan kaydetmek için,  Esc tuşuna basarak  komut moduna geçiyoruz  : (iki nokta üst üste) tuşuna basarak w tuşuna basıp enter tuşuna basmamız yeterlidir.

:w

Editör üzerinde yapılan işlemleri, başka yeni bir dosyanın üzerine yazılabilir. Yani vi editöründen çıkmadan aynı dosyanın kopyasını alıyoruz gibi düşünebiliriz.  Esc tuşuna basarak  komut moduna geçiyoruz  : (iki nokta üst üste) tuşuna basarak“ w /home/mehmet/yeni.txt “ gibi yazıp enter tuşuna basarsak belirlediğimiz path’ e kaydetmiş oluruz. Mevcut ana dosyayı değiştirmez.

:w /path/file-name 

! karakterini kullanmamızın sebebi yazılamayan dosyalar force ederek yazdırmak için kullanırız.   

Komut Modu Kısayollar

Komut modunda dosyanın içinde ok tuşları ile gezebiliriz ancak büyük bir dosya olduğu zaman bazı kısa yolları bilmemizde fayda var. Aşağıdaki işlemleri komut modun da tuşlara basarak yapmamız gerekmektedir. 

Aşağıdaki işlemlerin sayısı arttırmak için işlem sayısını yapıp sonra harf’e basmamız yeterlidir. Örneğin;

  • 5 satır silmek için 5dd 
  • 10 tane sağa doğru kelime kopyalamak için 10w 
  • 50 tane satır yapıştırmak için 50p 
  • Yukarı doğru 9. satıra gitmek için 9H 
  • gg | sayfadaki satırın en üstüne gider. 
  • GG |  sayfadaki satırın en sonuna gider. 
  • 0 veya home  |  satırın en soluna gider. 
  • $ veya end | satırın en sağına gider. 
  • yy | satırı kopyalar. 
  • p | satırı yapıştırır. 
  • dd | satırı komple siler veya keser.  
  • u | yapılan işlemleri geri alır. 
  • x | harf bazlı silme işlemi yapar.
  • dg | istediğimiz satırları seçmemizi sağlar.
  • D | satırın sonundan itibaren tek tek siler.
  • dG | bulunduğun satıra kadar komple siler.
  • J |  Satırları birleştirir.
  • w | sağ’a doğru kelimelerle ileriye gider.
  • b | sol’a doğru kelimelerle geriye gider.
  • db | sol’a doğru kelime siler.
  • yd | sağ’a doğru kelime kopyalar.
  • yb | sol’a doğru kelime kopyalar.
  • K | geçici olarak Terminal ekranına düşer. 
  • ZZ | kaydedip çıkış yapar.  

Visual Moda Geçmek

  • V | visual line çoklu seçim yaparak silme ve benzeri işlemler yapabiliriz. 
  • v | visual block çoklu blok  seçim yaparak silme ve benzeri işlemler yapabiliriz. 

Kelime Aramak

  • /  | aşağı doğru arama yapar. /root  İlk aramadan sonra n tuşuna basarak devam edilir. 
  • ? | yukarı doğru arama yapar. ?root  İlk aramadan sonra n tuşuna basarak devam edilir. 

Nokta atışı bir kelimeyi aramak için /<root>  küçük ve büyük parantezlerin içine yazmamız yeterlidir. 

Bul ve Değiştir 

Esc tuşuna basarak  komut moduna geçiyoruz :1,$ (İlk satırdan son satıra kadar) s/mehmet (Eski Kelime) / (Yeni Kelime)/s parametrenin sonuna g yerine c koyarsanız değiştirmeden önce sırayla onay ister.

:1,$ s/mehmet/ahmet/g 
:1,$ s/mehmet/ahmet/c 

Editörden Geçici Olarak Terminale Dönme 

Editör üzerinde bir şeyler yazarken, terminale dönmemiz gerektiği durumlar olabilir. Bu tür durumlarda  Esc tuşuna basarak  komut moduna geçiyoruz  : (iki nokta üst üste) tuşuna basarak  sh yazıp enter tuşuna basarak terminal ekranına geçebiliriz. İşimiz bittikten sonra exit yazarak tekrar vi editörüne dönebiliriz. 

:sh

Editörde Komut Çalıştırma 

Bazı durumlarda editörden çıkmadan komut çalıştırmamız gerekebilir. Bu tür durumlarda komut moduna esc tuşuna basarak geçip  komutları çalıştırabilir veya dosya içeriği görüntüleyebiliriz. Aşağıdaki örnekte network servisi yeniden başlatılmıştır. 

:! /etc/init.d/networking.service restart 

Editörde Sudo Olmak

Varsayılan olarak, sunucu yapılandırma dosyaları kök kullanıcıya aittir, bu nedenle normal kullanıcı, Yetersiz İzin nedeniyle değişiklikleri yazamaz. sudo seçeneğini kullanarak kök İzni olmadan içeriğini yazdıktan veya değiştirdikten sonra bir dosyanın nasıl kaydedileceğiyle ilgili temel komutlara rehberlik edecektir. Normal şartlarda /etc/hosts dosyasında normal bir kullanıcı değişiklik yapamaz.

Gerekli düzenlemeleri yaptıktan sonra, komut moduna geçerek aşağıdaki komut satırını çalıştırın.

:w !sudo tee %

Oturum açmış kullanıcının adını girin parolasını girip, ardından Enter tuşuna basın. Değişiklikleri vim'in kendisine yüklemek için L tuşuna basın. Artık kayıt işlemi tamamlanmıştır.

Yukarıdaki komut satırını anlamaya çalışalım.

  • :w: Bir dosya yaz.
  • !sudo: Sudo komutuyla kabuğu çağırır
  • tee: tee kullanılarak yeniden yönlendirilen yazma komutunun çıktısı
  • %: Geçerli dosya adını belirtin. İşte /etc/hosts

Satır Başlarını Numaralandırmak

Mutlak Satır Numaraları

Mutlak satır numaralandırması, metnin her satırının yanında uygun satır numarasını gösteren standart satır numaralandırmasıdır. Satır numaralandırmayı etkinleştirmek için sayı bayrağını ayarlayın. ESC tuşuna basarak, komut moduna geçiniz.

(iki nokta üst üste) tuşuna basın :  , imleç ekranın sol alt köşesinde hareket edecektir. set number veya set nu yazıp Enter tuşuna basın.

:set number

Mutlak satır numaralarını devre dışı bırakmak için set nonumber veya set nonu komutlarını çalıştırın.

:set nonumber

Göreli Satır Numaraları

Göreli satır numaralandırma etkinleştirildiğinde, geçerli satır 0 olarak gösterilir; Geçerli satırın üstündeki ve altındaki satırlar aşamalı olarak 1,2,3 vb. gibi numaralandırılır.

Göreli satır numaralandırmayı etkinleştirmek için komut moduna geçin ve set relativenumber veya girin set rnu komutlarını çalıştırın.

:set relativenumber

Göreli satır numaralandırmasını devre dışı bırakmak için set norelativenumber veya set nornu komutlarını çalıştırın.

:set nonumber

Hibrit Hat Numaraları

Vim 7.4 ve sonraki sürümlerde, hem mutlak hem de göreli satır numaralarının aynı anda etkinleştirilmesi, hibrit satır numarası modunu ayarlar. Hibrit satır numaralandırma, göreli satır numaralandırma ile aynıdır, tek fark, geçerli satırın 0 göstermek yerine mutlak satır numarasını göstermesidir.

Karma satır numaralandırmayı açmak için hem set number relativenumber komutlarını çalıştırın:

:set number relativenumber

Aynısı, komutları birer birer çalıştırarak da elde edilebilir:

:set number 
:set relativenumber

Karma modu devre dışı bırakmak için hem mutlak hem de göreli numaralandırmayı kapatmanız gerekir.

Kalıcı Olarak Satır Numarası Ayarlamak

Vim'i her başlattığınızda satır numaralarının görünmesini istiyorsanız, uygun komutu .vimrc yani vim yapılandırma dosyanıza ekleyin. 

vim ~/.vimrc

Örneğin, mutlak satır numaralandırmayı etkinleştirmek için aşağıdakileri ekleyebilirsiniz.

:set number

 

Blog'a Dön