2

Python には public/protected/private がないため、Python ファイル用g:tagbar_show_visibilityに設定したいと考えています。'0'この方法で Vim を構成するにはどうすればよいですか?

4

2 に答える 2

1

操作を手動で実行するには、次を実行します。

:TagbarClose
:let g:tagbar_show_visibility = 0
:TagbarOpen

次の行を vimrc に追加して、自動的に作成できます。

au BufRead *.py :let g:tagbar_show_visibility = 0

自動コマンド (au) は、特定のイベントでコマンドを実行します。この特定の例では、vim がバッファーを読み取った時点で、バッファー .py の変数を 0 に設定します。

編集

私の解決策はうまくいきません。変数 g:tagbar_show_bisibility はグローバルなので。TagbarOpen が呼び出されたときに Tagbar プラグインがそれを読み取るようです。そのため、TagbarOpen2 などの関数を使用して Tagbar を開くことをお勧めします。関数は現在のバッファのファイルタイプをチェックし、それに応じて可視性変数を設定します。

EDIT2

バッファに入るたびに可視性を設定するスクリプトを作成しました。次に、TagbarToggle を 2 回続けて使用して、Tagbar を更新します。少し面倒ですが、私が得た最高のものです。時間があれば、ちらつきを回避するためのより良い方法を思い付くことができるかもしれません。

このスクリプトを改善する場合は共有してください。

function! TagbarUpdate()
    if (&ft == 'tagbar')
        return
    endif
    let g:tagbar_show_visibility = 1
    if (&ft == 'python')
        let g:tagbar_show_visibility = 0
    endif
    exec ":TagbarToggle"
    exec ":TagbarToggle"
endfunction

au! BufEnter * :call TagbarUpdate()
于 2016-08-12T16:50:05.983 に答える
1

ctagsargs特定のファイルタイプをカスタマイズしてctags、タグの「可視性」情報を最初から出力しないようにすることができます。

let g:tagbar_type_python = {
    \ 'ctagsargs' : '-f - --excmd=pattern --fields=nksSmt'
\ }

ここで重要なのは、--fields各タグに含めるフィールドを指定するオプションです。

于 2016-08-12T20:54:49.563 に答える