diff options
| author | jdhao <jdhao@hotmail.com> | 2020-11-14 14:29:37 +0800 |
|---|---|---|
| committer | jdhao <jdhao@hotmail.com> | 2020-11-14 14:29:37 +0800 |
| commit | 2ad432088fa3228319e85564f0735e33ea3b6e2f (patch) | |
| tree | ceea0c70452b6ff9d66b178269ff11ed1218a9b7 | |
| parent | b5087e3665fffb1caee95b3ff78130fadd613f39 (diff) | |
move function to autoload dir
| -rw-r--r-- | autoload/buf_utils.vim | 26 | ||||
| -rw-r--r-- | core/mappings.vim | 31 |
2 files changed, 28 insertions, 29 deletions
diff --git a/autoload/buf_utils.vim b/autoload/buf_utils.vim new file mode 100644 index 0000000..db34ae0 --- /dev/null +++ b/autoload/buf_utils.vim @@ -0,0 +1,26 @@ +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 the validity of buffer number. + if index(s:GetBufNums(), a:count) == -1 + echohl WarningMsg | echomsg 'Invalid bufnr: ' a:count | echohl None + 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 diff --git a/core/mappings.vim b/core/mappings.vim index 2aa9723..bda37d2 100644 --- a/core/mappings.vim +++ b/core/mappings.vim @@ -176,35 +176,8 @@ xnoremap <silent> <A-j> :<C-U>call utils#MoveSelection('down')<CR> " register, see also https://stackoverflow.com/q/10723700/6064933. xnoremap p "_c<ESC>p -nnoremap <silent> gb :<C-U>call <SID>GoToBuffer(v:count, 'forward')<CR> -nnoremap <silent> gB :<C-U>call <SID>GoToBuffer(v:count, 'backward')<CR> - -function! s: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 the validity of buffer number. - if index(s:GetBufNums(), a:count) == -1 - echohl WarningMsg | echomsg 'Invalid bufnr: ' a:count | echohl None - 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 +nnoremap <silent> gb :<C-U>call buf_utils#GoToBuffer(v:count, 'forward')<CR> +nnoremap <silent> gB :<C-U>call buf_utils#GoToBuffer(v:count, 'backward')<CR> nnoremap <Left> <C-W>h nnoremap <Right> <C-W>l |
