1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 14:10:06 +08:00
SpaceVim/bundle/calendar.vim/autoload/calendar/mapping.vim

244 lines
8.6 KiB
VimL
Raw Normal View History

" =============================================================================
" Filename: autoload/calendar/mapping.vim
" Author: itchyny
" License: MIT License
" Last Change: 2019/08/07 21:21:45.
" =============================================================================
let s:save_cpo = &cpo
set cpo&vim
" Setting mappings in the calendar buffer.
function! calendar#mapping#new() abort
let save_cpo = &cpo
set cpo&vim
if has_key(get(b:, 'calendar', {}), 'view')
let v = b:calendar.view
if maparg('<ESC>', 'n') !=# '<Plug>(calendar_escape)'
if v.help_visible() || v.event_visible() || v.task_visible() || b:calendar.visual_mode()
if v:version > 703
nmap <buffer><nowait> <ESC> <Plug>(calendar_escape)
else
nmap <buffer> <ESC> <Plug>(calendar_escape)
endif
endif
else
if !(v.help_visible() || v.event_visible() || v.task_visible() || b:calendar.visual_mode())
nunmap <buffer> <ESC>
endif
endif
endif
if &l:filetype ==# 'calendar'
let &cpo = save_cpo
return
endif
" normal mode mapping
let actions = ['left', 'right', 'down', 'up', 'prev', 'next', 'move_down', 'move_up', 'move_event',
\ 'down_big', 'up_big', 'down_large', 'up_large',
\ 'line_head', 'line_middle', 'line_last', 'bar',
\ 'first_line', 'last_line', 'first_line_head', 'last_line_last', 'space',
\ 'scroll_down', 'scroll_up', 'scroll_top_head', 'scroll_top',
\ 'scroll_center_head', 'scroll_center', 'scroll_bottom_head', 'scroll_bottom',
\ 'add', 'subtract', 'status', 'plus', 'minus', 'task', 'event', 'close_task', 'close_event',
\ 'delete', 'delete_line', 'yank', 'yank_line', 'change', 'change_line',
\ 'undo', 'undo_line', 'tab', 'shift_tab', 'next_match', 'prev_match',
\ 'today', 'enter', 'view_left', 'view_right', 'redraw', 'clear', 'help', 'hide', 'exit',
\ 'visual', 'visual_line', 'visual_block', 'exit_visual',
\ 'start_insert', 'start_insert_append', 'start_insert_head', 'start_insert_last',
\ 'start_insert_prev_line', 'start_insert_next_line', 'start_insert_quick',
\ ]
for action in actions
exec printf("nnoremap <buffer><silent> <Plug>(calendar_%s) :<C-u>call b:calendar.action('%s')<CR>", action, action)
endfor
" escape
nmap <buffer><silent><expr> <Plug>(calendar_escape)
\ b:calendar.view.help_visible() ? "\<Plug>(calendar_help)" :
\ b:calendar.view.event_visible() ? "\<Plug>(calendar_event)" :
\ b:calendar.visual_mode() ? "\<Plug>(calendar_exit_visual)" :
\ b:calendar.view.task_visible() ? "\<Plug>(calendar_task)" :
\ ""
" mark
let marks = map(range(97, 97 + 25), 'nr2char(v:val)')
for mark in marks
exec printf("nmap <buffer><silent> m%s :<C-u>call b:calendar.mark.set('%s')<CR>", mark, mark)
exec printf("nmap <buffer><silent> `%s :<C-u>call b:calendar.mark.get('%s')<CR>", mark, mark)
exec printf("nmap <buffer><silent> '%s :<C-u>call b:calendar.mark.get('%s')<CR>", mark, mark)
exec printf("nmap <buffer><silent> g`%s :<C-u>call b:calendar.mark.get('%s')<CR>", mark, mark)
exec printf("nmap <buffer><silent> g'%s :<C-u>call b:calendar.mark.get('%s')<CR>", mark, mark)
endfor
for mark in ['`', "'"]
exec printf("nmap <buffer><silent> %s%s :<C-u>call b:calendar.mark.get('%s')<CR>", mark, mark, mark ==# "'" ? mark . mark : mark)
endfor
" command line mapping
cnoremap <buffer><silent><expr> <Plug>(calendar_command_enter) b:calendar.action('command_enter')
" move neighborhood
nmap <buffer> h <Plug>(calendar_left)
nmap <buffer> l <Plug>(calendar_right)
nmap <buffer> j <Plug>(calendar_down)
nmap <buffer> k <Plug>(calendar_up)
nmap <buffer> <Left> <Plug>(calendar_left)
nmap <buffer> <Right> <Plug>(calendar_right)
nmap <buffer> <Down> <Plug>(calendar_down)
nmap <buffer> <Up> <Plug>(calendar_up)
nmap <buffer> <BS> h
nmap <buffer> <C-h> h
nmap <buffer> gh h
nmap <buffer> gl l
nmap <buffer> gj j
nmap <buffer> gk k
nmap <buffer> g<Left> <Left>
nmap <buffer> g<Right> <Right>
nmap <buffer> g<Down> <Down>
nmap <buffer> g<Up> <Up>
nmap <buffer> <S-Down> <Down>
nmap <buffer> <S-Up> <Up>
nmap <buffer> <C-n> <Plug>(calendar_down)
nmap <buffer> <C-p> <Plug>(calendar_up)
nmap <buffer> <C-j> <Plug>(calendar_move_down)
nmap <buffer> <C-k> <Plug>(calendar_move_up)
nmap <buffer> <C-S-Down> <Plug>(calendar_move_down)
nmap <buffer> <C-S-Up> <Plug>(calendar_move_up)
nmap <buffer> M <Plug>(calendar_move_event)
nmap <buffer> w <Plug>(calendar_next)
nmap <buffer> W w
nmap <buffer> e w
nmap <buffer> <S-Right> w
nmap <buffer> <C-Right> w
nmap <buffer> b <Plug>(calendar_prev)
nmap <buffer> B b
nmap <buffer> ge b
nmap <buffer> gE b
nmap <buffer> <S-Left> b
nmap <buffer> <C-Left> b
" move page
nmap <buffer> <C-d> <Plug>(calendar_down_big)
nmap <buffer> <C-u> <Plug>(calendar_up_big)
nmap <buffer> <C-f> <Plug>(calendar_down_large)
nmap <buffer> <C-b> <Plug>(calendar_up_large)
nmap <buffer> <PageDown> <C-f>
nmap <buffer> <PageUp> <C-b>
" move column
nmap <buffer> 0 <Plug>(calendar_line_head)
nmap <buffer> ^ 0
nmap <buffer> g0 0
nmap <buffer> <Home> 0
nmap <buffer> g<Home> 0
nmap <buffer> g^ ^
nmap <buffer> gm <Plug>(calendar_line_middle)
nmap <buffer> $ <Plug>(calendar_line_last)
nmap <buffer> g$ $
nmap <buffer> g_ $
nmap <buffer> <End> $
nmap <buffer> g<End> $
nmap <buffer> gg <Plug>(calendar_first_line)
nmap <buffer> <C-Home> gg
nmap <buffer> ( <Plug>(calendar_first_line)
nmap <buffer> { (
nmap <buffer> [[ (
nmap <buffer> [] [[
nmap <buffer> G <Plug>(calendar_last_line)
nmap <buffer> ) <Plug>(calendar_last_line)
nmap <buffer> } )
nmap <buffer> ]] )
nmap <buffer> ][ ]]
nmap <buffer> <C-End> <Plug>(calendar_last_line_last)
nmap <buffer> <Bar> <Plug>(calendar_bar)
" scroll
nmap <buffer> <C-e> <Plug>(calendar_scroll_down)
nmap <buffer> <C-y> <Plug>(calendar_scroll_up)
nmap <buffer> z<CR> <Plug>(calendar_scroll_top_head)
nmap <buffer> zt <Plug>(calendar_scroll_top)
nmap <buffer> z. <Plug>(calendar_scroll_center_head)
nmap <buffer> zz <Plug>(calendar_scroll_center)
nmap <buffer> z- <Plug>(calendar_scroll_bottom_head)
nmap <buffer> zb <Plug>(calendar_scroll_bottom)
" delete
nmap <buffer> d <Plug>(calendar_delete)
nmap <buffer> D <Plug>(calendar_delete_line)
" yank
nmap <buffer> y <Plug>(calendar_yank)
nmap <buffer> Y <Plug>(calendar_yank_line)
" change
nmap <buffer> c <Plug>(calendar_change)
nmap <buffer> C <Plug>(calendar_change_line)
" utility
nmap <buffer> <Undo> <Plug>(calendar_undo)
nmap <buffer> u <Plug>(calendar_undo)
nmap <buffer> U <Plug>(calendar_undo_line)
nmap <buffer> <TAB> <Plug>(calendar_tab)
nmap <buffer> <S-Tab> <Plug>(calendar_shift_tab)
nmap <buffer> n <Plug>(calendar_next_match)
nmap <buffer> N <Plug>(calendar_prev_match)
nmap <buffer> t <Plug>(calendar_today)
nmap <buffer> <CR> <Plug>(calendar_enter)
nmap <buffer> <C-a> <Plug>(calendar_add)
nmap <buffer> <C-x> <Plug>(calendar_subtract)
nmap <buffer> <C-g> <Plug>(calendar_status)
nmap <buffer> + <Plug>(calendar_plus)
nmap <buffer> - <Plug>(calendar_minus)
nmap <buffer> T <Plug>(calendar_task)
nmap <buffer> E <Plug>(calendar_event)
nmap <buffer> < <Plug>(calendar_view_left)
nmap <buffer> > <Plug>(calendar_view_right)
nmap <buffer> <Space> <Plug>(calendar_space)
nmap <buffer> <C-l> <Plug>(calendar_redraw)
nmap <buffer> <C-r> <Plug>(calendar_redraw)
nmap <buffer> L <Plug>(calendar_clear)
nmap <buffer> ? <Plug>(calendar_help)
nmap <buffer> q <Plug>(calendar_hide)
nmap <buffer> Q <Plug>(calendar_exit)
" nop
nmap <buffer> H <Nop>
nmap <buffer> J <Nop>
nmap <buffer> p <Nop>
nmap <buffer> P <Nop>
nmap <buffer> r <Nop>
nmap <buffer> R <Nop>
nmap <buffer> ~ <Nop>
" insert mode
nmap <buffer> i <Plug>(calendar_start_insert)
nmap <buffer> a <Plug>(calendar_start_insert_append)
nmap <buffer> I <Plug>(calendar_start_insert_head)
nmap <buffer> A <Plug>(calendar_start_insert_last)
nmap <buffer> O <Plug>(calendar_start_insert_prev_line)
nmap <buffer> o <Plug>(calendar_start_insert_next_line)
" visual mode
nmap <buffer> v <Plug>(calendar_visual)
nmap <buffer> V <Plug>(calendar_visual_line)
nmap <buffer> <C-v> <Plug>(calendar_visual_block)
nmap <buffer> gh v
nmap <buffer> gH V
nmap <buffer> g<C-h> <C-v>
" command line
cmap <buffer> <CR> <Plug>(calendar_command_enter)
" mouse wheel
map <buffer> <ScrollWheelUp> <Plug>(calendar_prev)
map <buffer> <ScrollWheelDown> <Plug>(calendar_next)
let &cpo = save_cpo
endfunction
let &cpo = s:save_cpo
unlet s:save_cpo