Tampon listesini yeniden numaralandırma


29

Bir proje üzerinde bir süre çalıştıktan sonra, ardışık tampon sayıları arasında büyük boşluklar görmeye başladım. Bunun sebebi, aralarındaki tamponların çeşitli nedenlerle ortadan kaldırılmış olmasıdır. Maalesef, bu, yazdıktan sonra, belirli bir tampon belleğe atlamayı veya tampon aralığını seçmeyi zorlaştırabilir :ls. Tüm dosyaları tekrar açmadan, birinden başlayarak tüm açık arabellekleri yeniden numaralandırmanın bir yolu var mı?

Yanıtlar:


21

Hayır (tamponları silmeden değil).

Vim, arabellek numarası atamasını veya arabellekleri açtıktan sonra yeniden sıralamayı el ile desteklemez. Felsefesi, her tamponun, bu tamponun kullanım ömrü boyunca sabit bir tanımlayıcıya sahip olduğudur (yardımda :ls, "her tamponun kendine özgü bir numarası vardır. Bu sayı değişmeyecektir ...").

Yine de argüman listesini kullanabilirsiniz. Tüm açık arabellekleri argüman listesine koyun, tüm bekleyen arabellekleri silin ve ardından argüman listesinde her şeyi açın. Aşağıdaki komutlar bunu başaracaktır:

  • :argdel * (mevcut argüman listesini sil)
  • :bufdo argadd % (her tampon için, listeye tamponun yolunu ekle)
  • :1,1000bd (1'den 1000'e kadar olan arabellekleri silin; muhtemelen bunu yapmanın daha iyi bir yolu vardır)
  • :argdo e (her argüman için bu argümanı düzenleyin)

Bu, önceki tüm arabellekleri sildiğinizde vim'in açacağı ekstra boş bir arabellek bırakacaktır, ancak istediğiniz işlevselliğin makul bir yaklaşımıdır. Sadece :bdbu ekstra tamponu yapabilirsiniz.


1
Cevabınız hayır diyor, ama harika görünüyor!
aharris88

(Dosyaları yeniden açmadan yapamayacağınız anlamında "hayır" demek istedim). Aslında sizin için 1'den yeniden numaralandırıyor mu? İlk denediğimde yaptığını düşündüm, ama şimdi benim için numarasız olmadığını görüyorum ?

Evet, benim için numaralandırıyor.
aharris88

Evet, sadece aptalım, hatamı buldum.

“her bir tampon, bu tamponun kullanım ömrü boyunca sabitlenmiş bir tanımlayıcı alır” aslında oturum!

14

"Tampon numaraları deliriyor" Bana bundan bahset! Günün sonunda 100'den fazla tamponla kolayım. Ama neyse ki, bu animasyonda gördüğünüz gibi, tabtampon isimlerini tamamladınız.

Hit: b se <Tab>

Böylece, arabellekleri yeniden numaralandırmasanız bile, yine de kolayca atlayabilirsiniz.

Animasyondan net olup olmadığını bilmiyorum ama, "sekme tamamlama" komut satırı sekme tamamlamaya benzemiyor. Daha çok bir "belirsizlik çözme sekmesi replacer" gibi. Komut satırında sctabo zaman setabyazmam gerekeceği anlamına gelirdi ama burada vim 'se' araması yapar ve ilk (ve sadece) eşleşmeyle değiştirir. Ben yazdığınız olsaydı testtabo generate_test_data.py 'eşleşti olurdu ve daha sonra tabtekrar 'komut / setup_test_data.sh' eşleşti olurdu ve daha sonra tabtekrar vs arka tarafa sağlanıncaya olurdu

Sadece :b <minimum amount of unambiguous characters>tabistediğiniz belgeye atlamak için yazma yazma alışkanlığına sahip olabileceğiniz bir nokta . Sanırım bu, "Tamponlarım 1: foo 2: bar 3: etc" 'yi hatırlamaktan daha iyidir, ki acemiyken bunu nasıl yapardım.


7

Vim-havayolunu kullanabilirsiniz. Bu eklentinin sorunu çözebilecek bir davranışı var:

Airline.txt dosyasındaki 470-479 hattına bakınız.

Bu, arabellek numaralarını değiştirmez, ancak tablodaki satır numarasına göre soldan sağa bir arabellek seçebilirsiniz. Bu benim için havayolu ayarımdır .vimrc:

"set airline 
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
let g:airline#extensions#tabline#show_tab_nr = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#tabline#fnametruncate = 16
let g:airline#extensions#tabline#fnamecollapse = 2

let mapleader=","

let g:airline#extensions#tabline#buffer_idx_mode = 1

nmap <leader>1 <Plug>AirlineSelectTab1
nmap <leader>2 <Plug>AirlineSelectTab2
nmap <leader>3 <Plug>AirlineSelectTab3
nmap <leader>4 <Plug>AirlineSelectTab4
nmap <leader>5 <Plug>AirlineSelectTab5
nmap <leader>6 <Plug>AirlineSelectTab6
nmap <leader>7 <Plug>AirlineSelectTab7
nmap <leader>8 <Plug>AirlineSelectTab8
nmap <leader>9 <Plug>AirlineSelectTab9

Sekme satırım: Sekme çizgim


inanılmaz! Bayıldım :)
Blasco

Sorunun cevabı değil ama çılgın tampon numaraları ile sorunu yamalar. Sadece buffer_numbers göstermek için sadece bir öneri: switch_buffers_and_tabs=1vebuffer_idx_mode=0
caligari

6

Belgelere göre, tampon numaraları asla değişmez

    Each buffer has a unique number.  That number will not change,
    so you can always go to a specific buffer with ":buffer N" or
    "N CTRL-^", where N is the buffer number.

Tamponları yeniden numaralandırmayı düşünebilmemin tek yolu vim'i yeniden başlatmak.


0

Eski soru, ancak bu google aramada en üst sıralarda yer aldığından, gelecekteki aramalar için bunu burada bırakacağım. Bruno'nun önerdiği gibi, tampon listelerini destekleyen bulanık bir bulucu gitmenin yoludur. Ben şahsen fzf-vim kullanıyorum . Bu :FZFBuffersgibi görünen bir komut verir :

görüntü tanımını buraya girin

Arabellek numaraları, ihtiyaç duymanız durumunda solda görüntülenir, ancak bulanık bir bulucu ile bunları bir daha kullanmanız gerekmeyebilir. Sadece dosya adının bir kısmını hatırlayın ve genellikle 2-5 tuşa basılır. Şahsen, bu komutu bir tuş vuruşuyla eşledim ve arabellekleri değiştirmek benim için neredeyse bitti!

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.