Vim modları arasında geçiş yapın, temel düzenleme komutlarını kullanın ve kodda arama, değiştirme veya yorum satırı ekleme gibi yaygın görevleri gerçekleştirin.
Yükleme
Vim, çoğu Linux sisteminde önceden yüklü olarak gelir. Yüklü sürümü kontrol etmek için vim --version komutunu çalıştırın. Bu konuda örnek olarak Vim 8.0 sürümü kullanılmıştır. Komutlar ve özellikler diğer sürümlerde farklılık gösterebilir.
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 10 2022 11:26:47)
Included patches: 1-1763
Modified by OpenAnolis Community
Compiled by OpenAnolis Community
Enormous version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
......
Modlar arasında geçiş yapma
Bir dosyayı Normal modda açmak için vim filename komutunu çalıştırın. Dosya mevcut değilse Vim bu dosyayı oluşturur. Aşağıdaki tabloda her modun işlevi ve modlar arasında nasıl geçiş yapılacağı açıklanmaktadır.
|
Mod |
İşlev |
Mod geçişi |
|
Normal mod (Normal Mode) |
Karakterleri veya satırları kopyalayın, yapıştırın ve silin. |
|
|
Ekleme modu (Insert Mode) |
İmleç konumuna karakter ekleyin. |
Normal moddayken Ekleme moduna geçmek için Not
Ekleme modu etkin olduğunda sol alt köşede |
|
Değiştirme modu (Replace Mode) |
İmleç konumundaki karakterlerin üzerine yazın. |
Normal moddayken Değiştirme moduna geçmek için Not
Değiştirme modu etkin olduğunda sol alt köşede |
|
Görsel mod (Visual Mode) |
Metni seçin. Kopyalama, değiştirme ve silme gibi komutlar yalnızca seçili metne uygulanır. |
Normal moddayken Görsel moda geçmek için Not
Görsel mod etkin olduğunda sol alt köşede |
|
Komut modu (Command Mode) |
Dizeleri bulun ve değiştirin, satır numaralarını gösterin, değişiklikleri kaydedin ve çıkış yapın. |
Normal moddayken Komut moduna geçmek için |
Temel komutlar
Dosya açma
vim filename: Bir dosyayı Normal modda açar. Dosya mevcut değilse Vim bu dosyayı oluşturur.-
vim filename1 filename2: Birden çok dosyayı açar.Vim önce
filename1dosyasını açar.:wkomutuyla kaydedin, ardından:bnkomutunu çalıştırarakfilename2dosyasına geçin.filename2dosyasını:wkomutuyla kaydedin.:bp: Önceki dosyaya geçer.:ls: Açık olan tüm dosyaları listeler.
:open filename3: Komut modunda yeni bir dosya açar. Önce geçerli dosyayı:wkomutuyla kaydedin.
İmleci hareket ettirme
-
Normal modda
Yukarı ok /
k: Yukarı hareket eder.Aşağı ok /
j: Aşağı hareket eder.Sol ok /
h: Sola hareket eder.Sağ ok /
l: Sağa hareket eder.
-
Ekleme modunda
Yalnızca ok tuşlarını kullanın.
İçerik ekleme
Normal modda Ekleme moduna geçmek için i,I,a,A,o,O tuşlarına basın:
i: İmleçten önce ekler.I: Satırın başına ekler.a: İmleçten sonra ekler.A: Satırın sonuna ekler.o: Altında yeni bir satır açar.O: Üstünde yeni bir satır açar.
Kopyalama ve yapıştırma
Normal modda:
yy: Geçerli satırı kopyalar.pile yapıştırın.nyy: Geçerli satırdan başlayaraknsatırı kopyalar. Örneğin,2yyiki satırı kopyalar.p: İmlecin altına yapıştırır.P: İmlecin üstüne yapıştırır.
Silme
-
Normal modda
x: İmleçteki karakteri siler.dd: Geçerli satırı siler.pile yapıştırabilirsiniz.dk: Geçerli satırı ve üstündeki satırı siler.dj: Geçerli satırı ve altındaki satırı siler.dG: Geçerli satırdan dosyanın sonuna kadar olan kısmı siler.nx: İmleçten başlayaraknkarakteri siler.ndd: Geçerli satırdan başlayaraknsatırı siler.pile yapıştırabilirsiniz.
-
Ekleme modunda
Karakterleri silmek için
Deletetuşunu kullanın.
Arama
Normal modda
-
/text:textifadesini arar. Varsayılan olarak arama büyük/küçük harfe duyarlıdır. Eşleşmeleri vurgulamak için Enter tuşuna basın.Büyük/küçük harfe duyarsız arama yapmak için
:set ignorecasekomutunu çalıştırın. Büyük/küçük harfe duyarlı aramaya geri dönmek için:set noignorecasekomutunu çalıştırın.
n: Sonraki eşleşme.N: Önceki eşleşme.
Değiştirme
-
Normal modda
r: İmleçteki karakteri değiştirir.R: Sürekli değiştirme için Değiştirme moduna girer. Çıkmak içinEsctuşuna basın.cc: Geçerli satırı siler ve Ekleme moduna girer.:%s/oldtext/newtext/g:oldtextifadesinin tüm oluşumlarınınewtextile değiştirir./golmadan yalnızca satır başındaki ilk eşleşme değiştirilir.
-
Ekleme modunda
Eski içeriği silin ve yeni içeriği yazın.
Geri alma ve yineleme
Normal modda
u: Son değişikliği geri alır.U: Geçerli satırdaki tüm değişiklikleri geri alır.Ctrl+r: Son geri alınan değişikliği yineler.
Girinti ve hizalama
-
Normal modda
>>: Geçerli satırı sağa girintiler. Varsayılan girinti: 8 boşluk (bir sekme).<<: Geçerli satırı sola girintiler.
-
Komut modunda
:ce: Satırı ortalar.:le: Satırı sola hizalar.:ri: Satırı sağa hizalar.
Koda yorum satırı ekleme
Toplu değiştirmelerden önce dosyayı yedekleyin veya hataları düzeltmek için geri alma komutunu (
u) kullanın. Örneğin, bir dosyayı yedeklemek içinsudo cp /etc/text.txt /etc/text.txt.bakkomutunu çalıştırın.İçeriği yanlışlıkla silmemek için Vim'in düzenli ifade sözdizimini anlayın. Vim düzenli ifadelerinde
/karakteri\/şeklinde kaçış karakteriyle yazılmalıdır. Regex101 gibi araçlarla alıştırma yapın.Yorum sembolünü programlama diline göre ayarlayın.
-
Görsel modda
-
Birden çok ardışık kod satırına yorum ekleme
İmleci yukarı veya aşağı hareket ettirerek yorum eklenecek satırları seçin.
Komut moduna girmek için
:tuşuna basın. Vim otomatik olarak:'<,'>ifadesini doldurur; bu, seçili aralığı hedefler.Değiştirme komutunu girin. Örneğin, her satırın başına
#eklemek içins/^/#/yazın veEntertuşuna basın.
Tüm koda yorum ekleme:
:%s/^/#/gkomutu her satırın başına#ekler.
-
-
Ekleme modunda
Koda yorum eklemek için yorum sembollerini manuel olarak yazın.
Kaydetme ve çıkma
Kaydetme:
:wÇıkma:
:qKaydetme ve çıkma:
:wq,:xveyaZZKaydetmeden zorla çıkma:
:q!Zorla kaydetme ve çıkma:
:wq!
Belgeleri şifreleme
vim -x filename: Bir dosyayı şifreleme ile açar. Bir parola belirleyin, ardından şiflemenin etkili olması için dosyayı kaydedin. Sonraki açılışlarda parola gerekir.-
Şifrelemeyi iptal etme:
Şifreleme anahtarını temizlemek için
:set key=komutunu çalıştırın.:wqile kaydedip çıkın.Dosyayı
vim filenamekomutuyla yeniden açın. Parola istemi görünmez.
Kabuk komutlarını yürütme
!pwd: Geçerli çalışma dizinini gösterir.!ls: Geçerli dizindeki dosyaları listeler.
Çok pencereli düzenleme
vim -o filename1 filename2: İki dosyayı ayrı pencerelerde açar. Her pencereden ayrı ayrı çıkın.:n: Sonraki pencere.:N: Önceki pencere.
Yardım
Vim komut sözdizimini görüntülemek için terminalde vim --help komutunu çalıştırın.
-
Normal modda
:help: Vim yardım belgesini açar (salt okunur).:qile çıkın.:help i:ikomutu için yardımı gösterir.:help yy:yykomutu için yardımı gösterir.:set nu: Satır numaralarını gösterir.
Kullanım örnekleri
Bir yapılandırma dosyasını değiştirme
example.conf dosyasının ilk satırına Location ekleyin:
Dosyayı açmak için
vim example.confkomutunu çalıştırın.İmleci ilk karakterin üzerine getirin ve Ekleme moduna girmek için
ituşuna basın.Locationyazın ve yeni bir satır başlatmak için Enter tuşuna basın.Normal moda dönmek için
Esctuşuna basın.-
Kaydetmek ve çıkmak için
:wqyazın.
Hedef satıra içerik ekleme
example.conf dosyasındaki 10. satırın başına # ekleyin:
Dosyayı açmak için
vim example.confkomutunu çalıştırın.İmleci 10. satıra taşımak için
:10komutunu çalıştırın.Ekleme moduna girmek için
ituşuna basın.#yazın.Normal moda dönmek için
Esctuşuna basın.-
Kaydetmek ve çıkmak için
:wqyazın.
İçerik bulma ve ekleme
example.conf dosyasında Include conf.modules.d/*.conf ifadesinden sonra LoadModule rewrite_module modules/mod_rewrite.so ekleyin:
Dosyayı açmak için
vim example.confkomutunu çalıştırın.Hedef satırı arayın:
/Include conf.modules.d/*.confEkleme moduna girmek için
ituşuna basın.LoadModule rewrite_module modules/mod_rewrite.soyazın.Normal moda dönmek için
Esctuşuna basın.-
Kaydetmek ve çıkmak için
:wqyazın.
İçerik silme
example.conf dosyasında #Listen 12.34.XX.XX:80 satırının başından # işaretini silin ve Listen 80 satırını silin:
Dosyayı açmak için
vim example.confkomutunu çalıştırın.Hedef satırı arayın:
/#Listen 12.34.XX.XX:80. İmleç#işaretinin üzerine gelir.#işaretini silmek içinxtuşuna basın.İmleci Listen 80 satırına taşıyın ve satırı silmek için
ddtuşlarına basın.-
Kaydetmek ve çıkmak için
:wqyazın.
Docker.yaml dosyasını düzenleme
docker-compose.yaml dosyasını oluşturun ve düzenleyin:

Çok satırlı yorumları kaldırma
-
#işaretinin satır başında olduğunu ve önünde boşluklar veya girintiler olabileceğini varsayalım:# This is a comment # Another comment # Yet another comment -
Yorumları kaldırın:
:%s/^\s*#\s\?//Desen açıklaması:
^: Satır başı.\s*: Herhangi bir boşluk (girintileri işler).#: Yorum sembolü.\s\?:#işaretinden sonra gelen isteğe bağlı tek bir boşluk.//: Eşleşmeyi hiçbir şeyle değiştirir (siler).
Bu komut dosyanın tamamını işler. Sonuç:
This is a comment Another comment Yet another comment
Vim'i yükseltme
Vim sürümünüz ihtiyaçlarınızı karşılamıyorsa aşağıdaki komutlarla yükseltme yapın.
Alibaba Cloud Linux 3 and 2
sudo yum update vim
CentOS 7 and 8
sudo yum update vim
Fedora
sudo yum update vim
Ubuntu and Debian
sudo apt upgrade vim
openSUSE
sudo zypper update vim
Sorun giderme
-
Çıkışta "No write since last change" uyarısı:
Neden: Dosya değiştirildi ancak kaydedilmedi.
Çözüm:
:wqile kaydedip çıkın veya:q!ile değişiklikleri atın.
-
Metin girilemiyor:
Neden: Görsel mod gibi Ekleme modu dışındaki bir modda olabilirsiniz.
Çözüm: Normal moda dönmek için
Esctuşuna basın, ardından Ekleme moduna geçin.
-
Dosya kaydedilemiyor:
Neden: Geçerli kullanıcıda yazma izni yok.
/etc/hostsve/etc/nginx/nginx.confgibi sistem yapılandırma dosyaları süper kullanıcı izinleri gerektirir.Çözüm 1: Dosyayı
sudo vim example.confkomutuyla açın.Çözüm 2:
:w !sudo tee %kullanarak yükseltilmiş izinlerle kaydedin. Alternatif olarak,sudo chownveyasudo chmodile dosya izinlerini veya sahipliğini değiştirin.
-
Bir ".swp" dosyası mevcut:
Neden: Dosya başka bir Vim oturumunda açık.
Çözüm: Dosyayı düzenleyen başka bir terminal olmadığından emin olun. Yoksa
ll -aile.swpdosyasını bulup silin ve dosyayı yeniden açın. Alternatif olarak, takas dosyasından geri yüklemek için:recoverkomutunu çalıştırın.