nvim-config/autoload/buf_utils.vim
2025-08-10 20:24:22 +00:00

28 lines
679 B
VimL

function! buf_utils#GoToBuffer(count, direction) abort
if a:count == 0
if a:direction ==# 'forward'
bnext
elseif a:direction ==# 'backward'
bprevious
else
echoerr 'Bad argument ' a:direction
endif
return
endif
"Check validity of buffer number
if index(s:GetBufNums(), a:count) == -1
call v:lua.vim.notify('Invalid bufnr: ' . a:count, 4, {'tile': 'nvim-config'})
return
endif
" Do not use {count} for gB (it is less useful)
if a:direction ==# 'forward'
silent execute('buffer', a:count)
endif
endfunction
function! s:GetBufNums() abort
return map(copy(getbufinfo({'buflisted':1})), 'v:val.bufnr')
endfunction