" ============================================================================= " 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('', 'n') !=# '(calendar_escape)' if v.help_visible() || v.event_visible() || v.task_visible() || b:calendar.visual_mode() if v:version > 703 nmap (calendar_escape) else nmap (calendar_escape) endif endif else if !(v.help_visible() || v.event_visible() || v.task_visible() || b:calendar.visual_mode()) nunmap 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 (calendar_%s) :call b:calendar.action('%s')", action, action) endfor " escape nmap (calendar_escape) \ b:calendar.view.help_visible() ? "\(calendar_help)" : \ b:calendar.view.event_visible() ? "\(calendar_event)" : \ b:calendar.visual_mode() ? "\(calendar_exit_visual)" : \ b:calendar.view.task_visible() ? "\(calendar_task)" : \ "" " mark let marks = map(range(97, 97 + 25), 'nr2char(v:val)') for mark in marks exec printf("nmap m%s :call b:calendar.mark.set('%s')", mark, mark) exec printf("nmap `%s :call b:calendar.mark.get('%s')", mark, mark) exec printf("nmap '%s :call b:calendar.mark.get('%s')", mark, mark) exec printf("nmap g`%s :call b:calendar.mark.get('%s')", mark, mark) exec printf("nmap g'%s :call b:calendar.mark.get('%s')", mark, mark) endfor for mark in ['`', "'"] exec printf("nmap %s%s :call b:calendar.mark.get('%s')", mark, mark, mark ==# "'" ? mark . mark : mark) endfor " command line mapping cnoremap (calendar_command_enter) b:calendar.action('command_enter') " move neighborhood nmap h (calendar_left) nmap l (calendar_right) nmap j (calendar_down) nmap k (calendar_up) nmap (calendar_left) nmap (calendar_right) nmap (calendar_down) nmap (calendar_up) nmap h nmap h nmap gh h nmap gl l nmap gj j nmap gk k nmap g nmap g nmap g nmap g nmap nmap nmap (calendar_down) nmap (calendar_up) nmap (calendar_move_down) nmap (calendar_move_up) nmap (calendar_move_down) nmap (calendar_move_up) nmap M (calendar_move_event) nmap w (calendar_next) nmap W w nmap e w nmap w nmap w nmap b (calendar_prev) nmap B b nmap ge b nmap gE b nmap b nmap b " move page nmap (calendar_down_big) nmap (calendar_up_big) nmap (calendar_down_large) nmap (calendar_up_large) nmap nmap " move column nmap 0 (calendar_line_head) nmap ^ 0 nmap g0 0 nmap 0 nmap g 0 nmap g^ ^ nmap gm (calendar_line_middle) nmap $ (calendar_line_last) nmap g$ $ nmap g_ $ nmap $ nmap g $ nmap gg (calendar_first_line) nmap gg nmap ( (calendar_first_line) nmap { ( nmap [[ ( nmap [] [[ nmap G (calendar_last_line) nmap ) (calendar_last_line) nmap } ) nmap ]] ) nmap ][ ]] nmap (calendar_last_line_last) nmap (calendar_bar) " scroll nmap (calendar_scroll_down) nmap (calendar_scroll_up) nmap z (calendar_scroll_top_head) nmap zt (calendar_scroll_top) nmap z. (calendar_scroll_center_head) nmap zz (calendar_scroll_center) nmap z- (calendar_scroll_bottom_head) nmap zb (calendar_scroll_bottom) " delete nmap d (calendar_delete) nmap D (calendar_delete_line) " yank nmap y (calendar_yank) nmap Y (calendar_yank_line) " change nmap c (calendar_change) nmap C (calendar_change_line) " utility nmap (calendar_undo) nmap u (calendar_undo) nmap U (calendar_undo_line) nmap (calendar_tab) nmap (calendar_shift_tab) nmap n (calendar_next_match) nmap N (calendar_prev_match) nmap t (calendar_today) nmap (calendar_enter) nmap (calendar_add) nmap (calendar_subtract) nmap (calendar_status) nmap + (calendar_plus) nmap - (calendar_minus) nmap T (calendar_task) nmap E (calendar_event) nmap < (calendar_view_left) nmap > (calendar_view_right) nmap (calendar_space) nmap (calendar_redraw) nmap (calendar_redraw) nmap L (calendar_clear) nmap ? (calendar_help) nmap q (calendar_hide) nmap Q (calendar_exit) " nop nmap H nmap J nmap p nmap P nmap r nmap R nmap ~ " insert mode nmap i (calendar_start_insert) nmap a (calendar_start_insert_append) nmap I (calendar_start_insert_head) nmap A (calendar_start_insert_last) nmap O (calendar_start_insert_prev_line) nmap o (calendar_start_insert_next_line) " visual mode nmap v (calendar_visual) nmap V (calendar_visual_line) nmap (calendar_visual_block) nmap gh v nmap gH V nmap g " command line cmap (calendar_command_enter) " mouse wheel map (calendar_prev) map (calendar_next) let &cpo = save_cpo endfunction let &cpo = s:save_cpo unlet s:save_cpo