Vim - bir pencerede açık arabelleklerin dinamik listesi


21

Vim'deki açık tamponların bir listesini tutmanın birkaç yolunu araştırdım ve bazıları çok iyi, fakat hiçbiri istediğim gibi davranmıyor. İstediğim gibi hiçbir şeyin var olmaması ve sormaya zarar vermemesi çok olası.

GVim'de NERDTree kullanıyorum ve bilgileri ince bir sol pencereye koyma fikrini seviyorum. Ortamımın nasıl görünmesini istediğime dair kullanışlı bir şema hazırladım:

|--------|---------------------------------------|
|        |                                       | 
|        |                                       | 
|NERDTree|           Windows                     | 
|        |                                       | 
|        |                                       | 
|        |                                       | 
|--------|                                       |
|        |                                       | 
|        |                                       | 
|  List  |                                       | 
|   of   |                                       | 
|  Open  |                                       | 
| Buffers|                                       | 
|        |                                       | 
|        |                                       | 
|--------|---------------------------------------|

Yani sorum şu: Açık arabelleklerin bir listesini tutmak ve bu listeden NERDTree'ye benzer bir pencerede seçmek / düzenlemek / kapatmak için vim-native ya da eklenti etkin bir yöntem var mı?

Anlıyorum ki bu yaklaşımın uyuşmazlığı olabilir. Bir şeyler yapmanın vim yolu ve eğer bir Vim oturumunda birden fazla dosyayı yönetme hakkında bir şeyleri kaçırdığımı düşünüyorsanız, lütfen önerileri olan bir yorum bırakın!


Ayrıca nerdtree bölmesinin altında (veya üstünde) bir tampon listesine sahip olmayı düşünüyorum. İyi bir çözüm bulursam bu yazıyı güncellemeyi hatırlamaya çalışacağım (ancak yine de sorduğunuz için teşekkürler)
Eric Drechsel

Yanıtlar:


6

Vim.org sitesinin eklenti deposunu aradınız mı? Var tampon anahtarlama eklentileri onlarca Gibi seçim için BufferGator veya SelectBuf . Alternatif olarak, çoğu Vim wiki'de güzel bir liste .


Sorunuzun son bölümünde bahsettiğiniz gibi, bu tür bir sistem herkesin zevkine göre değil.

ben nefret tüm bu menülere, düğmelere ve listelerine veya her zaman açık olanlara sahip olmak: açık arabelleklerin listesi yalnızca başka bir ara belleğe atlamanız gerektiğinde kullanışlıdır, bu tür bir listeyi açık bırakmak bana bir alan israfı gibi görünür. Aynısı, aşırı yüklenmiş durum hatlarına da uygulanabilir.

kullanırım aynı eklenti arabellekler arasında hızlıca geçiş yapmak ve o anda düzenlemekte olduğum dosyanın etrafındaki dosya sistemini hızlıca araştırmak için. İle çağrılan ,f (dosyalar) veya ,b (tampon), işim bittiğinde cam kayboluyor Mükemmel. Var diğer benzer eklentileri , eğer bu fikri beğendiyseniz hepsini deneyin.

DÜZENLE

Tamponları değiştirerek, hareket halindeyken CtrlP'den bir animasyonlu GIF eklemek zorunda olduğumu hissediyorum:

Switching buffers with CtrlP

EndEdit

Yerli :sb <Tab> Ayrıca oldukça temiz ama daha az seksi. Bulanık eşlemeyi desteklemiyor, ancak bazı büyük avantajları var: :e <Tab>, :vs <Tab> ve bunun gibi.


Önerileriniz için teşekkürler. Görünüşe göre BufferGator ve SelectBuf, en azından benim peşimde olduğum fonksiyonelliğe yakınlar, ancak bazı şeyleri düzeltmek için ince ayarlamalar yapmaları gerekebilir. Alan boşa harcamayla ilgili endişeyi kesinlikle takdir ediyorum, ancak şu anki kullanım durumumda, bir seferde saatlerce açık olan bir GVim örneğini bir kerede açık bırakarak, aralarında gerektiği gibi duruyorum. Bu koşullar için kalıcı bir tampon listesi oldukça faydalıdır. Bununla birlikte, tampon yönetimine daha tipik Vim yaklaşımları hakkında bilgi edinmek için biraz zaman alacağım.
asfallows

Büyük bir monitörde çalıştığını hayal ediyorum. Hangi sistemi seçerseniz seçin, yine de arabellek listesine geçiş yapmanız, 2. arabellek seçmeniz, 3. arabellek listesinin zaten görünür olup olmadığı konusunda bir tuşa basmanız gerekir. "Talep üzerine" tampon anahtarlayıcı kullanmak, böylece bir tampon listesini açık tutmak kadar etkilidir ve yerden tasarruf sağlar.
romainl

Bu muhakemeyi kesinlikle takdir ediyorum, bu yüzden burada tarif ettiğim tam konfigürasyonun mümkün olamayacağı konusunda endişeli değilim. Kalıcı bir arabellek listesinin sahip olduğu tek büyük avantaj, hangi arabelleklerin açık olduğunu, değerli bulduğum bir bilgiyi ve kısa süreli hafızada kalmam konusunda kendimi çok kötü bulduğunu kontrol etmek için 0 tuşa basmaktır. (Ve evet, oldukça büyük bir monitörde çalışıyorum.)
asfallows

@romainl, hangi vimrc komutunu eşlemek için kullandınız ,b ctrlp ile arabellek aramak için?
snowbound

1
@snowbound, FWIW Bir süre önce CtrlP veya benzeri herhangi bir eklenti kullanmayı bıraktım. Neyse, benim emrim nnoremap ,b :CtrlPBuffer<CR>.
romainl

5

Tavsiye ederim MiniBufExplorer . Ayrıca bakınız minibufexplorer'a alternatif mi?

Screenshot


Cevabınız için teşekkürler - MiniBufExplorer'ı buldum ve ne işe yaradığı konusunda son derece iyi görünüyor, ancak arabellekleri nasıl yönetmek istediğim için tanımladığım koşulları karşılamıyor. Görünüşe göre, yapmaya çalıştığım şeyi yapmanın iyi bir yolu yok veya yapmanın doğru yol olmadığına karar veriyorum, MBE listemde bir sonraki denemeler için oldukça yüksek.
asfallows

1
Karşılanmayan tek koşul listenin solda olmasıdır. Katılıyorum, MiniBufExplorer üsttedir (soldaki kadar boşa harcamamaktadır). Ya da belki gereksinimlerinizi yanlış anladım.
Marco

Şu anki kurulumumda, gösterildiği gibi solda arabelleklerin listesine sahip olmak aslında alan kullanımında bir gelişmedir, çünkü NERDTree her zaman açıktır, ancak her zaman tam dikey değildir. Bu alanı bir arabellek listesiyle paylaşmak güzel olurdu. GVim'i böyle kullandığımdan eminim ve konsolda Vim kullanıyor olsaydım kalıcı bir sol sütun istemem. Vim konsol kullanımımın çoğu "açık dosya, hızlı düzenleme yap, vim'i kapat"
asfallows

1

Bunu kullanarak tam olarak bunu yapmanın bir yolu var winmanager Eklenti. Bunda ekran görüntüsü Hem NERDTree hem de MiniBufExpl'i (github: techlivezheng / vim-plugin-minibufexpl, en son işleme atm 349a9fbb) eklentilerini aynı dikey bölmede birleştirip F4 ile değiştirdim. Teorik olarak bu çözüm, diğer eklentiler kombinasyonu için çalışmalıdır.

Benim .vimrc örneği

" {{{ MiniBufExpl config
let g:miniBufExplVSplit = 20 " open in vertical
let g:miniBufExplSplitToEdge = 0 " open relative to previous window (NERDTree)
" }}} MiniBufExpl config

" {{{ winmanager config
" register the plugins
let g:NERDTree_title='NERD Tree'
let g:MiniBufExpl_title='MiniBufExpl'

" set the layout
let g:winManagerWindowLayout='NERDTree|MiniBufExpl'

" handler for NERDTree
function! NERDTree_Start()
    exec 'NERDTree'
endfunction

" handler for MiniBufExpl
function! MiniBufExpl_Start()
    exec 'MBEOpen'
endfunction

" mapping to toggle the split to F4
nmap &ltF4&gt :WMToggle
" }}} winmanager config

sorunlar:

  • NERDTree, winmanager'ın oluşturduğu tamponu kullanmıyor, ancak kendi içinde açılıyor ...
  • ... bu nedenle winmanager tamponu kullanılmayacak
  • Tamponlar arasında atlama yaparken MiniBufExpl kendini düzgün şekilde güncellemiyor

Kazandığım davranış mükemmel olmaktan uzak, ancak bu iyi bir başlangıç.

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.