

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:
Ö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.
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.
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:
Önce kabuğunuza ne tür terminale sahip olduğunuzu anlatmalısınız.
( Kabuğunuzun hangisi olduğunu bilmiyorsanız bunu öğrenmek için echo
$SHELL yazın.) Verilen örneklerde terminal türü "vt100" dür. Bunu
kendi terminal türünüzle değiştirerek kullanmalısınız.
C kabuğu (/bin/csh) için komut şöyledir:
set term=vt100Bourne Kabuğu (/bin/sh) veya Korn Kabuğu (/bin/ksh) için komutlar ise şöyledir:
export TERM TERM=vt100Ardından terminalinizi aşağıdaki komutla baştan ayarlayın:
tset
Artık terminal tipi (umuyoruz ki) doğru olarak ayarlandı ve VI'ı başlatmak için hazırsınız.
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.
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.
Ç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 modu komutları genellikle şu biçimdedir: (Seçime bağlı argümanlar, köşeli
parantezler içinde verilmektedir)
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.
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.
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 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:
Bir de y komutu (kopyalama komutu) vardır ki, d komutuna benzer çalışırken dosyadaki yazıyı silmeden onu alır.
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.
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:
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.
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:
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'ı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)
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.
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.)
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.
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.
İş-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.
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.
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" .


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