2011-08-21 14 views
9

Geçerli pencerenin genişliğini ve yüksekliğini Vim'de nasıl alabilirim?Bölmeli pencere boyutlarını algılama

Geçerli pencerenin boyutlarına göre dikey veya yatay olarak bölmek için tek bir kısayol tuşu oluşturmak istiyorum, ancak hangi değişkenin veya yöntemin kontrol edileceğini bilmiyorum.

Teşekkürler!

Düzenleme:

Burada durum herkesin ilgilendiği de şimdi kullanıyorum komut var.

command! SplitWindow call s:SplitWindow() 
function! s:SplitWindow()     
    let l:height=winheight(0) * 2  
    let l:width=winwidth(0)   
    if (l:height > l:width)     
    :split        
    else         
    :vsplit        
    endif         
endfunction 
+1

'winnr() 'çağrılar burada yedeklendi. Sadece 'winwidth (0) 've' winheight (0) 'kullanın. –

+0

Ah, teşekkürler! Yukarıda düzeltildi. – suderman

cevap

10

winwidth() ve winheight() işlevleri konusuna bakın. Her ikisi de numaralı pencereyi tek bir argüman olarak alırlar ve sırasıyla, bu karakterle tanımlanan pencerenin genişliğini (karakter olarak) ve yüksekliğini (satırlarda) döndürürler. Sıfır mevcut pencere için duruyor. Verilen sayıya karşılık gelen penceresi olmadığında dönüş değerinin -1'e eşit olduğunu unutmayın.

+0

Yardımlarınız için teşekkür ederiz! – suderman