Vim:映射 shift-K 在新选项卡中打开当前单词的帮助

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 的新选项卡中获取有关当前单词的帮助?

答案1

我不确定你想做什么。<s-k>,也称为K,打开光标下的关键字的手册页。我假设你想创建一个映射来打开光标下的关键字的 vim 帮助页面。这可以通过以下方式完成(我将使用<c-k>而不是覆盖K):

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

答案2

为了以后任何人偶然发现这一点:我结合了@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),因为脚本易有一个自动命令覆盖S-K映射,并且我不确定如何在 .vimrc 中覆盖它。)

相关内容