28 lines
679 B
VimL
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
|