和这个结合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 中覆盖它。)