2010-08-17 14 views
5

Konsol ekran oturumuna bir metin gönderen bir Send_to_Screen(text) vim işlevi vardır. Geçerli seçim ile işlevi çağıran bir eşlemeGeçerli arabelleğin içeriği vim komut modunda nasıl alınır?

. Şimdi, tüm arabelleğin içeriğiyle işlevi çağıran başka bir eşleştirmeyi tanımlamak istiyorum, ancak işe yaramayacağım.

nmap <F5> maggVG"ry`a :call Send_to_Screen(@r)<CR> 

'u denedim, ancak çalışmıyor. Peki, eşleştirmeyi geçerli arabelleğin metni ile nasıl tanımlarım?

cevap

13

ne dersiniz:

nmap <F5> :call Send_to_Screen(join(getline(1,'$'), "\n"))<CR> 

seçilen aralıktaki hatları (1 ilk satırı ve "$" sonuncusu) ve fonksiyon join() bir listenin içeriğini katılır bir listesini döndürür getline() işlevi sağlanan ayırıcı ile birlikte (bu durumda "\ n"). Bakınız:

:help getline() 
:help join() 
+0

Tek ve çift tırnak işaretleri arasında herhangi bir fark vimscript? – qed

+0

@qed tek tırnak işareti, \ n bir satırsonu olarak değil, bir '\ n' kelimesi olarak yorumlanmayacaktır. – falstro

İlgili konular