Merge pull request #82 from reedes/non-zero

Fix keymaps so they don't default to '0' if not previously mapped
This commit is contained in:
Caleb Maclennan
2019-11-16 12:32:21 +03:00
committed by GitHub

View File

@@ -386,12 +386,16 @@ fun! pencil#init(...) abort
en en
if b:pencil_wrap_mode ==# s:WRAP_MODE_SOFT if b:pencil_wrap_mode ==# s:WRAP_MODE_SOFT
nn <buffer> <silent> $ g$ exe 'nn <buffer> <silent>' . Mapkey('$', 'n') . ' g$'
nn <buffer> <silent> 0 g0 exe 'nn <buffer> <silent>' . Mapkey('0', 'n') . ' g0'
vn <buffer> <silent> $ g$ exe 'vn <buffer> <silent>' . Mapkey('$', 'v') . ' g$'
vn <buffer> <silent> 0 g0 exe 'vn <buffer> <silent>' . Mapkey('0', 'v') . ' g0'
no <buffer> <silent> <Home> g<Home> no <buffer> <silent> <Home> g<Home>
no <buffer> <silent> <End> g<End> no <buffer> <silent> <End> g<End>
nn <buffer> <silent> g0 0
nn <buffer> <silent> g$ $
vn <buffer> <silent> g0 0
vn <buffer> <silent> g$ $
" preserve behavior of home/end keys in popups " preserve behavior of home/end keys in popups
call s:imap(1, '<Home>', '<C-o>g<Home>') call s:imap(1, '<Home>', '<C-o>g<Home>')
@@ -522,20 +526,17 @@ fun! s:doModelines() abort
en en
endf endf
" Pass in a key sequence and the first letter of a vim mode. Returns key
" mapping mapped to it in that mode, else the original key sequence if none.
function! Mapkey (keys, mode) abort function! Mapkey (keys, mode) abort
" Pass in a key sequence and the first letter of a vim mode. redir => mappings | silent! map | redir END
" Returns key mapping mapped to it in that mode, else 0 if none. for map in split(mappings, '\n')
" example: let seq = matchstr(map, '\s\+\zs\S*')
" :nnoremap <Tab> :bn<CR> if maparg(seq, a:mode) == a:keys
" :call Mapkey(':bn<CR>', 'n') return seq
" " returns <Tab> endif
redir => mappings | silent! map | redir END endfor
for map in split(mappings, '\n') return a:keys
let seq = matchstr(map, '\s\+\zs\S*')
if maparg(seq, a:mode) == a:keys
return seq
endif
endfor
endfunction endfunction
" vim:ts=2:sw=2:sts=2 " vim:ts=2:sw=2:sts=2