web-dev-qa-db-ja.com

Vim:Shift-Kをマップして、新しいタブで現在のWordのヘルプを開きます

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の新しいタブで現在のWordのヘルプを取得するにはどうすればよいですか?

あなたが何をしようとしているのかわかりません。 <s-k>は、Kとも呼ばれ、カーソルの下にあるキーワードのマニュアルページを開きます。カーソルの下にあるキーワードのvimヘルプページを開くためのマッピングを作成するとします。これはこれによって行うことができます(Kをオーバーライドしないために<c-k>を使用します):

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

後でこれに遭遇する人のために:@ madmax1の回答とコメントに記載されている2つの方法を組み合わせて、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-KScriptease にはS-Kマッピングを上書きするautocmdがあり、私は.vimrc内からそれをオーバーライドする方法がわからない。)