Geniş Vim Rehberi, Vim Eğitimi

Fatih Küçükkarakurt

Fatih Küçükkarakurt

19 min read

Vim konusundaki problem, kullanımının zorluğu değil Vim'i kullanmaya devam edip etmeyeceğiniz.

Bu makalede, Vim hakkında uzun uzun konuşacağız. İnternette düzinelerce Vim referansı bulabilirsiniz. Ancak çoğu basit bir şekilde, yüzeysel anlatıyor. Buradaki esas amacımız, daha önce Vim kullanmamış bir kullanıcıyı baz alarak ilerlemek ve adım adım gitmek olacak.

Vim konusunda her zaman öğrenilecek bir şeyler olacaktır fakat, bu makaleden sonra bir daha asla en başa dönmek zorunda kalmayacaksınız.

Tüm bu süreçte, şu 3 kazanımı elde etmiş olacaksınız:

  1. Vim felsefesini anlayacaksınız
  2. Şuan kullandığınız düzenleyicide de gelişeceksiniz
  3. Vim kullanırken oldukça hızlanacaksınız

Hadi başlayalım.

İçerik

Neden Vim?

Aşağıdaki 3 nedenden dolayı, insanların Vim kullanması gerektiğine inanıyorum.

  1. Her yerde bulunur. Farklı işletim sistemleri veya farklı cihazları için yeni bir düzenleyici öğrenme konusunda endişelenmenize gerek yok.
  2. Ölçeklenebilir. Sadece yapılandırma dosyalarını düzenlemek için kullanabilirsiniz. Tüm yazma ve kodlama platformunuz Vim olabilir.
  3. Güçlüdür. Bir dil gibi çalıştığı için, Vim sizi hüsrana uğratmaz.

Teknolojide bir çok şey, editörünüz ile aranızın iyi olmasına bağlıdır.

Vim Basamakları

Kana, Vim öğrenmenin 5 seviyeden oluştuğunu söylüyor.

Seviye 0 : Vim
Seviye 1 : Temel Vim bilgilerini bilmek Seviye 2 : Görsel modu bilmek Seviye 3 : Çeşitli pratik özellikleri kullanmak Seviye 4 : Görsel moda gerek duymamak

Biz de bu makalede buna benzer adımlardan bahsedeceğiz. Ama ben 4 ana başlık altında anlatmak istiyorum.

  1. Giriş / Temel Bilgiler : Vim'de nasıl düşünüleceğini anlamak .
  2. Temiz Kod : Düzenli ve temiz kodlama
  3. Gelişmiş : Vim ile nasıl profesyonel biri olacağınızı anlamak
  4. Vim Tüyoları : İhtiyacınız olan bazı pratik tüyolar

Yapılandırma

Bu başlık altında bazı Vim yapılandırma temellerinden bahsedeceğiz. Sizin için bazı tavsiyelerim olacak. Elbette bunları uygulamak zorunda değilsiniz. Vim'i kurduktan sonra ~/.vimrc dosyasında bir takım değişiklikler yapmanız iyi olacaktır.

vi~/vim/.vimrc

Birkaç .vimrc değişikliği

  • ESC Tuşunu Yapılandırın: İlk olarak, ekleme modundan çıkmak için <ESC> tuşu kullanmanın, bence oldukça modası geçmiş. Vim verimlilikle ilgilidir ve mecbur değilseniz bu tip kullanımları görmezden gelebilirsiniz. Böyle kullanmak zorunda değilsiniz.

Aşağıdaki komut, ESC'ye basmak yerine jk yazabilmenizi sağlar. Siz istediğiniz herhangi değeri atayabilirsiniz. Yazma hızınıza ve parmaklarınızı kullanma biçiminize göre bir değer verebilirsiniz.

inoremap jk <ESC>

  • Leader Anahtarınızı Değiştirin: Leader, kısayollar için bir etkinleştirme anahtarıdır ve oldukça güçlüdür. Yani, örneğin "c" harfiyle bir kısayol yapacaksanız, lider anahtarınızın ardından "c" harfini yazarsınız. Bu yüzden onu sağ serçe parmağınıza denk gelen, shift tuşunun üzerindeki, ' işaretine atamayı seviyorum.
let mapleader = "'"

Küçük ve gereksiz gibi görünen ama hızınızı artıracak detaylara aşağıdaki hususları da ekleyebiliriz.

syntax  on  #sözdizimi vurgusu  
set  number  #satir numaralari  
set  noswapfile  #swap dosyasini devredisi birak 
set  hlsearch  #tum sonuclari vurgula 
set  ignorecase  #aramada buyuk/kucuk harfi yoksay
set  incsearch  #yazarken arama sonuclarini goster

Vim Eklenti Yönetimi

Eklenti yönetiminizi olabildiğince doğal tutmanızı öneririm. Eklentileri yöneten karmaşık üçüncü taraf işlevlerinden kaçınmak iyi bir tercih olacaktır. Bunu artık Vim 8.x ve NeoVim'de yapmak çok daha kolay. Eklentilerinizi şu adrese bırakmanız yeterli olacaktır:

~/.vim/pack/pluginfoldername/start/**pluginname**

Yukarıdaki yöntemi kullanarak istediğiniz herhangi bir eklenti ile oynayabilirsiniz ve bunlar Vim başladığında otomatik olarak yüklenecektir. Bu yöntem, daha önceki Vim sürümlerinde ihtiyaç duyduğumuz üçüncü taraf eklenti yönetimi seçeneklerine tercih ederim.

Vim'in Dil Yapısı

Muhtemelen Vim ile ilgili en güzel şeylerden biri, kullandıkça yeni fikirler kazandırmasıdır. Vim, isimler, fiiller ve zarflarla tamamlanmış bir dil gibi işlev görecek şekilde ayarlanmıştır.

Burada kullanacağım terimler teknik olarak doğru değil. Yani fiiller, değiştiriciler vb. gibi Vim'de anlatılan konu başlıkları yok. Ancak Vim'in nasıl çalıştığını daha iyi anlamanıza yardımcı olması açısından gayet yararlı olacaktır.

Fiiller

Hepinizin bildiği gibi "fiiller", gerçekleştirdiğimiz bir takım eylemlerdir. Vim komutlarının bazılarını, fiillere benzetebiliriz.

  • d: sil
  • c: değiştir
  • y: kopyala
  • v: satır veya karakter için görsel olarak seç

Değiştiriciler

Değiştiriciler, isimlerden önce bir şeyi nasıl yapacağınızı açıklamak için kullanılır.

  • i: içeride
  • a: etrafında
  • NUM: sayı (örneğin 1, 12, 37)
  • t: bir şeyi arar ve ondan önce durur
  • f: bir şeyi arar ve üzerine gelir
  • /: bir dizeyi bul

İsimler

Burada isim olarak belirttiğimiz şeyler, elbette "nesneler" olacak.

  • w: kelime
  • s: cümle
  • ): cümle (ikinci bir yöntem)
  • p: paragraf
  • }: paragraf (ikinci bir yöntem)
  • t: etiket (HTML/XML gibi düşünebilirsiniz)
  • b: blok (programlamadaki gibi düşünebilirsiniz)

Şimdi buraya kadar sınıflandırdığımız bazı komutları nasıl kullanabileceğimizi görelim. Yani artık bir nevi cümle kurmaya başlayacağız.

Komut Oluşturmak

İki kelimeyi silmek istersek: "delete 2 words".

d2w

Cümle içi değişiklikler: "change inside sentence".

cis

Bulunduğunuz paragrafı kopyalamak, çekmek: "yank inside paragraph".

yip

Parantez açmak için değiştirmek: "change to open bracket"

ct<

Örneğin bu sonuncu örnekte, "to" yapısı burada açık parantezi temsil diyor. Ama bu herhangi başka bir şey olabilir. İşte bu yüzden aslında anlatılamayacak kadar çok kullanım şekli var. Tecrübe ve kullanımınız ile orantılı olarak, farklı biçimleri de kullanabileceksiniz.

Vim'de Dosya ile Çalışmak

İşte Vim dosyanız ile çalışmanız için bazı temel bilgiler:

  • vi file: dosyanızı vim ile açın

  • :w: değişikliklerinizi dosyaya yazın

  • :q!: vim'den çıkın, ancak değişiklikleri KAYDETMEDEN!

  • :wq: değişikliklerinizi KAYDEDEREK, vim'den çıkın.

  • :saveas ~/some/path/: vim dosyanızı, belirtine adrese kaydedin.

  • ZZ: :wq yapmanın, farklı bir alternatifi.

    Metin Arama

Bir editörle yapmanız gereken önemli şeylerden biri, aradığınız metni bulmaktır. Vim'in son derece güçlü arama yetenekleri var ve şimdi bunlardan bazıları hakkında konuşacağız.

Dizeye Göre Arama

Vim'de arama yapmanın en temel yollarından biri, "/" komutunu girmek ve ardından ne aradığınızı yazıp ENTER tuşuna basmaktır.

/include<CR>

Aramanızı yaptıktan sonra, sonucun bir sonraki örneğine gitmek için "n" ye, bir önceki örneğine gitmek için "N" ye basabilirsiniz.

Ayrıca "/" yerine, "?" kullanarak, geriye doğru arama yapabilirsiniz.

Belirli Karakterlere Atlamak

Vim hakkında güzel olan başka bir şey ise, herhangi bir yerden belirli karakterleri arayabileceğiniz ve bunlara atlayabileceğinizdir.

  • İleri atlayın ve karakterin üzerine gelin:
f<
  • İleri atlayın ve karakterin önüne gelin:
t<

Aşağıdaki ifade ise, noktalar, parantezler, virgüller, harfler... Yani ne olursa olsun her zaman işe yarar:

ct,
  • /{string}: dizeyi ara
  • t: karakterin önüne atla
  • f: karakterin üzerine atla
  • *: imlecinizin altındaki kelimenin diğer örneklerini arayın
  • n: aradığınız dizenin sonraki örneğine gidin
  • N: aradığınız dizenin önceki örneğine gidin
  • ;: atladığınız karakterin sonraki örneğine gidin
  • ,: atladığınız karakterin önceki örneğine gidin

Metinde Dolaşmak

Temel Dolaşım

  • j: bir satır aşağı git
  • k: bir satır yukarı git
  • h: bir karakter sola git
  • l: bir karakter sağa git

Bu kullanımın yeni başlayanlara biraz tuhaf geleceğini biliyorum. Ama bir kaç kullanımdan sonra alışacağınıza garanti verebilirim. Yani sağ elinizin, işaret ve serçe parmakları sağa sola hareket etmenizi sağlarken, orta ve yüzük parmağınız aşağı yukarı hareket etmenizi sağlayacak.

Aynı Hizada Hareket Etmek

Aşağıdaki komutlar ile bulunduğunuz satır içerisinde kolayca hareket edebilirsiniz.

  • 0: satırın başına git
  • $: satırın sonuna git
  • ^: satırdaki ilk boş olmayan karaktere git
  • t": sonraki tırnak işaretinden önce sağa atla
  • f": zıpla ve sonraki tırnak işaretine in

Kelime Bazında Hareket Etmek

Vim'de kelime bazında da hareket edebilirsiniz.

  • w: bir kelime ileri git
  • b: bir kelime geri git
  • e: kelimenin sonuna git

Büyük harf kullandığınızda, dizeyi iki kelimeye bölebilecek bazı engelleri yok sayarsınız. Bağlaçlar vs.

  • W: bir büyük kelime ileri git
  • B: bir kelime büyük geri git

Cümle veya Paragrafa Göre Hareket Etme

  • ): bir cümle ileri git
  • }: bir paragraf ileri git

Ekran İçinde Hareket Etme

  • H: ekranın en üstüne git
  • M: ekranın ortasına gitme
  • L: ekranın altına gitme
  • gg: dosyanın en üstüne git
  • G: dosyanın altına git
  • ^U: yarım ekran yukarı git
  • ^D: yarım ekran aşağı git
  • ^F: sayfa aşağı
  • ^B: sayfa yukarı

Diğer Hareketler

  • Ctrl-i: önceki navigasyon konumunuza atlayın
  • Ctrl-o: bulunduğunuz yere geri dönün
  • :$line_numberH: belirli bir satır numarasına git
  • ^E: bir satır yukarı kaydır

Şimdiye kadar ki tüm komutları tek bir yerde toplayalım:

Referans Vim Komutları

  • j: bir satır aşağı git
  • k: bir satır yukarı git
  • h: bir karakter sola git
  • l: bir karakter sağa git
  • 0: satırın başına git
  • $: satırın sonuna git
  • w: bir kelime ileri git
  • b: bir kelime geri git
  • e: kelimenin sonuna git
  • ): bir cümle ileri git
  • }: bir paragraf ileri git
  • :line_number: belirli bir satır numarasına git
  • H: ekranın en üstüne git
  • M: ekranın ortasına git
  • L: ekranın altına git
  • ^E: bir satır yukarı kaydır
  • ^Y: bir satır aşağı kaydır
  • gg: dosyanın en üstüne git
  • G: dosyanın altına git
  • ^U: yarım sayfa yukarı git
  • ^D: yarım sayfa aşağı git
  • ^F: bir sayfa aşağı taşıma
  • ^B: bir sayfa yukarı taşıma
  • Ctrl-i: önceki navigasyon konumunuza atlayın
  • Ctrl-o: bulunduğunuz yere geri dönün

Metin Değiştirme

Şimdiye kadar hep hareketlerden bahsettik. Artık metnimiz üzerinde bazı değişiklikler yapmanın vakti geldi. Yukarıdaki metin hareket referanslarını her zaman kullanabilirsiniz.

Vim mod tablosu

Kavramamız gereken ilk şey, mod kavramıdır. İlk başta biraz mantıksız gelebilir ancak yine zamanla alışacağınız bir konudur.

  • Normal Mod, yeni başlayanlar için Vim ile ilgili en sinir bozucu şeylerden biri, onu açıp yazmaya başlayamamanızdır. Normal Mod, genellikle komutları girdiğiniz yer olduğu için Komut Modu olarak da bilinir.
  • Ekleme Modu, dosyanızda değişiklik yaptığınız yerdir ve Normal Moddan Ekleme Moduna geçmenin bir çok yolu vardır. Endişelenmenize hiç gerek yok, çünkü biraz pratikle bunların hepsi gülünç derecede basitleşiyor.
  • Görsel Mod, metinleri seçmenin yollarından biridir. Normal Mod'a çok benzer. Metni hem karakter hem de satır bazında seçebilirsiniz. Görsel Modun amacı, seçtiğiniz tüm içerik üzerinde, bazı işlemler gerçekleştirmektir.
  • Ex Mode, bir ":" isteği aldığınız ve komutlar girebileceğiniz bir moddur.

Başka modlar da var, ancak yukarıda saydıklarımız en temel olanlar arasındadır.

Hatırlatma ve Pratik

Hatırlayacağınız üzere Vim konusunu bir dile benzetmiştik. Şimdi bu anlattıklarımızı hatırlayalım. Fiil, İsim ve Değiştirici gibi unsurlardan bahsetmiştik. Tüm bunların ışığında Normal Mod ile başlayıp, Ekleme Moduna geçmeye çalışalım.

Değiştirmek için c, giriş için i, ekleme için a varyasyonlarını kullanarak, bir takım işlemler yapabiliriz.

Aşağıdaki seçenekler ile başlayalım:

  • i: imleçten önce ekle
  • a: imleçten sonra ekle
  • I: satırın başına ekle
  • A: satırın sonuna ekle
  • o: mevcut satırın altında yeni bir satır aç
  • O: mevcut satırın üzerinde yeni bir satır aç
  • r: imlecin altındaki bir karakteri değiştir
  • R: imlecin altındaki karakteri değiştir, ancak daha sonra yazmaya devam et
  • cm: kelime, cümle, paragraf gibi bir eylemi değiştir
  • C: bulunduğun yerdeki mevcut satırı değiştir
  • ct?: soru işaretine kadar değiştir
  • s: bir sonraki komutun yerini al
  • S: tüm geçerli satırları değiştir

Cümle içinde değişiklik

cis

Satına başına git ve ekleme moduna gir

I

İmleçten hemen sonra yazmaya başla

a

Gördüğünüz gibi, metin girmeye başlamanın birçok yolu vardır. Silme ve Ekleme Moduna girme gibi aynı anda birden fazla şey yapmak için de bazı kısayollar vardır.

Bulunduğunuz yerdeki satırı sil ve ekleme moduna gir

C

Bulunduğun tüm satırı sil ve ekleme moduna gir

S

( ~) komutunu kullanarak metnin büyük/küçük harf durumunu değiştirebilirsiniz . Ya imlecin altındaki harf üzerinde ya da bir seçim üzerinde çalışır.

Metni Biçimlendirme

Metni hızlı bir şekilde biçimlendirmek oldukça yararlıdır ve bu, aşağıdaki komutla kolayca yapılabilir:

Mevcut paragrafı biçimlendir

gq ap

gqortamınıza bağlı olarak, güzel ve düzenli bir yapı için çalışır.

ap ise, paragraf etrafındaki standart metin nesnesidir.

Metni Silme

Artık metni nasıl değiştireceğimizi bildiğimize göre, düz silme işlemlerinin nasıl yapılacağını görelim.

Temel silme seçenekleri

  • x: imlecin altındaki karakteri sil
  • X: imleçten önceki karakteri sil
  • dm: hareket olarak tanımladığın her şeyi sil (kelime, cümle veya paragraf...)
  • dd: mevcut satırı sil
  • dt.: bulunduğun yerden diğer periyoda kadar sil
  • D: satırın sonuna kadar sil
  • J: mevcut satırı bir sonraki ile birleştir ve aradakileri sil

Geri Al ve Tekrarla

Geri al ve tekrarla özellikleri bir metin düzenleyicinin olmazsa olmazlarıdır. Elbette Vim kullanırken de çok sık kullanacağımız özellikler arasındalar.

  • u: son eyleminizi geri alın
  • Ctrl-r: son eyleminizi tekrarlayın

Her iki komut da siz son kayda geri gidene kadar tekrar tekrar kullanılabilir.

Tekrarlanan Eylemler

Vim kullanımındaki en güçlü özelliklerden biri gülünç ama "." işaretidir. Mükemmel bir şey yapmanıza olanak tanır. Yaptığınız eylemi, tekrarlamanıza olanak tanır.

Son eylemi tekrarlama için "." kullanmak

Bir kelimeyi sil

dw

Beş kelimeyi daha sil

5.

Harika değil mi? Şimdi bunu Görsel mod ile kullanana kadar bekleyin.

Kopyala Yapıştır

Vim, metni hızlı bir şekilde kopyalayıp yapıştırabilme konusunda gayet iyi çalışır.

Ancak Vim, beklenenden biraz farklı kopyalama yapıyor. Beklenildiği gibi komutumuz c değil. Hatırlayacak olursanız c, "değişim" için kullanılıyordu. Vim bunun yerine y kopyalama komutunu kullanıyor.

  • y: seçili olanı kopyala
  • yy: mevcut satırı kopyala

Unutmayın, tıpkı diğer herhangi bir kopyalama işleminde olduğu gibi, kaynak metinle uğraşmıyorsunuz, hedefte sadece başka bir kopya yapıyorsunuz.

Metni Kesme

Metni kesmek oldukça basit. Aslında silmekle aynı şeydir. Yani bunun için hangi sözdizimini kullanıyor olursanız olun, aslında sadece silinmiş metni yapıştırmaya hazırlıyorsunuz.

Metni Yapıştırma

Metni yapıştırma konusunda temel olarak p komutu kullanır. Yani, dd kullanarak bir satırı silerseniz, p kullanarak tekrar yapıştırabilirsiniz.

Yapıştırmayla ilgili hatırlanması gereken bir şey de, yapıştırma işleminin genellikle imlecinizden hemen sonra başlaması ve kopyaladığınız karakterleri, kelimeleri, satırları veya sütunları yapıştırmasıdır. Ayrıca, evrensel geri alma komutu " u" ile herhangi bir yapıştırmayı geri alabileceğinizi unutmayın .

  • y: bulunduğunuz yerden bir sonraki komuta kopyala
  • yy: mevcut satırı kopyala
  • p: kopyalanan veya silinen metni mevcut imleç konumundan sonra yapıştır
  • P: kopyalanan veya silinen metni mevcut imleç konumundan önce yapıştır

Metin satırlarını değiştirme

ddp

Bu, iki metin satırının konumunu değiştirmek için kullanabileceğiniz hızlı bir numaradır. İlk bölüm, bulunduğunuz satırı siler ve ikinci bölüm, onu önceden olduğu yere geri koyar.

Yazım Denetimi

Yazım denetimi konusunda Vim oldukça başarılıdır. Öncelikle conf dosyamızdaki seçeneği ayarlamamız gerekiyor.

~/.vimrc

set spell spelllang=en_us

Yanlış yazılmış kelimeleri bulmak

conf dosyanızda yazımı etkinleştirdiğinizde, yanlış yazılan kelimelerin altı sizin için otomatik olarak çizilir. Bunu ayrıca: set spell ve: set nospell komutlarını çalıştırarak da etkinleştirebilir veya devre dışı bırakabilirsiniz.

Her iki durumda da, bazı yazım hatalarınız olduğunda, aşağıdaki komutları kullanabilirsiniz.

Bir sonraki yanlış yazılmış kelimeye git

]s

Yanlış yazılmış son kelimeye git

[s

Yanlış yazılmış bir kelime olduğunda, bazı öneriler alın

z=

Yanlış yazılmış bir kelimeyi doğru olarak işaretle

zg

Doğru bir kelimeyi yanlış yazılmış olarak işaretle

zw

<leader>f ile yazımı düzeltin

nnoremap <leader>f 1z=

<leader>s ile imla görsellerini değiştir

nnoremap <leader>s :set spell!

Yer Değiştirme

Vim'in bir diğer güçlü özelliği de güçlü değiştirmeler yapabilmesidir. Bu işlem, önce ne aradığınızı, sonra neye değiştireceğinizi, sonra da değişikliğin kapsamını belirleyerek yapılır.

Temel kullanım şu şekildedir:

Tüm satırlarda "foo" ifadesini "boo" ile değiştir

:%s /foo/bar/g

Sadece mevcut satırda "foo" ifadesini "boo" ile değiştir

:s /foo/bar/g

Bunlara benzer birçok farklı kullanım var ancak, yukarıda görmüş olduklarınız en temel olanlar.

Pratik bazı ifadeler

Diyelim ki birden çok satırın sonuna biraz metin ekliyorsunuz, ancak bunu yalnızca satırın belirli bir dizeyi içerdiği yerde yapıyorsunuz. Bunu şu şekilde başarabilirsiniz:

Dizeyi ara

/delinquent

Şimdi, "n" tuşuna her bastığınızda, bir sonraki "delinquent" durumuna ilerleyeceksiniz.

Satırın sonuna metin ekleyin

A[DO NOT PAY] [Esc]

Şimdi metnimizi eklemiş olduk ancak eklememiz gereken birçok yer daha var. Çünkü bir çok satıra eklemek istiyoruz. İşte tam da bu noktada "." komutu devreye giriyor.

n.

Burada esas fikir, bir hareketi depolanan komutla birleştirmektir. Böylece istediğiniz yere zıplayabilir ve geri çağırabilirsiniz.

Metin Nesneleri

Metin nesnelerini kullanmak gerçekten oldukça pratiktir. Daha karmaşık hedeflere karşı bazı eylemler gerçekleştirmenize izin verir. Bu yüzden, bir kelimeyi seçip silmek veya bir cümlenin başına gidip onu silmek yerine, bu nesneleri kullanabilirsiniz.

Bunu açıklaması biraz zor ama gelin örneklere göz atalım. Önce bazı kelime temelli nesnelere bakalım.

  • iw: kelime içinde
  • aw: kelime etrafında

Bunlar bizim hedeflerimiz.

Bir kelimenin etrafını sil

daw
  • is: cümle içinde
  • as: cümle etrafında

Bunlar da kelime nesneleriyle hemen hemen aynı şekilde çalışır, bu yüzden nefret ettiğiniz bir cümlenin, başına gitmek ve sonuna kadar nasıl sileceğinizi düşünmek yerine, basitçe şunları yapabilirsiniz:

Bir cümle içinde değişim

cis

Bu, tüm cümleye hakim olmanızı sağlar ve sizi yeni cümlenin başında Ekleme Moduna geçirir.

Diğer nesne türleri için, aşağıyı referans alabilirsiniz:

  • kelimeler: iw ve aw
  • cümleler: is ve as
  • paragraflar: ip ve ap
  • tek tırnak: i' ve a'
  • çift tırnak: i" ve a"
  • back ticks: i` ve a`
  • parantezler: i( ve a(
  • köşeli parantezler: i[ ve a[
  • süslü parantezler: i{ ve a{
  • etiketler: it ve at

Vim Görsel Mod Kullanımı

Belki de Görsel Mod hakkında söylenebilecek en iyi şey, şimdiye kadar öğrendiğiniz her şeyin gücüne güç katması olurdu. Vim görsel mod, vurgulanan metne komutlar uygulamanıza izin verir.

Görsel moda v ile girersiniz. Bunun için üç farklı seçeneğiniz vardır:

  • karakter tabanlı :v
  • satır tabanlı :V
  • paragraf :Ctrl-v

Aşağıdaki gibi komutlar, çevrelenmiş içerikler için kullanılabilir.

Parantezin içini seçin

vi(

Köşe parantezin içini seçin

vi[

Ayrıca iki seviye seçmek için aşağıdakine benzer bir sayı da ekleyebilirsiniz.

v2i[

Karakter tabanlı görsel seçim

Normal Moddan, karakter tabanlı görsel seçime geçmek için v, karakterleri, karakter kümelerini, sözcükleri vb. seçmek için bu ifadeyi kullanabilirsiniz.

Hat tabanlı görsel seçim

Normal Moddan V tuşuna basarak bu moda giriyorsunuz ve buradan biraz sonra tartışacağımız eylemleri yapıyorsunuz.

Sütun tabanlı görsel seçim

Diğer bir seçenek de metni dikey olarak seçmektir; bu, veri sütunları ile çalışırken oldukça kolaylık sağlıyor.

Görsel olarak seçilen metin üzerinde gerçekleştirebileceğiniz eylemler

Bu gerçekten sizin seçiminiz, ancak en yaygın işlemler silme, kopyalama ve yapıştırmadır. Bunu farenizle vurgulamak gibi düşünebilirsiniz.

Görsel moda gir, iki kelime seç ve bunları kopyala

vwwy

Sonra bunları koymak istediğiniz yere gidin ve oraya yapıştırmak için p yazın

Ya da bazı hat tabanlı eylemler yapabilirsiniz.

Vjjd

Ayrıca metin nesnelerini de kullanabilirsiniz

Görsel olarak bir paragrafın tamamını seç

vip

Görsel olarak bir paragrafın tamamını seç ve aşağıya yapıştır

vipyjjp

Komut yeni başlayan birine uzun gibi görünebilir, ama unutmayı bunu bir dil gibi düşünüyoruz ve cümleler kurmaya çalışıyoruz.

Görsel modu tekrarla birleştirmek

Görsel Mod ile yapabileceğiniz bir diğer şey de, seçime karşı depolanan bir eylemi yürütmek.

foo bar thing other yetanother also

Her satırın başına iki nokta üst üste (:) eklemek istersek, foo'nun önüne bir tane koyabilir, altındaki tüm satırları görsel olarak seçebilir ve sonra "." kullanabiliriz.

:foo :bar :thing :other :yetanother :also

Harika. Tamam da dosyada 10 bin satır olduğunu düşünelim. Elbette hepsine ":" koyamayız.

İki nokta üst üsteyi tüm dosyaya ekle

0i:j0vG.

Karışık gibi duruyorsa, attığımız adımlara bir göz atalım:

  1. İlk satırın başına git ve iki nokta üst üste ekle
  2. Bir satır aşağı ve satırın başına git
  3. Dosyanın sonuna kadar görsel olarak seçin
  4. İki nokta üst üste işaretini seçime ekle

Bir kaç kullanımdan sonra alışacağınıza eminim. Umarım şimdiye kadar her şey gayet anlaşılır bir şekilde ilerliyordur.

Vim Makro Kullanımı

Genelde makroların korkutucu olduğu düşünülür. Gerçekten değiller.

  • qa: "a" adlı bir makro kaydetmeye başlayın
  • q: kaydı durdur
  • @a: makroyu oynat

Basit, değil mi? Birden çok kayıtta saklanan birden çok makro olabilir;

örn: "a", "b", "c", sonra onları @a veya @c ile oynatırsınız.

Neden Makro

Bunları okuyorken aklınıza şu soru gelmiş olabilir:

Nokta komutuyla görsel seçim ve tekrar bu kadar güçlüyse, neden makrolar kullanılsın ki?

Harika bir soru ama cevap biraz karmaşık. Makrolar, yapabileceğiniz hemen hemen her şeyi yapabilirler. Ama aydınlatıcı olması için aşağıdaki iş akışına bir bakalım:

  1. "widget" satırında ara
  2. sözcüğün sonuna git ve "-maker" ekle
  3. satırın başına git ve iki nokta üst üste ekle
  4. satırın sonuna git ve bir nokta ekle
  5. satırın sonundaki tüm boş alanları sil

50 bin satırlık bir kodda tüm bunları yapmak gerçekten mümkün olmazdı. Mesela bunları bir Microsoft Word'de yaptığınızı düşünün.

Ancak Vim ile bu eylemleri bir kez gerçekleştirir ve her satırda tekrar oynatabilirsiniz.

Vim Tüyoları

Çokça sorulan ve gerçekten önemli bir şekilde zaman kazandıran bazı tüyoları konuşalım.

İçinde bulunduğunuz dosyanın türüne bağlı olarak, biraz çizgi sorununuz olabilir. Bu can sıkıcı Ctrl-M karakterlerini satırlarınızın sonundan nasıl sileceğiniz aşağıda açıklanmıştır.

Dosyaların sonundaki Ctrl-M karakterlerini sil

:%s/s+$//

Dosya türünü değiştir

set ft=unix
set ft=html
set ft=dos
  • cs"': üzerinde bulunduğunuz kelimeyi çevreleyen tırnak işaretlerini, çiftten teke çevirin
  • cs'<q>: aynısını yapın, ancak tek tırnakları <q> ile değiştirin
  • ds": bir şeyin etrafındaki çift tırnak işaretlerini silin
  • ysiw[: geçerli kelimeyi köşeli parantez içine alın
  • ysiw<em> : geçerli kelimeyi vurgulayın. (ve bunu " . " ile tekrarlayabilirsiniz)

Özetlemek Gerekirse

Sonuç olarak bu rehberden çıkarılmasını umduğum iki madde var:

  1. Vim öğrenilebilir
  2. Vim güçlüdür

Burada ele alınan temel bilgilerle kısmen bile rahat ederseniz, yazmaktan daha fazla keyif alacağınızı düşünüyorum. Metinlerle ne kadar rahat uğraşırsanız, fikirlerle o kadar rahat başa çıkarsınız ve bence bu üretim aşamasında gerçekten önemli bir şey.

Her şeyden çok, bu yüzden metin düzenleyicinize hakim olmalısınız. Fikirleri yakalarken kendinizi güçlü hissetmek istersiniz.

Umarım biraz da olsa Vim hakkında fikir edinebilmişsinizdir.

Burası AnatoliaCode.

Kendinize iyi bakın.

Anatoliacode Makale Aboneliği

Bize abone olarak tüm makaleleri ilk siz okuyabilirsiniz. Ayrıca asla reklam veya spam yapmıyoruz.