首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用特定文件类型在Tagbar中显示可见性符号?

如何禁用特定文件类型在Tagbar中显示可见性符号?
EN

Stack Overflow用户
提问于 2016-08-12 15:12:05
回答 2查看 423关注 0票数 2

我希望g:tagbar_show_visibility文件的'0'设置为'0',因为Python中没有公共/受保护/私有的。我怎样才能这样配置Vim?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-12 20:54:49

您可以为特定的文件类型定制ctagsargs,使ctags首先不输出标签的“可见性”信息,例如:

代码语言:javascript
复制
let g:tagbar_type_python = {
    \ 'ctagsargs' : '-f - --excmd=pattern --fields=nksSmt'
\ }

这里的重要部分是--fields选项,它指定每个标记要包含的字段。

票数 1
EN

Stack Overflow用户

发布于 2016-08-12 16:50:05

若要手动执行此操作,请执行以下操作:

代码语言:javascript
复制
:TagbarClose
:let g:tagbar_show_visibility = 0
:TagbarOpen

您可以向vimrc中添加以下行以使其自动生成:

代码语言:javascript
复制
au BufRead *.py :let g:tagbar_show_visibility = 0

自动命令(au)对特定事件执行命令。对于这个特殊的例子,它将缓冲区的变量设置为0,.py此时读取它们。

编辑

我的解决办法不是很好。因为变量g:tagbar_show_bisibility是全局的。当TagbarOpen被调用时,Tagbar插件似乎会读取它。因此,更好的方法是使用函数打开Tagbar,比如TagbarOpen2或其他什么。函数将检查当前缓冲区的文件类型,并相应地设置可见性变量。

EDIT2

我创建了一个脚本,它将在每次输入缓冲区时设置可见性。然后,为了刷新Tagbar,我连续两次使用TagbarToggle。有点油腻,但这是我得到的最好的。如果你花点时间的话,也许你可以想出更好的办法来避免烦躁。

如果改进了这个脚本,请分享。

代码语言:javascript
复制
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38921220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档