Я использую Комментарий . Он определяет следующие сочетания клавиш:
command! -range -bar Commentary call s:go(<line1>,<line2>)
xnoremap <expr> <Plug>Commentary <SID>go()
nnoremap <expr> <Plug>Commentary <SID>go()
nnoremap <expr> <Plug>CommentaryLine <SID>go() . '_'
onoremap <silent> <Plug>Commentary :<C-U>call <SID>textobject(get(v:, 'operator', '') ==# 'c')<CR>
nnoremap <silent> <Plug>ChangeCommentary c:<C-U>call <SID>textobject(1)<CR>
nmap <silent> <Plug>CommentaryUndo :echoerr "Change your <Plug>CommentaryUndo map to <Plug>Commentary<Plug>Commentary"<CR>
if !hasmapto('<Plug>Commentary') || maparg('gc','n') ==# ''
xmap gc <Plug>Commentary
nmap gc <Plug>Commentary
omap gc <Plug>Commentary
nmap gcc <Plug>CommentaryLine " <-------------------- I WANT TO REBIND THIS
if maparg('c','n') ==# '' && !exists('v:operator')
nmap cgc <Plug>ChangeCommentary
endif
nmap gcu <Plug>Commentary<Plug>Commentary
endif
Для того, чтобы часть моей мышечной памяти была совместимой между Vim и Emacs, я хочу отобразить gcc
на M-;
, так как это моя привязка Emacs для переключения комментариев. Но я не могу понять, как это сделать, поскольку CommentaryLine
не выставлено. Это означает, что я не могу назвать его с :
из «минибуфера» (имя для этого в Vim?).
Как можно сопоставить такие неэкспонированные функции, которые доступны пользователю только через предопределенные привязки клавиш?