2010-02-26 15 views
5

Vim'in güçlü yönlerinden biri, içeriğin kelimeler, paragraflar ve çeşitli sınırlayıcılar içerisindeki hızlı manipülasyonunu sunan object-select'dur. ÖrneğinHeredoc ya da vim ile "burada belge" seçmek mümkün mü?

,

vi{ 

{} parantezler içine herşeyi seçecektir.

bir here document veya bir yorumlu metin seçmek için herhangi eşdeğer işlevselliği var mı:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j 

?<<<<CR>w " find beginning tag (after <<<) 
*k   " find matching end tag and go up 1 line 
V   " enter visual mode 
?<<<<CR>j " find beginning tag and go down 1 line 

cevap

1

Önceki yayınları düşünün ve bunları bir adım daha yaklaştırmaya çalışın.

?<<< "find begining 
w " go to starting tag 
* " find starting tag 
v " enter visual mode (could use Upper V to do an 'ambientish' object select 
n " find end tag 
e " optional include end tag 

Düzenleme: Bu alışkanlık başlangıç ​​etiketi gibi bir yorumlu metin ama bir şey içinde gerçekleştiğinde% 100 güvenilir (yani kıracak olması Ken yukarıdaki gibi diziyi geliştirdi, bu yüzden bir onun daha iyi bir anahtar eşleme kullanmanızı öneririz 'iç' heredoc belirleyin:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j 

+0

teşekkür ederiz (bu php stil heredoc dayanmaktadır)!Bu soru hakkında gerçekten unutmuştum ama beni doğru yola koydun – Ken

+0

Teşekkürler Ken, güzel bir tweak, ama anahtar haritanızda bir yazım hatası var - üst V olmalı - yani: nmap ? <<< w * kV? <<< j – ErichBSchulz

4

: ErichBSchulz cevabı dayanarak

<<<HTML 
    .... 
    .... 
HTML; 

Ben iç seçme bir yorumlu metin için aşağıdaki ile geldi Heredoc'u seçmek için genellikle imleci ilk satırda, heredoc tanımlayıcısı üzerinden basın V*

V bir hat seçimini başlayacak ve * tanımlayıcı sonraki maçında, yorumlu metin sonuna ... giderek, bir arama başlayacaktır

2

<<'' Heredoc boş bir hatla sonlandırılıyor, eğer zaten başlıyorsanız (?<<^M^M): v} buradan boş satırın sonuna kadar seçer.

Aksi halde, örneğinizde, aklınıza gelen en iyi şey v/^HTML.

2

Kendi metin nesnelerini tanımlayabileceğiniz bu eklenti var.

http://www.vim.org/scripts/script.php?script_id=2100

Ben bir nedenle 'yili' (yorumlu metin içinde yank) böylece açıkça başına gitmek gerekmez söyleyebiliriz tanımlamak güzel olurdu düşünün.

Not Bu konuda kendimi kandırmadım.

Sadece görsel bir seçim yapmak isterseniz yapabilirsiniz.

nnoremap <leader>ih ?HTML<cr>V/HTML<cr> 
İlgili konular