Vim: карта shift-K, чтобы открыть справку по текущему слову в новой вкладке

В сочетании с https://stackoverflow.com/questions/3131393/remapping-help-in-vim-to-open-in-a-new-tab я также собираюсь создать ярлык shift-K, который открывает справку в новой вкладке.

Я впервые попробовал nmap <S-K> :tab help expand("<cword>")<CR>, но на самом деле это не работает - expand очевидно, воспринимается буквально как текст тега справки и не выполняется.

Итак, как мне переназначить <S-K> получить справку по текущему слову в новой вкладке в Vim?

2 ответа

Решение

Я не уверен, что ты пытаешься сделать. <s-k>, также известен как K, открывает страницу руководства для ключевого слова под курсором. Я предполагаю, что вы хотите создать отображение, чтобы открыть страницу справки vim для ключевого слова под курсором. Это может быть сделано этим (я буду использовать <c-k> не переопределять K):

noremap <c-k> :execute "tab h " . expand("<cword>")<cr>

Ради того, чтобы потом наткнуться на это: я объединил два метода, упомянутых в ответе и комментарии @ madmax1, чтобы Vim автоматически выбирал подходящий метод помощи в зависимости от типа файла.

function! GetHelpOnCwordInTab()
    if &filetype == "vim"
        execute 'tab help ' . expand("<cword>")
    else
        execute 'tabnew <bar> read ! ' . &keywordprg . expand("<cword>")
    endif 
endfunction
autocmd FileType * nnoremap <C-K> :call GetHelpOnCwordInTab()<CR>

(Мне тоже пришлось принять предложение @ madmax1 о назначении клавиш ( C-K вместо S-K ) потому что у Scriptease есть autocmd, перезаписывающий S-K отображение, и я не уверен, как переопределить это из .vimrc.)

Другие вопросы по тегам