vim: toon 'buffer %d van %d' in statusline

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 18:00

thunder7

houten vaas/schaal nodig?

Topicstarter
Ik zoek een manier om bij het editten van een lijst files in VIm in de statusline een weergave te krijgen van hoe ver ik ben.

Kennelijk heeft vim een variabele %n in de statusline voor het nummer van de huidige buffer, maar geen variabele voor het totaal aantal buffers. Zoeken op internet geeft geen resultaat.

Is het hiervoor echt nodig dat ik een functie definieer die het aantal buffers teruggeeft? Dan moet ik wel erg diep in de documentatie gaan duiken...

Iemand een tip?

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 28-09 20:20
Bij buffer in vim denk ik aan gekopieerde lines. Volgens mij zoek jij naar gequeuede files

:ar geeft alle files in queue, met brackets om de huidige file.

Acties:
  • 0 Henk 'm!

  • Oyster
  • Registratie: Januari 2003
  • Niet online

Oyster

Prince

Is %P voor het percentage voldoende?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Waarschijnlijk zoek je iets als:
VimL:
1
bufnr('$')


Helaas geeft dat alleen je hoogste buffer nummer, niet de telling van alle buffers.

Met een klein beetje scripting kom je een heel eind overigens:
VimL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
" Full recalculation function
autocmd VimEnter * call UpdateBufferCount() 
function UpdateBufferCount() 
    let buffers = range(1, bufnr('$')) 
    call filter(buffers, 'buflisted(v:val)') 
    let g:buffer_count = len(buffers) 
endfunction 

" Update count
call UpdateBufferCount()

" Increment and decrement when needed
autocmd BufAdd * let g:buffer_count += 1 
autocmd BufDelete * let g:buffer_count -= 1


Nu heb je een buffer_count variabele beschikbaar :)

[edit]Hier is een hele discussie over de buffer count: http://www.mail-archive.com/vim-dev@vim.org/msg02765.html

[ Voor 95% gewijzigd door Wolfboy op 21-06-2016 13:05 ]

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 18:00

thunder7

houten vaas/schaal nodig?

Topicstarter
Aha, het is gelukt. Bedankt!

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 12:22

CAPSLOCK2000

zie teletekst pagina 888

Hoe heb je het nu gedaan?

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 18:00

thunder7

houten vaas/schaal nodig?

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function! NrBufs()
    let i = bufnr('$')
    let j = 0
    while i >= 1
        if buflisted(i)
            let j+=1
        endif
        let i-=1
    endwhile
    return j
endfunction

set statusline=buf\ %n/%{NrBufs()}\ %t\ %m%r%y%=(ascii=\%03.3b,hex=\%02.2B)\ (%l/%L,%c)\ (%P


gekopieerd van iemand die ik via de gegeven link vond...

[ Voor 8% gewijzigd door thunder7 op 21-06-2016 18:07 ]

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl

Pagina: 1