Я пытаюсь изменить поведение «K» в определенных обстоятельствах, но сохраняю его исходную функциональность во всех остальных.Вот моя неудачная попытка
function! GetDocumentation()
if &filetype == 'java'
JavaDocSearch
else
normal K
endif
endfunction
nnoremap K :call GetDocumentation()<CR>
Однако, поскольку я использую K в функции, когда она вызывается в результате переназначения, используется новое отображение K, и я получаю бесконечную рекурсию.Думаю, я мог бы как-то уловить суть функции в строке nnoremap
, но это кажется неловким, и было бы неплохо принудительно использовать оригинальное отображение ключа.
Надеюсь, это имеет смысл,
Спасибо.