Vim Metin Düzenleyicisi // Liserjik

Liserjik

Kıdemli Üye
11 Ağu 2018
2,180
7
6
Vim Metin Düzenleyicisi // Liserjik

Vim , 1991 yılında C dili ve vimscript dilleri ile Bram Moolenaar tarafında yazılmıştır. Vi bazlı bir editördür. ( Vi 1976 'da Bill Joy tarafından yazılmış bir text editördür. Vim bunun biraz da ha geliştirilmiş hali diyebiliriz. )

Vim Android, Unix, Linux, Windows sistemlerini desteklemekterdir. Freeware bir GNU GPL lisanalı uygulamadır. Programın isminin anlamı ilk başlarda Vi IMitation 'dan geliyordu. Anlamı ise "Vi Taklidi/Replikası". Daha sonra geliştirilmesi ile artık ona Vi IMproved" yani "Geliştirilmiş Vi" adı verildi. Kısaca Vim.

IMG-20190324-WA0010.jpg

Kod:
[I][COLOR="Yellow"]apt-get install vim[/COLOR][/I]
IMG-20190324-WA0006.jpg


Vim, hem CLI bir arayüze (Command Line Interface , komut satırı arayüzü) hem GUI (Graphical User Interface, grafiksel kullanıcı arayüzü [pencereler] ) ortamları vardır. GUI ortamın ismi gVim'dir. Lakin gVim'de bu text editörün komutları tam kullanılmayacağından dolayı komut satırına erişilmek zorunludur.

Basitten kullanımına geçelim.

Kod:
[COLOR="Yellow"]vim [parametre] [dosya] [dosya]
[/COLOR]
IMG-20190324-WA0008.jpg

Kod:
[COLOR="Yellow"]vim main.cpp[/COLOR]

IMG-20190324-WA0024.jpg


Şuan main.cpp dosyamızın içindeyiz. Şuan herhangi bir işlem yapamıyoruz. ' i ' tuşuna bastığımızda ' instert ' yazısı geldi ve şuan editör yazıma açık. Altta main.cpp yazısının yanına bir ' [+] ' geldi.

IMG-20190324-WA0009.jpg


Ekranda şuan sadece bir sürü tilde (~) var. Bunlar o satırın boş olduğunu bize söylüyor.

Vim içinde syntax higlighting'de mevcuttur. Bu resimdeki int,class,main,include vb. anahtar kelimlerin belirgin olması ve {} arası hiyerarşi sağlaması için güzel bir hizmettir.

Şimdi bu yazdıklarımızı kaydedelim. Bunun için escape (esc) tuşuna basalım. Bir bar geldi ve insert özelliğimiz gitti. Eğer iptal edip editlemeye geri dönmek istiyorsanız tekrar i ve ya insert tuşuna basın. Biz barda kaldık. Buradan fonksiyonlarımızı çağırabiliriz. Şimdi biz işimizi yapalım ve kaydedelim , eğer sadece kaydetmek istiyorsak ' :w ' ; kaydedip çıkmak istiyorsak ' :wq ' komutunu kullanırız. Eğer hiçbir değişiklik yok ise ' :q ' komutu ile çıkabiliriz, ama hiçbir değişiklik olmaması gerektiğini unutmayalım çünkü komut işlenemez. (w : write , wq : write-quit, q: quit)
IMG-20190324-WA0011.jpg

Eğer iki dosya açmak istiyorsak

Kod:
[COLOR="Yellow"]vim [fonksiyon] main.cpp main.py [/COLOR]
Buradaki fonksiyonumuz 2 tane, ' -o ' ve ' -O '.

Kod:
[COLOR="Yellow"]vim -O main.cpp main.py[/COLOR]
IMG-20190324-WA0004.jpg

Dikey olarak cpp ve py dosyamızı açtık.

Kod:
[COLOR="Yellow"]vim -o main.cpp main.py [/COLOR]

Yatay olarak cpp ve py dosyamızı açtık.

IMG-20190324-WA0012.jpg

Ben bir asm(assembly) dosyası daha ekledim ve üçlü açmayı deneyelim.

Kod:
[COLOR="Yellow"]touch main.asm && vim -o main.cpp main.py main.asm[/COLOR]

Görüldüğü gibi 3 tane yatay pencere açtık.
Şimdi burada altın bir kural var. Hangi pencere üzerinde isek ' esc ' ye bastığımızda gelen barda onu yöneteceğiz. Örnek olarak asm üzerinde ' :wq ' yaparsam asm kaydedilip kapanacak.

IMG-20190324-WA0013.jpg


Diğer parametreleri inceleyelim.

Kod:
[COLOR="Yellow"]vim --help veya vim -h[/COLOR]

IMG-20190324-WA0016.jpg


Vim üzerinden Vi tabanlı editöre geçmek için

Kod:
[COLOR="Yellow"]vim -v main.py[/COLOR]

Vim üzerinden yazdığınız verileri şifrelemek için Ex modu mevcuttur. Bir html formatında dosya açıp Vim Ex modu ile koruyalım.

Kod:
[COLOR="Yellow"]touch index.html && vim -x index.html[/COLOR]
IMG-20190324-WA0003.jpg

' Enter encryption key : ' buraya şifreleme anahtarını girelim. Örn: root.

IMG-20190324-WA0014.jpg


Eğer kaydettikten sonra herhangi başka bir dosya görüntüleyicisi ile açarsak

Kod:
[COLOR="Yellow"]cat index.html [/COLOR]

IMG-20190324-WA0017.jpg


VimCrypy ile şifrelenmiş olduğunu görürüz. Bir kere bir dosyayı ex mod ile açarsak bir daha -x ile açmamıza gerek kalmaz yani sonra vim index.html ile açabiliriz ama gene şifre ister. Farklı bir şifre girersek açılan textte kodlarımız olmaz..

Vim Arapça , Farsça , İtalyanca, Fransızca, Rusça ve Fransızca gibi dillerin kiplerinde de çalışabilir.

Kod:
[COLOR="Yellow"]vim -A main.cpp[/COLOR]
IMG-20190324-WA0002.jpg

Gördüğünüz gibi soldan sağa yazı yönü yerine sağdan sola yazı yönüne geçti.

Ayrıca -H , -F parametreleri ile İbranice ve Farsça kipe de geçebilirsiniz.

Bir diğer parametre ' + ' . Bu parametre ile sayfanın en sonundan başlatır yani imleç sonda olur.

Kod:
[COLOR="Yellow"]vim + main.cpp [/COLOR]

Bunu türevi ise ' +<satır> ' . Burada satır bir int değeridir ve o satırda imleci koyar.

Kod:
[COLOR="Yellow"]vim +3 main.cpp[/COLOR]
IMG-20190324-WA0001.jpg


Kabaca parametreleri bitirdikten sonra yazılım içi komutlara geçelim.

Program içi parametre kullanımı için insert vb. yani yazım fonksiyonunun kapalı olması gerek , bunu escape(esc) tuşuna basarak yapmalıyız.

Kelime arama özelliğimiz ' /aranankelime ' şeklindedir. Aranan kelimemiz farklı bir renkle üstü çizilip, imleci aradığımız kelimenin sonuna getir. Örn: /struct

IMG-20190324-WA0000.jpg


Default halde Vim'de satır başlarında numara bulunmaz. Ama bu özelliği vardır. ' :set number ' komutu ile eklenebilir. Eğer kaldırmak isterseniz komutumuz ' :set no number ' olacaktır.

IMG-20190324-WA0021.jpg


Bunu yanında eğer highlighting işlemi yani kelime renklendirme(harika çeviri) işlemini devre dışı bırakabiliriz. Bunun için ' :syntax off ' komutunu kullanırız. Aksi haline çevirmek için ise ' :syntax on ' komutunu kullanırız.

IMG-20190324-WA0019.jpg


Default olarak Vim tab tuşuna bastığımız zaman 5 boşluk koyar. Bunun ayarları ile de oynayabiliriz. ' :set shiftwidth=30 ' yaparsak eğer artık tab tuşumuz basıldığında 30 karakter ilerleyecek. Android Vim üzerinde 3'e ayarlamanızı öneririm. Ayarladığınız ayardan sonra hiyearşik düzende değişecektir.

IMG-20190324-WA0020.jpg


while True:
[1][2][3]print(3)
#şeklinde olacaktır. Öncekiler değişmez.

Bu yaptığım set ayarları Vim kapandıktan sonra kaydedilmediği için sıfırlanacak ve default hale.dönecektir. Bunun için şimdi fonkisyonlarınızı yazın ve ardından ' :mkvimrc ayarismi ' fonksiyonunuzu girin. Vim'i her başlattığınızda ' :source ayarismi ' şeklinde çağırabilirsiniz.

'~' imlecin üzerinde bulunduğu harfi büyük ise küçük, küçük ise büyük harf ile değiştirir. ' sayı~' imleçte sayı sonrasına kadar her harfi > ve ya < işlemi yapar. Örn: 6~ mUSTAFA imleç u harfi üzerindeydi.

' :set bg=dark ' ile editörümüzü koyulaştırabiliriz eğer default'tan çıkılmış ise çünkü başlabgıçta bu ayar ile geliyor. Light hali için ise ' :set bg=light ' komutunu kullanabilirsiniz.

IMG-20190324-WA0023.jpg


Yön tuşları yerine klavyeden uzak kalmamak için Vim kendi yön tuşlarını eklemiştir.

Yukarı ~> k
Aşağı ~> j
Sağa ~> l
Sola ~> h

Sayfanın en başına çıkmak için 'H' ve ya 'gg'
, en alta inmek için 'L' ve ya 'GG' komutunu kullanırız. Sayfanın en başından 5 satır inmek için '5H' , sondan yukarı 5 satır çıkmak için '5L' komutunu kullanırız.

'%' komutu imlecin üzerindeki " ( , {, [ " gibi parantenzlerin diğer eşine götürülmesini sağlar. Özellikle CPP ve Java gibi dillerde oldukça verimlidir.

'V ve ya v' visual yani görsel moda geçer. Bu GUI değildir. Maus ile kopyala yapıştır işlemleri yapabilmemizi sağlar. Visual moda geçip yön tuşları ile sağa sola yukarı aşağı yapabilir ardından şu komutları kullanabilirsiniz. d, siler ; c, keser; p, yapıştırır ve y kopyalar.

IMG-20190324-WA0025.jpg


Bu makale bu kadar. Tabiki koca Vim bu kadar kısa değil. En azından kopyala ve yapıştır işlemleri için 1 sayfa komut var. Öğrenimi güç ama kullanımı kolay bir IDE.




 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.