新しいタブでctagsエントリを開くプラグインまたはスクリプトはありますか?関数の上にカーソルを置き、Ctrl +]キーを押して、エントリを別のタブで開きます。エントリを視覚的に選択して、ctrl +]が引き続き機能し、新しいvimタブで開くようにしたいのですが。
あなたはできる
C-wC-]C-wT
その効果を達成するために
次に、それをマッピングすることもできます。
:nnoremap <silent><Leader><C-]> <C-w><C-]><C-w>T
編集:また、実際に必要なものに応じて、プレビューでタグを開くことができることを忘れないでください(:ptag
)例: C-w}。念のために言っておきます...
ここに2つのかなりアドホックなマッピングがあります(タグがctags
によって生成された場合):
nnoremap <C-]> :tabnew %<CR>g<C-]>
vnoremap <C-]> <Esc>:tabnew %<CR>gvg<C-]>
まず、現在のバッファを新しいタブで開きます。次に、カーソルの下のタグにジャンプしようとします(g<C-]>
、これは:tjump
と同じです。一致が1つだけの場合はタグに直接ジャンプします。一致が多数の場合は一致のリストを提供します)。
長所:
短所:
追伸ビジュアルモードマッピングの使用例を提供できますか?
P.P.S. cscope (ctags
より優れている)でタグを生成し、その vimマッピング を使用する場合は、上記のマッピングを次のマッピングに置き換えます。
nnoremap <C-]> :tabnew %<CR><C-]>
vnoremap <C-]> <Esc>tabnew %<CR>gv<C-]>
誰かがまだ解決策を探している場合。このソリューションでは、タグが見つからない場合、空白のタブは残りません。
function! w:GoToTag(tagWord)
let l:tagfile = &tags
:tabe
execute 'set tags=' . l:tagfile
execute ':silent tjump ' . a:tagWord
let l:tagFilename = expand('%:t')
if l:tagFilename == ''
:tabclose
:tabprevious
endif
endfunction
次のように、〜/ .vimrcにキーボードショートカット 'g'の後にCONTROL-]を設定できます。
nmap g<C-]> :execute 'tab tag '.expand('<cword>')<CR>
nmap means 'when in normal mode'
g<C-j> is the shortcut, 'g' followed by CTRL-]
execute is a means of executing a command passed as a string
tab tag means "open a new tab and run 'ta'"
expand is used to expansion of a vim item
<cword> means a Word the same as used for '*'. See also <cWORD>
:tabタグで "tab ta"をテストできますfunctionname