aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjdhao <jdhao@hotmail.com>2020-11-14 14:29:37 +0800
committerjdhao <jdhao@hotmail.com>2020-11-14 14:29:37 +0800
commit2ad432088fa3228319e85564f0735e33ea3b6e2f (patch)
treeceea0c70452b6ff9d66b178269ff11ed1218a9b7
parentb5087e3665fffb1caee95b3ff78130fadd613f39 (diff)
move function to autoload dir
-rw-r--r--autoload/buf_utils.vim26
-rw-r--r--core/mappings.vim31
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