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