65

新しいタブでctagsエントリを開くためのプラグインまたはスクリプトはありますか?関数の上にカーソルを置き、を押しctrl+]て別のタブでエントリを開きたいのですが。ctrl+]また、エントリを視覚的に選択して、引き続き機能し、新しいvimタブで開くようにしたいと思います。

4

4 に答える 4

100

あなたはできる

C-wC-]C-wT

その効果を達成するために

次に、それをマッピングすることもできます。

:nnoremap <silent><Leader><C-]> <C-w><C-]><C-w>T

編集:また、実際に必要なものに応じて 、たとえば、プレビュー()でタグを開くことができることを忘れないでください。念のために言及するだけです...:ptagC-w}

于 2011-05-20T08:35:23.817 に答える
6

これが2つのかなりアドホックなマッピングです(タグがによって生成された場合ctags):

nnoremap <C-]> :tabnew %<CR>g<C-]>
vnoremap <C-]> <Esc>:tabnew %<CR>gvg<C-]>

まず、新しいタブで現在のバッファを開きます。次に、カーソルの下のタグにジャンプしようとします(g<C-]>に等しい:tjump、一致するものが1つしかない場合はタグに直接ジャンプするか、一致するものが多い場合は一致のリストを提供します)。

長所:

短所:

  • いずれも選択せずに一致リストを終了すると、新しく作成されたタブは開いたままになります
  • 一致するものがまったくない場合も同じことが起こります

PSビジュアルモードマッピングのユースケースを提供できますか?

PPS cscope(よりも優れているctags)でタグを生成し、そのvimマッピングを使用する場合は、上記のマッピングを次のマッピングに置き換えます。

nnoremap <C-]> :tabnew %<CR><C-]>
vnoremap <C-]> <Esc>tabnew %<CR>gv<C-]>
于 2011-07-28T21:16:47.730 に答える
3

誰かがまだ解決策を探している場合に備えて。このソリューションでは、タグが見つからない場合、空白のタブは残りません。

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
于 2014-01-10T01:23:13.880 に答える
3

〜/ .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>

:tabtagfunctionnameを介して「tabta」をテストできます

于 2019-06-19T04:00:13.747 に答える