Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Foto of the Auteur]
Ben Y. Yoshino

Yazar Hakkında:

Ben Yoshinori Yoshino Hawaii Üniversitesinde çalışmaktadır. Onun anasayfasına www.eng.hawaii.edu/~ben adresinden ulaşabilirsiniz.

İçerik:

VI Editörüne Hakim Olma

Çeviri : Zeynep Arslanoğlu

[VIM the edtitor]

Özet:

Bu, vi üzerine Ben Y. Yoshino tarafından yazılmış eğitsel bir yazıdır. Yazının aslı www.eng.hawaii.edu/Tutor/vi.html adresinde bulunabilir. Aynı yazar tarafından yazılmış başka eğitsel yazılar da bulunmaktadır: www.eng.hawaii.edu/Tutor/. Biz bu makaleyi www.rootprompt.org adresinde bulduk ve yazarın izniyle yayınladık.

VI editörü, birçok Unix kullanıcısı tarafından kullanılan ekran-tabanlı bir editördür. VI editörü, programcılara yardımcı olacak birçok güçlü özelliğe sahiptir; ama çoğu yeni başlayan kullanıcı VI kullanmaz; çünkü değişik özelliklerin çokluğu onları korkutur. Bu eğitsel yazı, yeni başlayanların VI editörünü kullanmaya alışmalarına yardımcı olmak için yazılmıştır; fakat VI'ın normal seviyedeki kullanıcılarıyla ilgili bölümler de içermektedir. Örnekler sağlanmıştır ve öğrenmenin en iyi yolu bu örnekleri denerken, kendi örneklerinizi de düşünmektir. Bir şeyi kendinizin tecrübe etmenizden daha iyi bir yol olamaz.



 

Uylaşımlar

Bu eğitsel yazıda aşağıdaki uylaşımlar kullanılacaktır:

^X bir kontrol karakterini göstermektedir. Örneğin eğer yazıda,^d görürseniz bu, "control" tuşunu basılı tutarak ilgili harfe basacaksınız demektir. Bu örnek için, "control" tuşunu basılı tutacak ve ardından d ye basacaksınız.

 

Başlamadan Önce

Bu bölüm, xterm gnome-terminali, kvt, aterm gibi modern terminal emülatörlerine sahip Linux kullanıcılarıyla ilgili değildir. Bu terminal pencereleriyle $TERM kabuk değişkeni daima doğru değeri alacaktır; bu yüzden bu konuda endişelenmenize gerek yoktur.

VI editörü tüm ekranı kullanır; bu yüzden ne tür bir terminaliniz olduğunu bilmesi gerekir. Sisteme girdiğinizde, wiliki (wiliki, Hawaii Üniversitesindeki ana Mühendislik sunucusunun adıdır ) size hangi terminali kullandığınızı soracaktır. Karşınıza gelecek imleç şöyle görünecektir:

 	TERM = (vt100) 

Terminalinizin bir vt100 (veya vt100 gibi davranabilen bir emülatör) olduğunu biliyorsanız, sisteme girdiğinizde terminal tipi için "return" tuşuna basın. Eğer bir hp terminaliniz varsa, terminal türü için "hp" yazın ve "return" e basın. Eğer ne tür terminaliniz olduğundan emin değilseniz sistem yöneticinize sorun veya sizin için doğru terminal türünü ayarlayabilecek birinden yardım isteyin.

Eğer sisteme girdiğinizde bir hata yapar ve yanlış terminal türü girerseniz paniğe kapılmayın. Sistemden çıkın ve ayarları düzeltmek için aşağıdaki komutları verin:

Artık terminal tipi (umuyoruz ki) doğru olarak ayarlandı ve VI'ı başlatmak için hazırsınız.

 

VI Editörünü Başlatma

VI editörü, kullanıcıların yeni dosyalar yaratmasına veya varolan dosyaları değiştirmesine izin verir. VI editörünü başlatmak için gereken komut, ardına dosya adı eklenerek verilecek vi komutudur. Örneğin gecici adlı bir dosyada değişiklik yapabilmek için, vi gecici yazacak ve "return" tuşuna basacaksınız. VI'ı dosya adı olmadan da başlatabilirsiniz; fakat daha sonra çalışmanızı kaydetmek istediğinizde VI'a hangi dosya adını kullanacağını belirtmek zorundasınız.

VI'ı ilk kez başlattığınızda sol tarafı tildelerle dolu bir ekran göreceksiniz. (Bir tilde şuna benzer: ~) Dosya sonundan sonraki tüm boş satırlar bu şekilde gösterilir. Ekranınızın sonunda dosya adı görünmelidir. Eğer önceden varolan bir dosya adı belirlediyseniz dosyanın boyutu da aynı yerde şu şekilde yazılı olmalıdır:


"dosya_adi" 21 lines, 385 characters

Eğer adını verdiğiniz dosya önceden yoksa, o zaman bunun yeni bir dosya olduğunu size şu şekilde gösterecektir:


"yeni_dosya"  [New file]

Eğer VI'ı dosya adı olmadan başlattıysanız, ekranın son satırı VI başladığında boş olacaktır. Eğer ekranda bu beklenen sonuçlar görülmüyorsa terminal tipiniz yanlış ayarlanmış olabilir demektir. :q yazın ve VI'ın dışına çıkarak terminal tipinizi düzeltin. Nasıl yapılacağını bilmiyorsanız sistem yöneticinize danışın.

 

VI'ın Dışına Çıkma

Artık VI'a nasıl gireceğinizi bildiğinize göre nasıl çıkacağınızı da bilmeniz iyi olur. VI editörü iki mod a sahiptir ve VI'ın dışına çıkmak için komut modunda olmanız gerekir. "Escape" veya "Esc" yazılı tuşa basın. (Terminalinizde böyle bir tuş yoksa ^[, veya control-[.) kombinasyonlarını deneyerek komut moduna geçin. Eğer "Escape" tuşuna bastığınızda zaten komut modunda iseniz, endişelenmeyin. Bir bip sesi gelebilir; fakat hala komut modunda olacaksınız.

VI'ı bırakmak için komut :q dur. komut moduna girdiğinizde, "iki nokta üstüste" ve 'q' tuşlarının ardından "return" e basın. Eğer dosyanızda bir şekilde değişiklik yapılmışsa, editör bu konuda sizi uyaracak ve çıkmanıza izin vermeyecektir. Bu meajı gözardı etmek ve değişikikleri kaydetmeden VI'dan çıkmak için :q! yazın.

Normal olarak bir editörde, yaptığınız değişiklikleri kaydetmeyi de isteyeceksiniz. Editörün içeriğini kaydetmek için gereken komut :w dur. Bu komutu editörden çıkma komutuyla birleştirebilir ve :wq yazabilirsiniz. :w komutunun ardından bir dosya adı vererek yazdıklarınızı farklı bir dosya adıyla da kaydedebilirsiniz. Örneğin çalıştığınız dosyayı dosya2 adıyla kaydetmek istiyorsanız: w dosya2 yazıp "return" e basmalısınız.

Değişikliklerinizi kaydedip VI'ı bırakmanın bir başka yolu ise ZZ komutudur. komut modundayken, ZZ yazın. Bu komut :wq ile aynı işi görecektir. Dosyada herhangi bir değişiklik yapıldıysa bunlar kaydedilecektir. Bu yalnızca iki tuşa basarak editörden çıkmanın en kolay yoludur.

 

VI'ın İki Modu

Çoğu kullanıcının VI editörü hakkında ilk öğrendiği şey, iki modunun olduğudur: komut ve yazım. komut modu, yazıda değişiklik yapabilmek için gereken komutların girilmesine imkan verir. Bu komutlar genellikle bir ya da iki karakter uzunluğundadır ve çok az tuşa basarak girilebilir. yazım modu, klavyeden girilen her şeyin dosyaya yazılmasını sağlar.

VI komut modunda başlar. VI editörünü yazım moduna sokan birçok komut vardır. Bunalrın en sık kullanılanları ise a ve i dir. Bu iki komut aşağıda tanıtılmaktadır. Bir kez yazım moduna girdiğinizde, escape tuşuna basarak bu moddan çıkabilirsiniz. Eğer terminaliniz bunu desteklemiyorsa, ^[ birleşimi işe yaramalıdır(control-[). "escape" tuşuna iki kez basarsanız VI kesinlikle komut modunda olacaktır. Önceden komut modunda olmanız halinde escape e basmanız, editörü komut modundan çıkartmaz. Yalnızca, zaten komut modunda olduğunuzu size anlatan bir bip sesi duyabilirsiniz.

 

Komut Modunda Komutların Yazılması

Komut modu komutları genellikle şu biçimdedir: (Seçime bağlı argümanlar, köşeli parantezler içinde verilmektedir)

Kontrol karakterleri kullanan komutlar da dahil çoğu komutlar bir karakter uzunluğundadır. Bu bölümde tanıtılan komutlar, VI editöründe en sık kullanılan komutlardır.

sayı, 1'den 9'a kadar olan rakamlardan herhangi biriyle başlayabilen bir sayıdır. Örneğin x komutu, imlecin altındaki bir tek karakteri siler. Eğer komut modundayken 23x yazarsanız, 23 karakter silinecektir.

Bazı komutlar seçime bağlı bir nerede parametresi kullanabilirler. Bu parametreyle belgenin kaç satırının ya da ne kadarının komuttan etkilendiği verilebilir. nerede parametresi aynı zamanda, imleci hareket ettiren herhangi bir komut olabilir.

 

Bazı Kolay VI Komutları

Bir kullanıcının VI'a yeni başlayabilmesi için gereken bazı basit komutlar buradadır. Daha birçok uygun komut ileriki bölümlerde ele alınacaktır.

a
yazım moduna gir. Yazılan karakterler imlecin o anki yerinden sonraya eklenecektir. Bir sayı belirtirseniz, girilmiş olan yazının bütünü o sayı kadar tekrar yazılacaktır.
h
imleci sola bir karakter hareket ettir.
i
yazım moduna gir.Yazılan karakterler imlecin o anki yerinden önceye eklenecektir. Bir sayı belirtirseniz, girilmiş olan yazının bütünü o sayı kadar tekrar yazılacaktır.
j
imleci bir satır aşağı hareket ettir.
k
imleci bir satır yukarı hareket ettir.
l
imleci sağa bir karakter hareket ettir.
r
imlecin altındaki bir karakteri değiştir. Birden fazla karakteri değiştirmek için sayı belirtin.
u
dosyadaki son değişikliği geri al. u komutunu tekrar vermek değişikliği yeniden yapacaktır.
x
imlecin altındaki bir karakteri sil. Sayı kaç karakter silineceğini belirtir. İmleçten sonra gelen karakterler silinecektir.

 

VI'da Yazı Tamponları (Text Buffers)

VI editörü yazı parçacıklarını depolayacak 36 tampona ve bir de genel amaçlı tampona sahiptir. Dosyadan bir yazı bloğu silindiğinde ya da kopyalandığında, bu parça genel amaçlı tampona yerleştirilir. Çoğu VI kullanıcısı diğer tamponları nadiren kullanır ve onlar olmadan da rahat edebilir. Eğer belirtilirse, yazı bloğu başka bir tamponda da saklanır. Tampon, " komutu kullanılarak belirtilir. " yazdıktan sonra, tamponu belirleyen bir harf veya hane girilmelidir. Örneğin, "mdd komutu, m tamponunu kullanır ve son iki karakter, bulunulan satırı sildirmeye yarar. Benzer şekilde yazı, p veya P komutları kullanılarak yapıştırılabilir. "mp komutu, m tamponunun içeriğini imlecin bulunduğu yerden sonraya yapıştırır. Sonraki iki bölümde kullanılan komutlar için bu tamponlar, kelime veya paragrafların geçici depolama yerleri olarak belirlenebilir.

 

Kesme ve Kopyalama

Kesme için genel olarak kullanılan komut d dir. Bu komut, yazıyı dosyadan siler. Komuttan önce seçime bağlı olarak bir sayı kullanılabilir ve ardına da bir hareket ettirme özelliği eklenebilir. Eğer komutu tekrarlayarak dd yazarsanız, bulunulan satırı silersiniz. İşte bunların birkaç farklı birleşimi:

d^
imlecin bulunduğu yerden satırın başına kadar siler
d$
imlecin bulunduğu yerden satırın sonuna kadar siler
dw
imlecin bulunduğu yerden sözcüğün sonuna kadar siler
3dd
imlecin bulunduğu yerden itibaren aşağıdaki üç satırı siler.

Bir de y komutu (kopyalama komutu) vardır ki, d komutuna benzer çalışırken dosyadaki yazıyı silmeden onu alır.

 

Yapıştırma

Yapıştırma komutları p ve P dır. Tek farkları ise, p belirlenen veya genel tamponu imleç pozisyonundan sonra yapıştırırken; P nin imleçten önce yapıştırmasıdır. Yapıştırma komutundan önce bir sayı belirtmek, yazıyı belirlenen sayı kez tekrar yapıştırır.

 

Kodunuzu Hizalama ve Kontrol Etme

VI editörü, programcıların kodlarını istedikleri düzgünlükte biçimlendirmelerine yardımcı olacak özelliklere sahiptir. Kodun içindeki her yuvalanma seviyesindeki hizayı ayarlayacak bir değişken vardır. Bunu ayarlamak için bu yazının özelleştirme bölümü ne göz atın. Örneğin, kaydırma genişliğini(shiftwidth) 4 karaktere ayarlamak için gereken komut :set sw=4 tür.

Aşağıdaki komutlar satırlarınızı hizalar veya hizalamayı kaldırır. Bunlarla beraber bir sayı da belirtilebilir:

<<
Bulunulan satırı bir kaydırma genişliği sola kaydırır.
>>
Bulunulan satırı bir kaydırma genişliği saga kaydırır.

VI editörü aynı zamanda kaynak kodunuzu, tek kalan parantez olup olmadığını kontrol etmek için inceleyen bir özelliğe sahiptir. % komutu, bir sağ paranteze karşı gelen sol parantezi aramaya (ya da tam tersi) yarar. İmleci bir parantezin ya da köşeli parantezin üzerine getirip % yazarsanız ona kaşılık gelecek parantez bulunacaktır. Karşılığı olmayan bir parantez bulunursa, VI bip sesi çıkartarak size bunu gösterecektir.

 

Kelime ve Karakter Arama

VI editörü iki çeşit aramaya sahiptir: katar veya karakter. Bir katar aramak için, / ve ? komutları kullanılır. Bu komutları verdiğinizde yazdıklarınız, aradığınız katarı girdiğiniz ekranın en alt satırında görülecektir. Bu iki komut yalnızca katarı aradıkları yönler açısından farklıdır. / komutu dosyada aşağı doğru arama yaparken, ? komutu yukarı doğru arama yapar. n ve N komutları önceki aramayı, sırasıyla, aynı veya zıt yönde tekrar ederler. VI'da bazı karakterlerin özel anlamı vardır. Bunların, aranan ifadenin bir parçası olabilmeleri için önlerine birer "\" karakteri konmalıdır.

Özel karakterler:

^
Satırın başı. (Aranan bir ifadenin başında.)
.
Tek bir karaktere karşı gelir.
*
Kendinden önceki karakterin sıfır veya daha fazla tekrarına karşı gelir.
$
Satırın sonu. (Aranan bir ifadenin sonunda.)
[
Bir dizi uyan veya uymayan karakteri başlatır.Örneğin: /f[iae]t şunlardan herhangi birine uyar: fit fat fet
^ ile kullanıldığında ise "[ ]" içindeki harfler dışında her şeye uyar: /a[^bcd] şunların hiçbirine uymayacaktır: ab ac ad ;fakat a harfinin yanında b c d olmayan tüm katarlara uyacaktır.
<
Birsözcüğün başlangıcını veya sonunu bulmak için "\" ardından bir ifade yazın.Örneğin: /\<kaz\> yalnızca kaz sözcüğünü bulur; ikaz ve kaza gibi sözcükleri bulmaz.
>
Yukarıdaki '<' karakterinin tanıtımına bakın.

Karakter arama ise bir satır içinde, komuttan sonra girilen karakteri arar. f ve F komutları, yalnızca bulunulan satırda karakteri ararlar. f ileri doğru, F ise geriye doğru arama yapar. İmleç, bulunan karakterin üzerine gelir.

t ve T komutları yalnızca bulunulan satırda karakteri ararlar; fakat t ile imleç, bulunan karakterden önce dururken ,T satırı geriye doğru arar ve imleci karakterden sonraya yerleştirir.

Bu iki komut takımı ; veya , komutları kullanılarak tekrar edilebilir. Burada ; son karakter aramasını aynı yönde yaparken , komutu ters yönde tekrar eder.

"ic" seçeneğiyle; (veya ignorecase ile ) set (type :set ic) aynı zamanda büyük küçük harf duyarlığı olmadan arama yapılabilir.

 

VI ve EX için Ayarlar

VI'ın davranış biçimini başlangıçta tanımlayabilirsiniz. :set komutuyla ayarlayabileceğiniz birçok yazım seçeneği vardır. İşte Wiliki'de bulunan VI ve EX editörü seçenekleri: ( Bu listeyi elde etmek için komut modundayken :set all yazmanız ve ardından return e basmanız yeterlidir)

noautoindent magic noshowmatch autoprint mesg noshowmode noautowrite nomodelines noslowopen nobeautify nonumber tabstop=8 directory=/tmp nonovice taglength=0 nodoubleescape nooptimize tags=tags /usr/lib/tags noedcompatible paragraphs=IPLPPPQPP LIpplpipnpbp term=xterm noerrorbells prompt noterse noexrc noreadonly timeout flash redraw timeoutlen=500 hardtabs=8 remap ttytype=xterm noignorecase report=5 warn keyboardedit scroll=11 window=23 keyboardedit! sections=NHSHH HUuhsh+c wrapscan nolisp shell=/bin/csh wrapmargin=0 nolist shiftwidth=8 nowriteany

Bu seçeneklerin bazıları, içlerindeki '=' işaretleriyle değerlerini almıştır. Diğerlerinin ise bazıları ayarlı, bazıları değildir. (Bu açık veya kapalı tarzı seçeneklere Boolean adı verilir ve ayarlı olmadıklarını göstermek için önlerinde "no" yazılıdır.) Burada gösterilen seçenekler, hiçbir özelleştirmeye gerek duymayan seçeneklerdir. Bunların bazılarının tanımları aşağıda, bir kısaltmayla verilmiştir. Örneğin set autoindent komutunu açmak için :set autoindent veya :set ai yazabilirsiniz. Kapatmak içinse::set noautoindent veya :set noai yazılmalıdır.

autoindent (ai)
Bu seçenek editörü öyle ayarlar ki, içeri hizalanmış bir satırı takip eden diğer satırlar da öncekiyle aynı hizalamaya sahip olur. Bu hizalamayı geri almak için, ilk karakter pozisyonundayken ^D 'ye basılmalıdır. ^D yazım modundayken çalışır; komut modunda çalışmaz. Ayrıca, içeri hizalamanın genişliği aşağıda açıklanacağı gibi shiftwidth ile ayarlanabilir.
exrc
Bulunulan dizindeki .exrc dosyası başlangıçta okunur. Bu, ya EXINIT çevresel değişkeniyle veya ana dizininizdeki .exrc dosyasıyla ayarlanır.
mesg
Bu seçenek :set nomesg kullanılarak kapatılırsa siz editörü kullanırken kimse sizi rahatsız edemez.
number (nu)
Satırların solunda satır numaralarını gösterir.
shiftwidth (sw)
Bu seçenek aldığı değerle yazılım tabstop genişliğini ayarlar. ( Yazılım tabstop, << ve >> komutları için kullanılır.) Örneğin şu komutla kaydırma genişliğini 4'e ayarlarsınız: :set sw=4.
showmode (smd)
Bu seçenek, editörün, içinde bulunduğunuz modunu gösterir. Eğer yazım modundaysanız ekranın en alt satırında INPUT MODE yazacaktır.
warn
Bu seçenek, dosyada değişiklik yapıp henüz kaydetmediğiniz durumda sizi uyaracaktır.
window (wi)
Bu seçenek VI'ın kullandığı penceredeki satırların sayısını ayarlayacaktır. Örneğin VI editörünü ekranınızın yalnızca 12 satırını kullanmak üzere ayarlamak istiyorsanız (örneğin modeminiz yavaş olduğu için) şunu kullanmanız gerekecektir: :set wi=12.
wrapscan (ws)
Bu seçenek kelime aramanın davranışını etkiler. Eğer wrapscan açıksa ve sözcük dosyanın sonuna kadar bulunamadıysa aramaya baştan başlayacaktır.
wrapmargin (wm)
Bu seçenek sıfırdan büyük bir değer alırsa, editör kendiliğinden "word wrap" yapacaktır. Yani, sol kenardan belirtilen sayı kadar boşluk içeri girerseniz, 'return' e basmanıza gerek kalmadan sözcük alt satıra inecektir. Örneğin, kenar kalınlığını (wrap margin) iki karaktere ayarlamak için şunu yazmanız gerekecektir: :set wm=2.

 

Kısaltmalar ve Tuşları Başka Tuşlara Haritalama

VI editöründe yararlanılan bir EX editörü komutu abbreviate tir. Bu özellik, belirtilen katarlar için kısaltmalar yapabilmenizi sağlar. Komut şuna benzer: :ab katar yerine konulacak şey. Örneğin "Humuhumunukunukuapua`a" adını yazmak zorundaysanız ama bütün ismi yazmak istemiyoranız bunun için bir kısaltma kullanabilirsiniz. Bu örnek için komutumuz şöyle girilebilir:
:ab 9u Humuhumunukunukuapua`a
Artık her 9u yazışınızda (ayrı bir kelime olarak), VI belirtilen kelime ya da kelimeleri girecektir. Eğer 9university yazarsanız bu kelimeyi değiştirmeyecektir.

Önceden belirtilmiş bir kısaltmayı kaldırmak için gereken komut unabbreviate 'tir. Önceki örneği kaldırmak için gereken komut ":una 9u" olacaktır. Kısaltmalarınzın bir listesini görebilmek için :ab yazmanız yeterlidir.

Özelleştirme için yararlı bir diğer EX editörü komutu haritalandırma komutudur. İki çeşit haritalandırma komutu vardır. Biri komut modu, diğeri yazım modu içindir. Bu iki komut sırasıyla :map ve :map! komutlarıdır. Haritalandırma, kısaltmaya benzer çalışır. Ona bir tuş sıralaması verir ve onunla yer değiştirecek bir başka tuş sıralaması daha verirsiniz. (Yer değiştirilen tuş sıralamaları genellikle VI komutlarıdır.)

 

EXINIT Çevresel Değişkeni ve .exrc dosyası

VI editörünü özelleştirmenin iki yolu vardır. Ana dizininizde .exrc adlı bir dosya yaratırsanız dosyadaki tüm komutlar VI'ın açılışında okunacatır. Diğer yöntem ise EXINIT adlı bir çevresel değişkeni ayarlamaktır. Seçenekler, kabuğunuzun ayar dosyasında ayarlanacaktır. Eğer /bin/csh (C-Shell) kullanıyorsanız, gereken komut .cshrc dosyasına yazılır ve şöyledir:


    setenv EXINIT '...'

Eğer /bin/sh veya /bin/ksh kullanıyorsanız, gereken komut .profile dosyasına yazılır ve şöyledir:

    export EXINIT

    EXINIT='...'

Örnekteki gibi ... koymayın. Bu boşluğa, ayarlamak istediğiniz komutları girin. Örneğin, otomatik hizalama, satır numaralama ve üç karakterlik kenar genişliği ayarlamak istiyorsanız (C kabuğu için) setenv komutu şöyle olacaktır:
     setenv EXINIT 'set ai nu wm=3' 

Eğer setenv EXINIT in içine birden fazla şey koymak istiyorsanız komutları bir boru ile ayırın (|). Örneğin komut modundaki 'g' komutunu 'G' ile değiştirmek için komut :map g G, ve yukarıdaki komutla birleştirilerek şunu elde edersiniz:

 setenv EXINIT 'set ai nu wm=3|map g G' 

.exrc dosyasını yaratmak istiyorsanız, tamamen aynı şeyleri EXINIT den sonra gösterildiği gibi dosyaya yazmalısınız.

 

Terminalinizde Bir Sorun Olduğunda Çalışmalarınızı Kurtarma

VI editörü, dosyanızın geçici bir kopyasını yazar ve siz ona kaydetmesini söylediğinizde veya yazma işi bittiğinde geçici kopyanıniçeriğini asıl dosyaya koyar. Eğer doyanızı yazarken bir sorun çıkarsa VI editörü yaptığınız tüm çalışmaları kaydetmeye çalışacak ve daha sonra kurtarmak için depolayacaktır. (Not: Eğer siz herhangi bir dosya üzerinde çalışırken VI ölürse, size çalışmanızı nasıl kurtaracağınıza dair bir elektronik ileti yollayacaktır. -r seçeneği kurtarma anlamına gelen 'recovery' sözcüğü yerine geçer. Örneğin hayati dosyasında değişiklik yaparken kazayla sistemden çıktıysanız vi editörünün -r seçeneği yardımcı olacaktır. Komut hemen hemen şuna benzeyecektir:
vi -r vitalinfo
-r seçeneğini bir kez kullandıktan sonra kurtardığınız çalışmayı kaydetmeniz ŞARTTIR. -r seçeneği her kusurlu işleme için bir kez işe yarayacaktır.

 

İş-İstasyonlarında VI Kullanımıyla İlgili Uyarı

İş-istasyonlarını kullanırken dikkat edilecek iki şey vardır: Aynı dosyayı aynı anda birden fazla yerde değiştirmek ve ekranın boyutunu değiştirmek.

VI asıl dosyanızın geçici bir kopyasını oluşturup bu kopyanın içeriğini dosyanın aslına kaydettiği için, birden fazla konsoldan sisteme girmiş olmanız ve bir dosyayı birden fazla yerde VI kullanarak değiştiriyor olmanız durumunda bir pencerede kaydeder ardından da bir başka pencerede kaydederseniz ilk kayıt işleminde yaptığınız değişiklikler, ikinci kayıt tarafından silinecektir. Bu yüzden VI da her dosyanın bir tek kopyasını çalıştırdığınızdan emin olun.

Bir iş-istasyonunda bir terminal programı kullanıyorsanız, ekranın boyutunu pencerenin kenarlarını sürükleyerek değiştirebilirsiniz. Eğer bu özellik düzgün çalışmıyorsa bunun için gereken komut :

     eval `resize` 
Bu da işe yaramazsa komutumuz:

    eval `/usr/bin/X11R6/resize`

olacaktır. Bu, VI'ın özellikle Vim gibi yeni sürümleri için nadir rastlanabilecek bir sorundur.

 

VI Komutlarının Özeti

Bu liste VI komutlarının fonksiyonlarına göre sınıflandırılmış bir özetidir. Erişilebilir başka komutlar da olabilir bu yüzden VI üzerine yazılmış elyordam sayfası adresini ziyaret edin. Kolay kullanım için bu dosyayı kaydedebilir ve kullanmayacağınızı düşündüğünüz komutları silerek daha kısa bir dosya elde edebilirsiniz.

Kesme ve Yapıştırma/Yazı Silme

"
Tampon kullanan herhangi bir komut tarafından kullanılacak tamponu belirle. " işaretinden sonra bir tampona karşı gelecek hane ya da harf gir.
D
İmlecin bulunduğu yerden satır sonuna kadar sil.
P
Belirtilen tamponun içeriğini imleci bulunduğu yerden veya satırdan önceye yapıştır. Eğer tampon belirtilmemişse 'P' genel tamponu kullanacaktır.
X
İmlecin bulunduğu yerden önceki karakteri sil.
Y
Bulunulan satırı belirtilen tampona kopyala. Eğer tampon belirtilmemişse genel tampon kullanılacaktır.
d
nerede ye kadar sil. "dd" bulunulan satırı siler. Sayı verilirse o kadar satır silinir. Silinen her şey " komutuyla belirtilen tampona yerleştirilir. Eğer tampon belirtilmemişse genel tampon kullanılacaktır.
p
Belirtilen tamponun içeriğini imleci bulunduğu yerden veya satırdan sonraya yapıştır. Eğer tampon belirtilmemişse 'p' genel tamponu kullanacaktır.
x
İmlecin altındaki karakteri sil. Sayı verilirse o kadar karakter silinir. Karakterler imleçten sonra silinecektir.
y
nerede ye kadar kopyala ve sonucu tampona yerleştir. "yy" bulunulan satırı kopyalar. Tampon " komutuyla belirlenebilir. Sayı verilirse o kadar satır kopyalanır. Eğer tampon belirtilmemişse genel tampon kullanılacaktır.

Yeni Yazı Yazma

A
Bulunulan satırın sonuna ekle.
I
Bir satırın başından itibaren yaz.
O
(Harf olan O ) Bulunulan imlec pozisyonunun üstündeki yeni satırda komut moduna gir.
a
komut moduna gir. Yazılan karakterler bulunulan imlec pozisyonundan sonra yazılcaktır. Sayı belirtilirse girilen yazı o kadar tekrar edilerek yazılacaktır.
i
komut moduna gir. Yazılan karakterler bulunulan imlec pozisyonundan önce yazılacaktır. Sayı belirtilirse girilen yazı o kadar tekrar edilerek yazılacaktır.
o
Bulunulan imleç pozisyonunun altındaki yeni satırda komut moduna gir.

İmleci Dosyanın İçinde Hareket Ettirme

^B
Bir sayfa geriye dön. Sayı verilirse o kadar sayfa geri dönülecektir.
^D
Yarım pencere ileri git. Sayı verilirse o kadar satır ileri gidilecektir.
^F
Bir sayfa ileriye git. Sayı verilirse o kadar sayfa ileri gidilecektir.
^H
İmleci sola bir karakter oynat. Sayı verilirse o kadar karakter gidilecektir.
^J
İmleci aynı kolonda bir satır aşağı oynat. Sayı verilirse o kadar satır aşağı inilecektir.
^M
Bir sonraki satırın ilk karakterine git.
^N
İmleci aynı kolonda bir satır aşağı oynat. Sayı verilirse o kadar satır aşağı inilecektir.
^P
İmleci aynı kolonda bir satır yukarı oynat. Sayı verilirse o kadar satır yukarı çıkılacaktır.
^U
Yarım pencere geri git. Sayı verilirse o kadar satır geri gidilecektir.
$
İmleci bulunulan satırın sonuna götür. Sayı verilirse takip eden satırların sonuna gidilecektir.
%
İmleci karşılık gelen parantez veya köşeli parantezlerin üzerine götür.
^
İmleci, boşluk olmayan ilk karakterin üzerine götür.
(
İmleci cümlenin başına götür.
)
İmleci bir sonraki cümlenin başına götür.
{
İmleci önceki paragrafa götür.
}
İmleci sonraki paragrafa götür.
|
İmleci sayı ile belirtilen kolona götür.
+
İmleci, sonraki satırda boşluk olmayan ilk karakterin üzerine götür.
-
İmleci, önceki satırda boşluk olmayan ilk karakterin üzerine götür.
_
İmleci, bulunulan satırda boşluk olmayan ilk karakterin üzerine götür.
0
(Sıfır) İmleci bulunulan satırın ilk kolonuna götür.
B
İmleci, noktalama işaretlerini atlayarak, bir kelime geriye götür.
E
İleri doğru, noktalama işaretlerini atlayarak, kelimenin sonuna git.
G
Sayı ile belirtilen numaralı satıra git. Eğer sayı verilmemişse dosyanın sonuna git.
H
İmleci, ekranın başındaki ilk boşluk olmayan karaktere götür.
L
İmleci, ekranın sonundaki ilk boşluk olmayan karaktere götür.
M
İmleci, ekranın ortasındaki ilk boşluk olmayan karaktere götür.
W
İleri doğru, noktalama işaretlerini atlayarak, kelimenin başına git.
b
İmleci geriye doğru bir kelime götür;eğer imleç bir kelimenin ortasındaysa imleci o kelimenin ilk karakterine götür.
e
İmleci ileriye doğru bir kelime götür;eğer imleç bir kelimenin ortasındaysa imleci o kelimenin son karakterine götür.
h
İmleci bir karakter sola götür.
j
İmleci bir satır aşağı götür.
k
İmleci bir satır yukarı götür.
l
İmleci bir karakter sağa götür.
w
İmleci bir kelime ileri götür; eğer imleç bir kelimenin ortasındaysa imleci ondan sonraki kelimenin ilk karakterine götür.

İmleci Ekran Etrafında Dolaştırma

^E
Bir satır ileriye git. Sayı verilirse o kadar satır ileri gidilir.
^Y
Bir satır geriye git. Sayı verilirse o kadar satır geri gidilir.
z
Ekranı aşağıdaki seçeneklerle tekrar çiz. "z<return>" bulunulan satırı ekranın en başına getirir; "z." bulunulan satırı ekranın ortasına getirir; ve "z-" bulunulan satırı ekranın sonuna getirir. 'z' komutundan önce bir sayı belirtirseniz, bulunulan satırı verilen numaralı satır yapar. Örneğin, "16z." 16 numaralı satırı ekranın ortasına getirir.

Yazıların Yerlerini Değiştirme

C
Bulunulan yerden satırın sonuna kadar git.
R
Ekrandaki karakterleri, Escape tuşuna basılana kadar, girilen karakterlerle değiştir.
S
Bütün bir satırı değiştir.
c
nerede ye kadar değiştir. "cc" bulunulan satırı değiştirir. Sayı verilirse o kadar satır değiştirilir.
r
İmlecin altındaki karakteri değiştir. Birden fazla karakteri değiştirmek için bir sayı verilmelidir.
s
İmlecin altındaki karakteri değiştir ve komut moduna geri dön. Birden fazla karakteri değiştirmek için bir sayı verilmelidir. Yer değiştirilecek son karaktere bir dolar işareti ($) yerleştirilecektir.

Yazı veya Karakter Arama

,
Son f, F, t veya T komutunu ters yönde tekrarla.
/
/ dan sonra verilen katarı dosyanın içinde aşağı doğru ara.
;
Son f, F, t veya T komutunu tekrarla.
?
? den sonra verilen katarı dosyanın içinde yukarı doğru ara.
F
'F' komutundan sonra verilen karakteri, bulunulan satırda geriye doğru ara. Eğer bulunursa imleci oraya hareket ettir.
N
'/' veya '?' ile verilen son aramayı tekrar et. Ters yönde ara.
T
'T' komutundan sonra verilen karakteri, bulunulan satırda geriye doğru ara. Eğer bulunursa imleci ondan sonraki sütuna hareket ettir.
f
'f' komutundan sonra verilen karakteri, bulunulan satırda ara. Eğer bulunursa imleci oraya hareket ettir.
n
'/' veya '?' ile verilen son aramayı tekrarla.
t
't' komutundan sonra verilen karakteri, bulunulan satırda ara. Eğer bulunursa imleci o karakterden önceki sütuna hareket ettir.

Karakter/Satır Biçimlemelerini(Formatting) Değiştirme

~
İmlecin altındaki karakteri büyükse küçük harfe, küçükse büyük harfe çevir.
<
nerede ye kadar olan satırları sola bir kaydırma genişliği kaydır. "<<" bulunulan satırı sola kaydırır ve yanında bir sayı da verilebilir.
>
i>nerede ye kadar olan satırları sağa bir kaydırma genişliği kaydır. ">>" bulunulan satırı sağa kaydırır ve yanında bir sayı da verilebilir.
J
Bulunulan satırı öncekiyle birleştir. Sayı verilirse o kadar sayıda satır birleştirilir.

Kaydetme ve Çıkma

^\
"VI" modundan çık ve "EX" moduna gir. EX editörü, VI'ın üzerine kurulu olduğu satır editörüdür. VI a geri dönmek için gereken EX komutu ":vi" dır.
Q
"VI" modundan çık ve "EX" modunda gir. ex editörü satır satır çalışan bir editördür. VI a geri dönmek için gereken EX komutu ":vi" dır.
ZZ
Bir değişiklik yapılmışsa değşiklikleri kaydederek editörden çık.

Derleme

^G
Bulunulan dosya adını ve dosyadaki yeri göster.
^L
Ekranı temizle ve yeniden göster.
^R
Yanlış satırları silerek ekranı yeniden göster.
^[
Escape tuşu. Tamamlanmamış komutları iptal eder.
^^
En son değiştirilen dosyaya geri dön.
!
Bir kabuk çalıştır. Eğer bir belirtilmişse ! kullanılarak çalıştırılan program, bu belirtilen satır(lar)ı standart girdi olarak kullanır ve bu satırların yerine çalıştırılan programın standart çıktısını koyar. "!!" ise, bulunulan satırı standart girdi olarak algılarak programı çalıştırır. Örneğin, "!4jsort" bulunulan imleç pozisyonundan itibaren beş satır alacak ve sort komutunu çalıştıracaktır. Bu komutu yazdıktan sonra, komutu girebileceğiniz bir tek ünlem işareti olacaktır.
&
Önceki ":s" komutunu tekrarla.
.
Dosyayı değiştiren son komutu tekrarla.
:
Bir EX editörü komutu yazmaya başla. Kullanıcı bir kez return tuşuna bastığında komut çalıştırılacaktır.(Aşağıdaki bölüme bekınız.)
@
Belirtilen tampondaki komutu yaz.
U
Bulunulan satırı, imleç satıra girmeden önceki haline getir.
m
'm' komutundan sonra sonra belirtilen karakterle, bulunduğun pozisyonu işaretle.
u
Dosyada yapılan son değişikliği geri al. Tekrar 'u' yazmak değişikliği yeniden yapacaktır.

EX Komutları

VI editörü, EX adlı bir başka editör üzerine inşaa edilmiştir. EX editörü yalnızca satır satır değişiklik yapar. VI Editöründen bir EX komutu girmeye başlamak istiyorsanız : komutunu kullanırsınız. Burada verilen liste tam değildir; fakat verilen komutlar, en sık kullanılanlardır. Eğer belli komutlarla (örneğin ":s" ve ":w") birden fazla satır değişikliğe uğratılacaksa komuttan önce değişiklik aralığı belirtilmelidir. Örneğin, 3 ten 15 e kadar olan satırlardaki "from" sözcüklerini "this" ile değiştirmek için verilmesi gereken komut şöyledir: ":3,15s/from/this/g" .

:ab string strings
Kısaltma. Eğer VI'da string1 ile ilgili bir sözcük yazılırsa editör kendiliğinden onunla bağlantılı sözcükleri girer. Örneğin, ":ab usa United States of America" kısaltması her "usa" girilişinde "United States of America" kelimelerini yazacaktır.
:map keys new_seq
Haritalama. Bu özellik bir veya bir dizi tuşu bir veya bir dizi farklı tuşa haritalar.
:q
VI'dan çık. Eğer değişiklik yapılmışsa editör ekrana bir uyarı mesajı yollayacaktır.
:q!
Değişiklikleri kaydetmeden VI'dan çık.
:s/kalıp/değişen_kalıp/seçenekler
Yer değiştirme. Bu, belirtilen "kalıp" ı "değişen_kalıp" ın yerine koyar. Seçenekler olmadan yalnızca kalıbın ilk görüldüğü yerde değişikliği yapar. 'g' seçeneği verilirse kalıbın her bulunduğu yerde değişiklik yapılacaktır. Örneğin, ":1,$s/Dwayne/Dwight/g" komutu "Dwayne" bulunan her yere "Dwight" yazacaktır.
:set [all]
VI ve EX için bazı özelleştirici komutlar katar. ":set all" komutu bütün olası seçenekleri gösterir. (Bazı seçenekler için, VI'ı özelleştirme ile ilgili bölüme bakınız.)
:una string
Önceden ":ab" ile tanımlanmış kısaltmayı kaldırır.
:unm keys
":map" tarafından tanımlanmış haritalandırmayı ortadan kaldırır.
:vi dosya_adı
Yeni bir dosya yazmaya başlar. Eğer değişiklikler kaydedilmemişse editör size bir uyarıda bulunacaktır.
:w
Bulunulan dosyayı yaz.
:w dosya_adı
Tamponun içeriğini dosya_adı ile belirtilen dosyaya yaz.
:w >> dosya
Tamponun içeriğini dosya nın sonuna ekle.
:wq
Tamponun içeriğini yaz ve çık.

 

Kaynaklar

Son güncellenme 10 Aralık 1996, 1996
Güncellenme 27 Temmuz 1995
Güncellenme 3 Ekim 1994
Copyright © 1996 University of Hawaii, College of Engineering, Computer Facility
Tüm hakları mahfuzdur.

 

Bu makale için görüş bildirme ve destek formu

Her makalenin kendi görüş bildirim sayfası vardır. Bu sayfada bir yorumunuzu iletebilir veya diğer okuyucuların yorumlarını okuyabilirsiniz:
 görüş bildirim sayfası  

Sayfaların kalıcılığı LinuxFocus Editör Takımı tarafından sağlanmaktadır.
© Ben Y. Yoshino
LinuxFocus.org 2000

LinuxFocus hakkındaki hata mesajlarını veya yorumlarınızı iletmek için buraya tıklayın.

2000-05-01, generated by lfparser version 1.5