Sözdizimi
vim [options] [file ..]
vim [options] -
vim [options] -t tag
vim [options] -q [errorfile]
ex
view
gvim gview evim eview
rvim rview rgvim rgview
Açıklama
Vim, Vi ile yukarıya doğru uyumlu (upwards compatible) bir metin düzenleyicidir. Her türlü düz metni düzenlemek için kullanılabilir. Özellikle programları düzenlemek için çok yararlıdır.
Vi'a kıyasla pek çok geliştirme sunar: çok seviyeli geri alma (undo), çoklu pencereler ve arabellekler (buffers), sözdizimi vurgulama (syntax highlighting), komut satırı düzenleme, dosya adı tamamlama, çevrim içi yardım, görsel seçim vb. Vim ile Vi arasındaki farkların bir özeti için ":help vi_diff.txt" komutunu kullanın.
Vim çalışırken, ":help" komutu aracılığıyla çevrim içi yardım sisteminden bol miktarda yardım alınabilir. Aşağıdaki ÇEVRİM İÇİ YARDIM bölümüne bakın.
Vim çoğunlukla tek bir dosyayı düzenlemek için aşağıdaki komutla başlatılır:
vim dosya
Daha genel olarak Vim şu şekilde başlatılır:
vim [seçenekler] [dosya_listesi]
Dosya listesi belirtilmezse, düzenleyici boş bir arabellekle başlar. Aksi takdirde, düzenlenecek bir veya daha fazla dosyayı seçmek için aşağıdaki dört yöntemden tam olarak biri kullanılabilir:
dosya .. Bir dosya adları listesi. İlk dosya geçerli dosya olacak ve arabelleğe okunacaktır. İmleç arabelleğin ilk satırına konumlandırılacaktır. Diğer dosyalara ":next" komutu ile geçebilirsiniz. Tire (-) ile başlayan bir dosyayı düzenlemek için dosya listesinin önüne "--" getirin.
Düzenlenecek dosya standart girdiden (stdin) okunur. Komutlar, bir tty olması gereken standart hatadan (stderr) okunur.-t {tag}: Düzenlenecek dosya ve ilk imleç konumu bir "etikete" (tag), yani bir nevi yönlendirme etiketine bağlıdır. {tag} etiketler (tags) dosyasında aranır, ilişkili dosya geçerli dosya haline gelir ve ilişkili komut yürütülür. Bu çoğunlukla C programları için kullanılır; bu durumda {tag} bir fonksiyon adı olabilir. Bunun etkisi, o fonksiyonu içeren dosyanın geçerli dosya olması ve imlecin fonksiyonun başına konumlandırılmasıdır. Detaylar için ":help tag-commands" komutuna bakın.
-q [errorfile] Hata düzeltme (quickFix) modunda başlatır. [errorfile] dosyası okunur ve ilk hata görüntülenir. [errorfile] belirtilmezse, dosya adı 'errorfile' seçeneğinden alınır (Amiga için varsayılan olarak "AztecC.Err", diğer sistemlerde "errors.err" değeridir). Sonraki hatalara ":cn" komutu ile atlanabilir. Detaylar için ":help quickfix" komutuna bakın.
Vim, çağrıldığı komutun adına bağlı olarak farklı davranır (yürütülebilir dosya hala aynı dosya olabilir):
vim "Normal" yol, her şey varsayılandır.
ex Ex modunda başlar. ":vi" komutu ile Normal moda geçilebilir. Bu işlem "-e" bağımsız değişkeniyle de yapılabilir.
view Salt okunur (read-only) modda başlar. Dosyaları yazmaya karşı korunursunuz. Bu işlem "-R" bağımsız değişkeniyle de yapılabilir.
gvim gview GUI sürümü. Yeni bir pencere açar. Bu işlem "-g" bağımsız değişkeniyle de yapılabilir.
evim eview Kolay modda GUI sürümü. Yeni bir pencere açar. Bu işlem "-y" bağımsız değişkeniyle de yapılabilir.
rvim rview rgvim rgview Yukarıdakiler gibidir ancak kısıtlamalar içerir. Kabuk komutlarını çalıştırmak veya Vim'i askıya almak (suspend) mümkün olmayacaktır. Bu işlem "-Z" bağımsız değişkeniyle de yapılabilir.
Seçenekler
Seçenekler dosya adlarından önce veya sonra olmak üzere herhangi bir sırayla verilebilir. Parametresi olmayan seçenekler tek bir tire (-) işaretinden sonra birleştirilebilir.
+[num] İlk dosya için imleç "num" satırına konumlandırılacaktır. Eğer "num" belirtilmezse, imleç son satıra konumlandırılacaktır.
+/{pat} İlk dosya için imleç {pat} şablonunun ilk eşleştiği satıra konumlandırılacaktır. Kullanılabilir arama şablonları için ":help search-pattern" komutuna bakın.
+{command}
-c {command}
{command} komutu ilk dosya okunduktan sonra yürütülecektir. {command} bir Ex komutu olarak yorumlanır. Eğer {command} boşluklar içeriyorsa çift tırnak içine alınmalıdır (bu, kullanılan kabuğa bağlıdır). Örnek: vim "+set si" main.c
Not: En fazla 10 adet "+" veya "-c" komutu kullanabilirsiniz.
-A: Vim, sağdan sola yazılan dosyaları düzenlemek için ARABIC desteği ve Arapça klavye eşlemesiyle derlenmişse, bu seçenek Vim'i Arapça modunda başlatır, yani 'arabic' seçeneği ayarlanır. Aksi takdirde bir hata mesajı verilir ve Vim sonlandırılır.-b: İkili (binary) mod. Bir ikili veya yürütülebilir dosyayı düzenlemeyi mümkün kılan birkaç seçenek ayarlanır.-C: Uyumlu (compatible) mod. 'compatible' seçeneğini ayarlar. Bu seçenek, bir .vimrc dosyası mevcut olsa bile Vim'in çoğunlukla Vi gibi davranmasını sağlar.-d: Fark (diff) modunda başlar. İki ila sekiz arasında dosya adı parametresi olmalıdır. Vim tüm dosyaları açacak ve aralarındaki farkları gösterecektir. vimdiff(1) gibi çalışır.
-d {device}, -dev {device} {device} aygıtını terminal olarak kullanmak üzere açar. Yalnızca Amiga'da geçerlidir. Örnek: "-d con:20/30/600/150".
-D: Hata ayıklama (debugging). Bir betikten ilk komutu yürütürken hata ayıklama moduna geçer.-e: Vim'i Ex modunda başlatır, tıpkı yürütülebilir dosyanın adı "ex" olarak çağrılmış gibi.-E: Vim'i geliştirilmiş Ex modunda başlatır, tıpkı yürütülebilir dosyanın adı "exim" olarak çağrılmış gibi.-f: Ön plan (foreground). GUI sürümü için, Vim alt süreç oluşturup (fork) başlatıldığı kabuktan ayrılmayacaktır. Amiga'da, yeni bir pencere açmak için Vim yeniden başlatılmaz. Bu seçenek, Vim'in düzenleme oturumunun bitmesini bekleyecek bir program tarafından yürütüldüğü durumlarda (örn. mail) kullanılmalıdır. Amiga'da ":sh" ve ":!" komutları çalışmayacaktır.-F: Vim, sağdan sola yazılan dosyaları düzenlemek için FKMAP desteği ve Farsça klavye eşlemesiyle derlenmişse, bu seçenek Vim'i Farsça modunda başlatır, yani 'fkmap' ve 'rightleft' seçenekleri ayarlanır. Aksi takdirde bir hata mesajı verilir ve Vim sonlandırılır. Not: Farsça desteği 8.1.0932 yaması ile kaldırılmıştır.-g: Vim GUI desteğiyle derlenmişse, bu seçenek GUI'yi etkinleştirir. GUI desteği derlenmemişse, bir hata mesajı verilir ve Vim sonlandırılır.-H: Vim, sağdan sola yazılan dosyaları düzenlemek için RIGHTLEFT desteği ve İbranice klavye eşlemesiyle derlenmişse, bu seçenek Vim'i İbranice modunda başlatır, yani 'hkmap' ve 'rightleft' seçenekleri ayarlanır. Aksi takdirde bir hata mesajı verilir ve Vim sonlandırılır.
-i {viminfo} Varsayılan "~/.viminfo" yerine viminfo dosyası okunurken veya yazılırken kullanılacak dosya adını belirtir. Bu seçenek "NONE" adı verilerek .viminfo dosyasının kullanımını atlamak için de kullanılabilir.
-l: Lisp modu. 'lisp' ve 'showmatch' seçeneklerini açar.-L: -r ile aynıdır.-m: Dosyaları değiştirmeyi devre dışı bırakır. 'write' seçeneğini sıfırlar. Arabelleği hala değiştirebilirsiniz ancak bir dosyayı yazmak mümkün değildir.-M: Değişikliklere izin verilmez. 'modifiable' ve 'write' seçenekleri sıfırlanır, böylece değişiklik yapılmasına izin verilmez ve dosyalar yazılamaz. Değişiklik yapmayı etkinleştirmek için bu seçeneklerin daha sonra ayarlanabileceğini unutmayın.-n: Takas (swap) dosyası kullanılmaz. Bir çökme sonrasında kurtarma işlemi imkansız olacaktır. Çok yavaş bir ortamdaki (örn. disket) bir dosyayı düzenlemek istiyorsanız kullanışlıdır. ":set uc=0" ile de yapılabilir. ":set uc=200" ile geri alınabilir.-N: Uyumsuz (no-compatible) mod. 'compatible' seçeneğini sıfırlar. Bu, bir .vimrc dosyası mevcut olmasa bile Vim'in biraz daha iyi davranmasını ancak Vi ile daha az uyumlu olmasını sağlar.-nb: NetBeans için bir düzenleyici sunucusu haline gelir. Detaylar için belgelere bakın.-o[N]: Üst üste yığılmış N adet pencere açar. N belirtilmezse, her dosya için bir pencere açar.-O[N]: Yan yana N adet pencere açar. N belirtilmezse, her dosya için bir pencere açar.-p[N]: N adet sekme sayfası açar. N belirtilmezse, her dosya için bir sekme sayfası açar.
-P {parent-title} Yalnızca Win32 GUI: Üst (parent) uygulamanın başlığını belirtir. Mümkün olduğunda Vim, uygulama içinde bir MDI penceresinde çalışacaktır. {parent-title}, üst uygulamanın pencere başlığında görünmelidir. Bunun yeterince özel olduğundan emin olun. Bu uygulamanın henüz ilkel olduğunu unutmayın. Tüm uygulamalarla çalışmayacaktır ve menü çalışmaz.
-r: Takas dosyalarını, bunları kurtarma amacıyla kullanma bilgileriyle birlikte listeler.-r {file}: Kurtarma (recovery) modu. Takas dosyası, çöken bir düzenleme oturumunu kurtarmak için kullanılır. Takas dosyası, metin dosyasıyla aynı ada sahip ve sonuna ".swp" eklenmiş bir dosyadır. Detaylar için ":help recovery" komutuna bakın.-R: Salt okunur (read-only) mod. 'readonly' seçeneği ayarlanır. Arabelleği hala düzenleyebilirsiniz ancak kazara bir dosyanın üzerine yazmanız engellenir. Bir dosyanın üzerine yazmak istiyorsanız, Ex komutuna ":w!" komutunda olduğu gibi bir ünlem işareti ekleyin. -R seçeneği ayrıca -n seçeneğini de içerir (yukarıya bakın). 'readonly' seçeneği ":set noro" ile sıfırlanabilir. Detaylar için ":help 'readonly'" komutuna bakın.-s: Sessiz (silent) mod. Yalnızca "Ex" olarak başlatıldığında veya "-s" seçeneğinden önce "-e" seçeneği verildiğinde geçerlidir.
-s {scriptin} {scriptin} betik dosyası okunur. Dosyadaki karakterler klavyeden yazmışsınız gibi yorumlanır. Aynı işlem ":source! {scriptin}" komutuyla da yapılabilir. Düzenleyiciden çıkılmadan önce dosyanın sonuna ulaşılırsa, sonraki karakterler klavyeden okunur.
-S {file}: {file} dosyası, ilk dosya okunduktan sonra kaynak olarak alınacaktır (sourced). Bu,-c "source {file}"komutuyla eşdeğerdir. {file} '-' ile başlayamaz. {file} belirtilmezse "Session.vim" kullanılır (yalnızca -S son bağımsız değişken olduğunda çalışır).
-T {terminal} Vim'e kullandığınız terminalin adını bildirir. Yalnızca otomatik algılama çalışmadığında gereklidir. Vim tarafından bilinen (yerleşik) veya termcap ya da terminfo dosyasında tanımlanmış bir terminal olmalıdır.
-u {vimrc}: Başlatma işlemleri için {vimrc} dosyasındaki komutları kullanır. Diğer tüm başlatma işlemleri atlanır. Özel türdeki dosyaları düzenlemek için bunu kullanın. "NONE" adı verilerek tüm başlatma işlemlerini atlamak için de kullanılabilir. Daha fazla detay için vim içinde ":help initialization" komutuna bakın.-U {gvimrc}: GUI başlatma işlemleri için {gvimrc} dosyasındaki komutları kullanır. Diğer tüm GUI başlatma işlemleri atlanır. "NONE" adı verilerek tüm GUI başlatma işlemlerini atlamak için de kullanılabilir. Daha fazla detay için vim içinde ":help gui-init" komutuna bakın.-v: Vim'i Vi modunda başlatır, tıpkı yürütülebilir dosyanın adı "vi" olarak çağrılmış gibi. Bu, yalnızca yürütülebilir dosya "ex" olarak çağrıldığında etkilidir.-V[N]: Ayrıntılı (verbose). Hangi dosyaların kaynak olarak alındığı ve bir viminfo dosyasının okunması ve yazılması hakkında mesajlar verir. İsteğe bağlı N sayısı 'verbose' seçeneğinin değeridir. Varsayılan değer 10'dur.
-V[N]{filename} -V seçeneği gibidir ve 'verbosefile' seçeneğini {filename} olarak ayarlar. Sonuç olarak mesajlar görüntülenmez, {filename} dosyasına yazılır. {filename} bir rakamla başlamamalıdır.
-w{number}: 'window' seçeneğini {number} değerine ayarlar.
-w {scriptout} Yazdığınız tüm karakterler, Vim'den çıkana kadar {scriptout} dosyasına kaydedilir. Bu, "vim -s" veya ":source!" ile kullanılacak bir betik dosyası oluşturmak istediğinizde kullanışlıdır. Eğer {scriptout} dosyası zaten mevcutsa, karakterler dosyanın sonuna eklenir.
-W {scriptout} -w seçeneği gibidir ancak mevcut bir dosyanın üzerine yazılır.
-x: Vim şifreleme desteğiyle derlenmişse, dosyaları yazarken şifreleme kullanır. Bir şifreleme anahtarı (crypt key) isteyecektir.-X: X sunucusuna bağlanmaz. Bir terminalde başlatma süresini kısaltır ancak pencere başlığı ve pano (clipboard) kullanılmayacaktır.-Y: Wayland birleştiricisine (compositor) bağlanmaz.-y: Vim'i kolay modda başlatır, tıpkı yürütülebilir dosyanın adı "evim" veya "eview" olarak çağrılmış gibi. Vim'in tıkla-ve-yaz (click-and-type) tarzı bir düzenleyici gibi davranmasını sağlar.-Z: Kısıtlı mod. Yürütülebilir dosyanın "r" ile başlaması gibi çalışır.--: Seçeneklerin sonunu belirtir. Bundan sonraki bağımsız değişkenler dosya adı olarak ele alınacaktır. Bu, '-' ile başlayan bir dosya adını düzenlemek için kullanılabilir.--clean: Hiçbir kişisel yapılandırmayı (vimrc, eklentiler vb.) kullanmaz. Bir sorunun temiz bir Vim kurulumuyla tekrarlanıp tekrarlanmadığını görmek için kullanışlıdır.
--cmd {command} "-c" kullanmak gibidir ancak komut, herhangi bir vimrc dosyası işlenmeden hemen önce yürütülür. "-c" komutlarından bağımsız olarak bu komutlardan en fazla 10 adet kullanabilirsiniz.
--echo-wid: Yalnızca GTK GUI: Pencere kimliğini (Window ID) standart çıktıya (stdout) yansıtır.
--gui-dialog-file {name} GUI kullanırken, bir iletişim kutusu (dialog) göstermek yerine iletişim kutusunun başlığını ve mesajını {name} dosyasına yazar. Dosya oluşturulur veya sonuna ekleme yapılır. Testin görünmeyen bir iletişim kutusunda takılıp kalmasını önlemek amacıyla yalnızca test işlemleri için kullanışlıdır. GUI olmadan bu bağımsız değişken yoksayılır.
--help, -h, -? Komut satırı bağımsız değişkenleri ve seçenekleri hakkında kısa bir yardım sunar. Ardından Vim sonlanır.
--literal: Dosya adı bağımsız değişkenlerini harfiharfine (literal) alır, joker karakterleri (wildcards) genişletmez. Kabuğun joker karakterleri genişlettiği Unix üzerinde bunun bir etkisi yoktur.
--log {filename} Vim, eval ve channel özellikleriyle derlenmişse, günlüğe kaydetmeyi başlatır ve girdileri {filename} dosyasına yazar. Bu, başlatma sırasında çok erken bir aşamada ch_logfile({filename}, 'ao') çağrısı yapılması gibi çalışır.
--nofork: Ön plan (foreground). GUI sürümü için, Vim alt süreç oluşturup (fork) başlatıldığı kabuktan ayrılmayacaktır.--noplugin: Eklentilerin yüklenmesini atlar. -u NONE seçeneği bunu içerir.
--not-a-term Vim'e kullanıcının girdi ve/veya çıktının bir terminale bağlı olmadığını bildiğini belirtir. Bu, uyarıyı ve meydana gelecek iki saniyelik gecikmeyi önleyecektir.
--remote: Bir Vim sunucusuna bağlanır ve bağımsız değişkenlerin geri kalanında verilen dosyaları düzenlemesini sağlar. Sunucu bulunamazsa bir uyarı verilir ve dosyalar mevcut Vim içinde düzenlenir.
--remote-expr {expr} Bir Vim sunucusuna bağlanır, içinde {expr} ifadesini değerlendirir ve sonucu standart çıktıda (stdout) yazdırır.
--remote-send {keys} Bir Vim sunucusuna bağlanır ve ona {keys} tuşlarını gönderir.
--remote-silent --remote gibidir ancak sunucu bulunamadığında uyarı vermez.
--remote-wait --remote gibidir ancak dosyalar düzenlenene kadar Vim çıkış yapmaz.
--remote-wait-silent --remote-wait gibidir ancak sunucu bulunamadığında uyarı vermez.
--serverlist Bulunabilen tüm Vim sunucularının adlarını listeler.
--servername {name}
Sunucu adı olarak {name} kullanır. Başka bir sunucuya bağlanmak için bir --remote bağımsız değişkeniyle birlikte kullanılmadığı sürece, mevcut Vim için kullanılır. Socketserver arka ucu kullanılıyorsa, isim "/", "./" veya "../" ile başlıyorsa, sokete giden mutlak, göreli veya göreli bir yol olarak kabul edilir.
--clientserver {backend} Clientserver işlevselliği için arka uç olarak sırasıyla "socket" veya "x11" kullanır. Yalnızca hem socketserver hem de X11 özellikleri mevcut olacak şekilde derlendiğinde kullanılabilir.
--socketid {id} Yalnızca GTK GUI: gVim'i başka bir pencerede çalıştırmak için GtkPlug mekanizmasını kullanır.
--startuptime {file} Başlatma sırasında zamanlama mesajlarını {fname} dosyasına yazar.
--ttyfail: Standart girdi (stdin) veya standart çıktı (stdout) bir terminal (tty) olmadığında hemen çıkış yapar.--version: Sürüm bilgilerini yazdırır ve çıkar.
--windowid {id} Yalnızca Win32 GUI: gVim'in {id} penceresini üst pencere (parent) olarak kullanmaya çalışmasını sağlar, böylece o pencerenin içinde çalışır.
Çevrim içi Yardım
Başlamak için Vim içinde ":help" yazın. Belirli bir konuda yardım almak için ":help konu" yazın. Örneğin: "ZZ" komutu hakkında yardım almak için ":help ZZ" yazın. Konuları tamamlamak için
Dosyalar
/usr/local/share/vim/vim??/doc/*.txt Vim belgelendirme dosyaları. Tam listeyi almak için ":help doc-file-list" komutunu kullanın. Burada "vim??" kısa sürüm numarasıdır, örn. Vim 9.1 için vim91.
/usr/local/share/vim/vim??/doc/tags Belgelendirme dosyalarında bilgi bulmak için kullanılan etiketler (tags) dosyası.
/usr/local/share/vim/vim??/syntax/syntax.vim Sistem genelinde sözdizimi başlatma işlemleri.
/usr/local/share/vim/vim??/syntax/*.vim Çeşitli diller için sözdizimi dosyaları.
/usr/local/share/vim/vimrc Sistem genelinde Vim başlatma işlemleri.
~/.vimrc, ~/.vim/vimrc, $XDG_CONFIG_HOME/vim/vimrc Kişisel Vim başlatma işlemleriniz (bulunan ilk dosya kullanılır).
/usr/local/share/vim/gvimrc Sistem genelinde gvim başlatma işlemleri.
~/.gvimrc, ~/.vim/gvimrc, $XDG_CONFIG_HOME/vim/gvimrc Kişisel gVim başlatma işlemleriniz (bulunan ilk dosya kullanılır).
/usr/local/share/vim/vim??/optwin.vim Seçenekleri görüntülemek ve ayarlamak için güzel bir yol sunan ":options" komutu için kullanılan betik.
/usr/local/share/vim/vim??/menu.vim gVim için sistem genelinde menü başlatma işlemleri.
/usr/local/share/vim/vim??/bugreport.vim Hata raporu üretmek için kullanılan betik. Bkz. ":help bugs".
/usr/local/share/vim/vim??/filetype.vim Bir dosyanın türünü adına göre tespit etmek için kullanılan betik. Bkz. ":help 'filetype'".
/usr/local/share/vim/vim??/scripts.vim Bir dosyanın türünü içeriğine göre tespit etmek için kullanılan betik. Bkz. ":help 'filetype'".
/usr/local/share/vim/vim??/print/*.ps PostScript yazdırma için kullanılan dosyalar.
Güncel bilgiler için VIM ana sayfasını ziyaret edin: URL:http://www.vim.org/
Ayrıca Bakınız
vimtutor(1)
Yazar
Vim'in büyük bir kısmı, başkalarının da yardımıyla Bram Moolenaar tarafından geliştirilmiştir. Vim içindeki ":help credits" komutuna bakın. Vim, Stevie'ye dayanmaktadır; Stevie üzerinde çalışanlar: Tim Thompson, Tony Andrews ve G.R. (Fred) Walter. Ancak orijinal koddan neredeyse hiçbir şey kalmamıştır.
Hatalar
Muhtemelen var. Bilinen sorunların bir listesi için ":help todo" komutuna bakın.
Bazıları tarafından hata olarak görülebilecek bir dizi şeyin aslında Vi'ın davranışının sadık bir şekilde yeniden üretilmesinden kaynaklandığını unutmayın. Ve eğer diğer şeylerin "Vi bunu farklı yapıyor" diye hata olduğunu düşünüyorsanız, vi_diff.txt dosyasına daha yakından bakmalısınız (veya Vim içindeyken :help vi_diff.txt yazın). Ayrıca 'compatible' ve 'cpoptions' seçeneklerine de göz atın.
27 Haziran 2025 VIM(1)