spacevim/autoload/SpaceVim/api/vim/mapping.vim

44 lines
1.0 KiB
VimL
Raw Normal View History

2024-08-21 14:17:26 +08:00
"=============================================================================
" mapping.vim --- SpaceVim mapping API
" Copyright (c) 2016-2023 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg@outlook.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
let s:VIM = SpaceVim#api#import('vim#compatible')
function! SpaceVim#api#vim#mapping#get() abort
return map({
\ 'map' : '',
\ },
\ "function('s:' . v:key)"
\ )
endfunction
function! s:map(...) abort
if a:0 == 1
return s:parser(s:VIM.execute(':map ' . a:1))
endif
return []
endfunction
function! s:parser(rst) abort
let mappings = split(a:rst, "\n")
let mappings = map(mappings, 'split(v:val)')
let rst = []
for mapping in mappings
if len(mapping) >= 3
let mode = mapping[0]
let key = mapping[1]
let m = maparg(key, mode, 0, 1)
if !empty(m)
call add(rst, m)
endif
endif
endfor
return rst
endfunction
" vim:set et sw=2 cc=80: