我想为 Python 文件g:tagbar_show_visibility
设置为,'0'
因为 Python 中没有公共/保护/私有。我怎样才能以这种方式配置 Vim?
问问题
356 次
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 是全局的。Tagbar 插件似乎在调用 TagbarOpen 时读取它。所以更好的方法是使用一个函数来打开 Tagbar,比如 TagbarOpen2 什么的。该函数将检查当前缓冲区的文件类型并相应地设置可见性变量。
编辑2
我制作了一个脚本,可以在您每次进入缓冲区时设置可见性。然后刷新标签栏,我连续两次使用 TagbarToggle。这有点讨厌,但它是我得到的最好的。如果您花一些时间,也许您可以想出一些更好的方法来避免摆弄。
如果改进此脚本,请分享。
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 回答