Vim eklentileri 1: emmet
15 Mar 2016 by Onur AslanBu yazı dizisinde kullandığım bazı vim eklentilerinden bahsedeceğim.
Bunlardan ilki: emmet-vim. Emmet, HTML ve CSS yazmayı kolaylaştırmak için yapılmış bir editör eklentisi. Bu yazıda vim için olanından bahsedeceğiz.
Emmet <c-y>, komutuyla çalışıyor.
Örneğin cursor (_ ile gösterilmiştir) altında iken <c-y>, e
bastığımızda, bu kod dizini bir html5 dökümanına dönüşüyor:
html:5_
<c-y>, den sonra:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
Kullanılan kısaltmalar listesi, emmet’in açabildiği tüm kısaltmaları içermektedir. Bu yazının devamında vim ile bunları nasıl yapabildiğimize bakacağız.
Tutorial içerisinde yer alan örnekleri inceleyelim:
-
Kısaltmaları genişletme
div>p#foo$*3>aolan bir kısaltmayı<c-y>,ile genişlettiğimizde şuna dönüşüyor:<div> <p id="foo1"><a href=""></a></p> <p id="foo2"><a href=""></a></p> <p id="foo3"><a href=""></a></p> </div> -
Kısaltmaları sarma
Aşağıdaki gibi bir yazımız var diyelim:
test1 test2 test3Bu yazıyı visual line (
shift+v) olarak seçtikten sonra<c-y>,uygulayalım. Emmet size ‘Tag: ‘ sorduğunda,ul>li*yazalım. Emmet bunu aşağıdaki kod bloğuna dönüştürecektir.<ul> <li>test1</li> <li>test2</li> <li>test3</li> </ul> -
Bir tag’ı içe doğru seçme
Insert modundayken
<c-y>duyguladığınızda içerisinde bulunduğunuz tag’ı içeriğiyle birlikte seçebilirsiniz. -
Bir tag’ı dışa doğru seçme
Insert modundayken
<c-y>Duyguladığınızda içerisinde bulunduğunuz tag’ın içerisinde bulunan tag’ı seçebilirsiniz. -
Bir sonraki düzenleme noktasına gitme
Insert modunda
<c-y>nile bir sonraki düzenleme noktasına (örneğin etiket içeriği, attribute vb.) gidebilirsiniz. -
Bir önceki düzenleme noktasına gitme
Insert modunda
<c-y>Nile bir önceki düzenleme noktasına (örneğin etiket içeriği, attribute vb.) gidebilirsiniz. -
img boyutunu değişme
Cursor’u
imgtagına getirin:<img src="foo.png" />Burada
<c-y>iuygulayın:<img src="foo.png" width="32" height="48" /> -
Satırları birleştirme (merge)
<li>etiketleri bulunan satırları seçin:<ul> <li>test1</li> <li>test2</li> <li>test3</li> </ul>Ardından
<c-y>muygulayarak satırları birleştirebilirsiniz.<ul> <li>test1</li><li>test2</li><li>test3</li> </ul> -
Bir etiketi silme
Cursor’u silmek istediğiniz etiketin içinde tutun.
<div class="foo"> <a>cursor'u buraya getirin</a> </div>Insert modundayken
<c-y>kile etiketi ve içeriğini silebilirsiniz. Ardıdan tekrar<c-y>kuygulayarak div etiketini de silebilirsiniz. -
Etiketleri bölme ve birbirine katma (join)
Cursor’u block içine alın:
<div class="foo"> cursor'u buraya getirin </div>Insert modundayken
<c-y>juygulayın:<div class="foo"/>Tekrar
<c-y>juyguladığınızda:<div class="foo"> </div> -
Yorum haline getirme
Cursor’u block içerisine alın
<div> merhaba dünya </div>Insert modundayken
<c-y>/uygulayın:<div> merhaba dünya </div>Tekrar
<c-y>/kullandığınızda yorum kaldırılacaktır:<div> merhaba dünya </div> -
Bir URL’den a etiketi oluşturma
Cursor’u URL’e getirin:
http://www.google.com/<c-y>auygulayın:<a href="http://www.google.com">Google</a> -
Bir URL’den altıntı yapma
Cursor’u URL’e getirin:
http://github.com/<c-y>Auygulayın:<blockquote class="quote"> <a href="http://github.com/">Secure source code hosting and collaborative development - GitHub</a><br /> <p>How does it work? Get up and running in seconds by forking a project, pushing an existing repository...</p> <cite>http://github.com/</cite> </blockquote> -
emmet.vim’in kullandığınız dil için kurulumu
# cd ~/.vim # unzip emmet-vim.zippathogen.vim kullanıyorsanız:
# cd ~/.vim/bundle # veya dizini oluşturun # unzip /path/to/emmet-vim.zipDepodan kaynak kodlarını indirmek istiyorsanız:
# cd ~/.vim/bundle # veya dizini oluşturun # git clone http://github.com/mattn/emmet-vim.git -
emmet.vim’i kullandığınız dil için etkinleştirme
Kullandığınız dillerin davranışını özelleştirebilirsiniz:
let g:user_emmet_settings = { \ 'php' : { \ 'extends' : 'html', \ 'filters' : 'c', \ }, \ 'xml' : { \ 'extends' : 'html', \ }, \ 'haml' : { \ 'extends' : 'html', \ }, \}