1

В сочетании с 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 ответа2

6

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

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

Ради того, чтобы потом наткнуться на это: я объединил два метода, упомянутых в ответе и комментарии @ 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.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .