diff --git a/autoload/vimtex.vim b/autoload/vimtex.vim index d0b15ed516..e61906fd94 100644 --- a/autoload/vimtex.vim +++ b/autoload/vimtex.vim @@ -117,17 +117,23 @@ function! s:init_buffer() abort " {{{1 endfor endfunction +" }}}1 +function! s:map_prefixed(ftype, mode, lhs, rhs) abort " {{{1 + let l:lhs = g:vimtex_mappings_prefix . a:lhs + call s:map(a:ftype, a:mode, l:lhs, a:rhs) +endfunction + " }}}1 function! s:init_default_mappings() abort " {{{1 if !g:vimtex_mappings_enabled | return | endif - call s:map(0, 'n', 'li', '(vimtex-info)') - call s:map(0, 'n', 'lI', '(vimtex-info-full)') - call s:map(0, 'n', 'lx', '(vimtex-reload)') - call s:map(0, 'n', 'lX', '(vimtex-reload-state)') - call s:map(1, 'n', 'ls', '(vimtex-toggle-main)') - call s:map(0, 'n', 'lq', '(vimtex-log)') - call s:map(1, 'n', 'la', '(vimtex-context-menu)') + call s:map_prefixed(0, 'n', 'i', '(vimtex-info)') + call s:map_prefixed(0, 'n', 'I', '(vimtex-info-full)') + call s:map_prefixed(0, 'n', 'x', '(vimtex-reload)') + call s:map_prefixed(0, 'n', 'X', '(vimtex-reload-state)') + call s:map_prefixed(1, 'n', 's', '(vimtex-toggle-main)') + call s:map_prefixed(0, 'n', 'q', '(vimtex-log)') + call s:map_prefixed(1, 'n', 'a', '(vimtex-context-menu)') call s:map(0, 'n', 'ds$', '(vimtex-env-delete-math)') call s:map(0, 'n', 'cs$', '(vimtex-env-change-math)') @@ -157,17 +163,17 @@ function! s:init_default_mappings() abort " {{{1 call s:map(0, 'n', '', '(vimtex-delim-add-modifiers)') if g:vimtex_compiler_enabled - call s:map(0, 'n', 'll', '(vimtex-compile)') - call s:map(0, 'n', 'lo', '(vimtex-compile-output)') - call s:map(1, 'n', 'lL', '(vimtex-compile-selected)') - call s:map(1, 'x', 'lL', '(vimtex-compile-selected)') - call s:map(0, 'n', 'lk', '(vimtex-stop)') - call s:map(0, 'n', 'lK', '(vimtex-stop-all)') - call s:map(0, 'n', 'le', '(vimtex-errors)') - call s:map(0, 'n', 'lc', '(vimtex-clean)') - call s:map(0, 'n', 'lC', '(vimtex-clean-full)') - call s:map(0, 'n', 'lg', '(vimtex-status)') - call s:map(0, 'n', 'lG', '(vimtex-status-all)') + call s:map_prefixed(0, 'n', 'l', '(vimtex-compile)') + call s:map_prefixed(0, 'n', 'o', '(vimtex-compile-output)') + call s:map_prefixed(1, 'n', 'L', '(vimtex-compile-selected)') + call s:map_prefixed(1, 'x', 'L', '(vimtex-compile-selected)') + call s:map_prefixed(0, 'n', 'k', '(vimtex-stop)') + call s:map_prefixed(0, 'n', 'K', '(vimtex-stop-all)') + call s:map_prefixed(0, 'n', 'e', '(vimtex-errors)') + call s:map_prefixed(0, 'n', 'c', '(vimtex-clean)') + call s:map_prefixed(0, 'n', 'C', '(vimtex-clean-full)') + call s:map_prefixed(0, 'n', 'g', '(vimtex-status)') + call s:map_prefixed(0, 'n', 'G', '(vimtex-status-all)') endif if g:vimtex_motion_enabled @@ -288,19 +294,19 @@ function! s:init_default_mappings() abort " {{{1 endif if g:vimtex_toc_enabled - call s:map(0, 'n', 'lt', '(vimtex-toc-open)') - call s:map(0, 'n', 'lT', '(vimtex-toc-toggle)') + call s:map_prefixed(0, 'n', 't', '(vimtex-toc-open)') + call s:map_prefixed(0, 'n', 'T', '(vimtex-toc-toggle)') endif if has_key(b:vimtex, 'viewer') - call s:map(0, 'n', 'lv', '(vimtex-view)') + call s:map_prefixed(0, 'n', 'v', '(vimtex-view)') if !empty(maparg('(vimtex-reverse-search)', 'n')) - call s:map(1, 'n', 'lr', '(vimtex-reverse-search)') + call s:map_prefixed(1, 'n', 'r', '(vimtex-reverse-search)') endif endif if g:vimtex_imaps_enabled - call s:map(0, 'n', 'lm', '(vimtex-imaps-list)') + call s:map_prefixed(0, 'n', 'm', '(vimtex-imaps-list)') endif if g:vimtex_doc_enabled diff --git a/autoload/vimtex/options.vim b/autoload/vimtex/options.vim index 0d974cda02..eee0a5884b 100644 --- a/autoload/vimtex/options.vim +++ b/autoload/vimtex/options.vim @@ -286,6 +286,8 @@ function! vimtex#options#init() abort " {{{1 call s:init_option('vimtex_mappings_disable', {}) call s:init_option('vimtex_mappings_override_existing', 0) + call s:init_option('vimtex_mappings_prefix', 'l') + call s:init_option('vimtex_matchparen_enabled', 1) call s:init_option('vimtex_motion_enabled', 1) diff --git a/doc/vimtex.txt b/doc/vimtex.txt index 43c1daddef..010ca80c44 100644 --- a/doc/vimtex.txt +++ b/doc/vimtex.txt @@ -2104,6 +2104,11 @@ OPTIONS *vimtex-options* < Default value: {} +*g:vimtex_mappings_prefix* + The default prefix for all usually `` based mappings. + + Default value: l + *g:vimtex_mappings_override_existing* Control behaviour on mapping conflicts, in particular whether or not to override pre-existing mappings. By default, VimTeX does not override existing