我希望g:tagbar_show_visibility文件的'0'设置为'0',因为Python中没有公共/受保护/私有的。我怎样才能这样配置Vim?
发布于 2016-08-12 20:54:49
您可以为特定的文件类型定制ctagsargs,使ctags首先不输出标签的“可见性”信息,例如:
let g:tagbar_type_python = {
\ 'ctagsargs' : '-f - --excmd=pattern --fields=nksSmt'
\ }这里的重要部分是--fields选项,它指定每个标记要包含的字段。
发布于 2016-08-12 16:50:05
若要手动执行此操作,请执行以下操作:
:TagbarClose
:let g:tagbar_show_visibility = 0
:TagbarOpen您可以向vimrc中添加以下行以使其自动生成:
au BufRead *.py :let g:tagbar_show_visibility = 0自动命令(au)对特定事件执行命令。对于这个特殊的例子,它将缓冲区的变量设置为0,.py此时读取它们。
编辑
我的解决办法不是很好。因为变量g:tagbar_show_bisibility是全局的。当TagbarOpen被调用时,Tagbar插件似乎会读取它。因此,更好的方法是使用函数打开Tagbar,比如TagbarOpen2或其他什么。函数将检查当前缓冲区的文件类型,并相应地设置可见性变量。
EDIT2
我创建了一个脚本,它将在每次输入缓冲区时设置可见性。然后,为了刷新Tagbar,我连续两次使用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()https://stackoverflow.com/questions/38921220
复制相似问题