Arabelleği VIM'de dikey bölme olarak açma


176

VIM'de bir dosyayı düzenliyorsanız ve mevcut bir arabelleği açmanız gerekiyorsa (örn. Tampon listenizden :buffers:) dikey bir bölmede nasıl açabilirsiniz?

Zaten normal bir bölünme ile açabilirsiniz biliyorum :

:sbuffer N

Wehere NAncak yukarıda o açılır, istediğiniz tampon sayıdır Ndeğil dikey, yatay tampon.

Ayrıca açtıktan sonra pencere yerleşimini değiştirebileceğiniz ve aşağıdaki gibi bir Dikey Bölme yapabileceğinizin farkındayım:

Ctrl-W H
Ctrl-W L

Pencereyi dikey olarak sağa veya sola böler.

Bana öyle geliyor ki bir sbuffervarsa olmalı vsbufferama bu yok (farkında değilim)

Ayrıca, bu soruyu çözmek için bir eklenti aradığımı lütfen unutmayın. Bunu yapmanıza izin verecek bir dizi eklenti biliyorum.

Eminim zaten orada olan bir şeyi kaçırıyor olabilirim.

DÜZENLEME: En iyi işbirliği ruhu içinde, bir başkası bu sorunla karşılaşırsa ve bir eklenti yüklemek istemezse, Haritalama ile basit bir İşlev oluşturdum:

İşlev:

" Vertical Split Buffer Function
function VerticalSplitBuffer(buffer)
    execute "vert belowright sb" a:buffer 
endfunction

haritalama:

" Vertical Split Buffer Mapping
command -nargs=1 Vbuffer call VerticalSplitBuffer(<f-args>)

Bu, sağ bölmede bir arabellek açma görevini yerine getirir, bu nedenle arabellek 1 için şöyle dersiniz:

:Vbuffer 1

Yanıtlar:


206

Deneyin:

:vert sb N

sol dikey bölme açılır (bazı seçenekleri değiştirmediyseniz varsayılan olarak).

Öte yandan, sağda bir bölme açmak için:

:vert belowright sb N

5
Sahip olmak oldukça tuhaf değil vsbuffer Nmi? Can sıkıcı. Cevabınız bunu yapıyor. Teşekkürler!
alfredodeza

13
Her zaman da olması gerektiği gibi hissediyorum vsbufferve ayrıca Ctrl-w Tyeni bir sekmede bir arabellek açmayı da unutuyorum (ya da şu anda aktif veya görünür olmayan bir arabellekle yapmak istiyorum). Alternatif olarak, hatırlamak istediğim @ Jeet'in geçerli cevabından daha kolay bu iki durum için de bir çubuk kullanabilirsiniz: :vsp | b Nve :tabe | b N.
Ches

Bu komutun Notomatik tamamlanmasına izin verdiğini seviyorum (diğer cevaptaki komutla mümkün görünmüyor). Yine de ikisi de oy kullanmıştı.
David Rivers

124

:vsp | b1

1 bazı tampon sayısıdır. buffersTüm arabellekleri listelemek için kullanın .

İlgileniyorsanız, bölünmeler hakkında bazı ek bilgiler. bağlantı


9
Ayrıca :ls, kısayol gibi görünen kullanabilirsiniz :buffers.
dskecse

3
Ayrıca şunları da yapabilirsiniz:vsp | b <buffer name>
Kenny Bambridge

4
@KennyBambridge daha da iyi - sadece arabellek adının bir kısmını (büyük / küçük harfe duyarlı) yazmanız ve ardından filtrelenmiş listede dolaşmak için sekmeye
basmanız yeterlidir

@Jerinaw tarafından sağlanan Bağlantı iyi olsa da , bu sayfadaki terminolojinin ciddi şekilde yanıltıcı olduğunu, bu nedenle açıklığa kavuşturmak için o sayfadaki yorumları da okumanız gerektiğini unutmayın.
NeilG

5

.Vimrc'nize aşağıdakileri ekleyerek ağrınızı hafifletebilirsiniz.

cabbrev vb vert sb

Şimdi aşağıdaki şekilde kullanabilirsiniz.

:vb <buffer>

Bu güzel, genişletilmiş sürümü de arabellek adı otomatik tamamlama sunuyor! Cabbrev'i de bilmiyordum, teşekkürler.
kidpixo

2

:lsİstediğiniz arabelleği açmak için geçerli arabelleklerinizi ve komutları listeleyerek de birleştirebilirsiniz .

  1. geçerli pencere: :b <N/bufname>
  2. dikey bölme: :vsp | b <N/bufname>
  3. yatay bölme: :sp | b <N/bufname>

Bunun için, aşağıdaki eşlemeleri ekledim ~/.vimrc(eşleme sırası, istenen pencerelerin yukarıdaki listesini temsil eder)

 nnoremap <leader>b :ls<cr>:b<space>
 nnoremap <leader>v :ls<cr>:vsp<space>\|<space>b<space>
 nnoremap <leader>s :ls<cr>:sp<space>\|<space>b<space>

Buna dayanarak, vurduğunuz anda tampon listesini görebilirsiniz.

  1. <leader>b
  2. <leader>v
  3. <leader>s

ve sonra sadece istenen tampon numarasını girin N. Bu daha sonra tamponu istenen pencerede açacaktır. Elbette arabellek adının bir kısmını da kullanabilirsiniz bufname.

Ben eşlenen <leader>için ,dayalı

let mapleader = ","

Bazı insanlar için (örneğin ben) bu, MiniBufExpl gibi eklentilerin yerini alabilir ve böylece ekranda yer tasarrufu sağlayabilir.


0

Neovim'i şöyle kullanabilirsiniz:

autocmd FileType python nmap <F5> :rightbelow vertical split <bar> :term python %<cr>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.