2013-02-04 22 views
28

Vim'deki bitişik bir sekmeyi bölme olarak geçerli pencereye taşımanın kolay bir yolu var mı? etrafa ederken birisi çözüm sağlamadan operasyon Ctrl + , W T ters olduğunu söyledi neredeBölmek için bitişik sekmeyi taşı?

Ben bir posta listesi tartışma ulaştı.

cevap

8

Kendimi kontrol ettiğim ilk iki çözümü sağlarım ve çalıştığını garanti edebilirim. İkincisi, yakında çalışıyorum.
İlk çözüm: basitçe klasörü ~/.vim/plugin oluşturma ve klasöre dosya Tabmerge.vim indirerek bu eklentiyi http://www.vim.org/scripts/script.php?script_id=1961 yükleyin. Eğer iki sekme varsa ve ne zaman Sonra

:Tabmerge 

yatay ve top hizalanmış parçalı, birine iki sekme birleştirir yazın. Tam kullanım kılavuzunu bulmak için bağlantıya göz atın.

Alternatif sekmeler arasında Geçerli pencereyi taşımak için iki fonksiyonların kodu için bu sayfayı http://vim.wikia.com/wiki/Move_current_window_between_tabs göz atın. (Henüz deneyin vermedi) İşte işlevleri:

function MoveToPrevTab() 
    "there is only one window 
    if tabpagenr('$') == 1 && winnr('$') == 1 
    return 
    endif 
    "preparing new window 
    let l:tab_nr = tabpagenr('$') 
    let l:cur_buf = bufnr('%') 
    if tabpagenr() != 1 
    close! 
    if l:tab_nr == tabpagenr('$') 
     tabprev 
    endif 
    sp 
    else 
    close! 
    exe "0tabnew" 
    endif 
    "opening current buffer in new window 
    exe "b".l:cur_buf 
endfunc 

ve

function MoveToNextTab() 
    "there is only one window 
    if tabpagenr('$') == 1 && winnr('$') == 1 
    return 
    endif 
    "preparing new window 
    let l:tab_nr = tabpagenr('$') 
    let l:cur_buf = bufnr('%') 
    if tabpagenr() < tab_nr 
    close! 
    if l:tab_nr == tabpagenr('$') 
     tabnext 
    endif 
    sp 
    else 
    close! 
    tabnew 
    endif 
    "opening current buffer in new window 
    exe "b".l:cur_buf 
endfunc 
+0

teşekkür ile yapılabilir "bir bölünme içine gösteri tampon x" dir. – mhitza

+0

İkinci alternatif benim için daha iyiydi. Normal modda onları 'mt' ve 'mT' ile eşleştirdim çünkü sekmelerde gezinmek için kullandığım 'gt' ve 'gT'yle tutarlı. Ayrıca, bu sayfada gösterilen dikey bölme alternatifini kullandım ('sp' yerine 'dikey üstbilgi bölmesi'). –

30

sorunu ile sorun bir sekme belirli bir tampon bağlı olmamasıdır. Bir sekmede, fazla arabelleğe sahip 10 pencereniz olabilir, böylece "bir sekmeyi bir bölüme taşımak" çok anlam ifade etmiyor. daha mantıklı ne

tabmerge benim ihtiyaçları için yeterli oldu,

:sb <name_of_buffer> 
+0

Ondan daha fazlasını alıyorum ama benim durumum için mantıklı, çünkü tamponlar kullandığım eklentilerle farklı sekmelerde açılıyor. Eklentiler, bölmelerde açma seçeneği sunmaz. – mhitza

+0

Hangi eklenti böyle? – romainl

+1

Bir "MRU" için, geçerli pencerede veya yeni sekmede açmamı sağlar (bölme anahtarı yok). – mhitza