Merge pull request #50 from dangerginger/sane-mvmt-key-remap

Sane defaults for movement key remaps
This commit is contained in:
Caleb Maclennan
2019-11-15 10:28:07 +03:00
committed by GitHub

View File

@@ -405,10 +405,10 @@ fun! pencil#init(...) abort
en en
if b:pencil_wrap_mode if b:pencil_wrap_mode
nn <buffer> <silent> j gj exe 'nn <buffer> <silent> ' . Mapkey("j", "n") . ' gj'
nn <buffer> <silent> k gk exe 'nn <buffer> <silent> ' . Mapkey("k", "n") . ' gk'
vn <buffer> <silent> j gj exe 'vn <buffer> <silent> ' . Mapkey("j", "v") . ' gj'
vn <buffer> <silent> k gk exe 'vn <buffer> <silent> ' . Mapkey("k", "v") . ' gk'
no <buffer> <silent> <Up> gk no <buffer> <silent> <Up> gk
no <buffer> <silent> <Down> gj no <buffer> <silent> <Down> gj
nn <buffer> <silent> gj j nn <buffer> <silent> gj j
@@ -519,4 +519,20 @@ fun! s:doModelines() abort
en en
endf endf
function! Mapkey (keys, mode)
" Pass in a key sequence and the first letter of a vim mode.
" Returns key mapping mapped to it in that mode, else 0 if none.
" example:
" :nnoremap <Tab> :bn<CR>
" :call Mapkey(':bn<CR>', 'n')
" " returns <Tab>
redir => mappings | silent! map | redir END
for map in split(mappings, '\n')
let seq = matchstr(map, '\s\+\zs\S*')
if maparg(seq, a:mode) == a:keys
return seq
endif
endfor
endfunction
" vim:ts=2:sw=2:sts=2 " vim:ts=2:sw=2:sts=2