2015-11-09 6 views
5

私はctagsを使用していて、私はmap <C-]> :vsp <CR>:exec("tag ".expand("<cword>"))<CR>を自分のvimrcに追加しました。ただし、毎回新しい垂直分割が開かれます。新しいタグを毎回開かずに垂直分割でタグ定義を表示する方法はありますか?新しい分割を開かずに垂直分割にタグ定義を表示させるにはどうすればいいですか?

アップデート:これで通常ctagスタックを使用する方法があるかどうかを知りたいと思います。つまり、ctrl + tを使用してスタックから位置をポップしますか?

答えて

3

次のコマンドを実行すると、あなたが探している結果を達成しますこのマッピングも動作するはずです:

nnoremap <C-]> :execute "vertical ptag " . expand("<cword>")<CR> 

あなたがより高い値に'previewheight'を設定することをお勧めします。

更新

代替ソリューションとして、あなたがタグにナビゲートしておきたい場合は、以下を使用することができます。

それでも
function! FollowTag() 
    if !exists("w:tagbrowse") 
    vsplit 
    let w:tagbrowse=1 
    endif 
    execute "tag " . expand("<cword>") 
endfunction 

nnoremap <c-]> :call FollowTag()<CR> 

、私はあなたがする必要性の見直しを検討すべきだと思いますアカウントに次の標準Vimのショートカットを取ることによって、このようなショートカットを作成します。

  1. <c-]>:JUM psがタグスタックを更新しているカーソルの下の単語のタグ定義に移動します。
  2. <c-w>}:タグ定義の場所を含むプレビューウィンドウを開きます。カーソルの位置は変わらないため、タグスタックは更新されません。
  3. <c-w>z:プレビューウィンドウを閉じます。
  4. <c-w>v:現在のウィンドウを2つに分割し、カーソルの位置を維持します。

あなたはすぐにそれを閉じるために<c-w>z続いタグ宣言を、チェックしたいのであれば、あなたは<c-w>}を使用することができます。しかし、ナビゲートする場合は、<c-w>vを使用して分割を作成し、標準<c-]をタグでナビゲートします。作業が終わったら、ウィンドウを閉じるには<c-w>cと入力するだけです。

+0

ありがとうございます。previewheight = 100に設定するとうまくいきます。ただし、タグスタックは常に空です。垂直方向のpタグが何をするのか説明できますか?これがタグスタックが空である理由ですか? – user1004985

+0

現在のバッファを残していない場合は、スタックを更新する必要がありますか?達成しようとしていることを正確に説明する質問を更新できますか? – Vitor

+0

質問が更新されました。私が意味していたのは、前の場所に移動するためにCtrl + Tを押してみようとしていたことです。 – user1004985

0

以下のコマンドでは、あなたが欲しいものを行う必要があり、少なくともハックっぽいやり方で:だから、

:execute "vertical ptag " . expand("<cword>") 

nnoremap <C-]> :only<bar>vsplit<CR>:execute "tag" . expand('<cword>')<CR> 
+0

ありがとうございます。しかし、初めて初めてタグ定義に行きません – user1004985

関連する問題