mirror of
https://github.com/preservim/vim-pencil.git
synced 2025-11-14 04:43:47 -05:00
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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user