Vim CTAG-仅显示相关或上下文标记
我有一个与Vim一起工作的Ctags设置。Vim CTAG-仅显示相关或上下文标记,vim,ctags,Vim,Ctags,我有一个与Vim一起工作的Ctags设置。 我当前的设置如下: set tags=./tags;/ set tags+=~/.ctags/*/tags 它基本上在当前目录中查找标签文件,直到/,并且在~/.ctags目录中查找标签,在那里我为不同目录中的不同项目排序了标签 现在,除以下情况外,一切正常: -我有两个标记文件定义为:~/.ctags/ruby/tags和~/.ctags/php/tags -我在一个PHP项目中工作,CTRL+]将我带到一个Ruby项目的标记处(由于上面定义的第二
我当前的设置如下:
set tags=./tags;/
set tags+=~/.ctags/*/tags
它基本上在当前目录中查找标签
文件,直到/
,并且在~/.ctags
目录中查找标签
,在那里我为不同目录中的不同项目排序了标签
现在,除以下情况外,一切正常:
-我有两个标记文件定义为:~/.ctags/ruby/tags
和~/.ctags/php/tags
-我在一个PHP项目中工作,CTRL+]
将我带到一个Ruby项目的标记处(由于上面定义的第二条规则)-当我期望它在~/.ctags/PHP/tags
中搜索相关标记时-它在~/.ctags/Ruby/tags
中找到了匹配项-因此,行为也发生了变化
所以,当我在php中工作时,我能让Vim只在~/.ctags/php/tags
中查找吗?当我在ruby中工作时,只在~/.ctags/ruby/tags
中查找吗?当我在xxxx
中工作时,让我说一下~/.ctags/xxxx/tags
考虑到我在
文件中执行此操作的方式。vimrc
文件是通过设置本地标记
变量:
augroup TagFileType
autocmd!
autocmd FileType * setl tags<
autocmd FileType * exe 'setl tags+=~/.ctags/' . &filetype . '/tags'
augroup END
augroup标记文件类型
自动驾驶!
autocmd文件类型*setl标记<
autocmd FileType*exe'setl tags+=~/.ctags/'&文件类型。”/标签'
螺旋端
其作用:每当打开一个文件时,它都会将全局
标记
变量的当前内容复制到本地标记
变量,并向其中添加~/.ctags/[filetype]/tags
。这意味着在php缓冲区中只搜索~/.ctags/php/tags
,在ruby缓冲区中搜索~/.ctags/ruby/tags
。如果您有任何要在所有缓冲区中搜索的标记,您可以将全局标记变量设置为指向这些标记,它们将加载到所有缓冲区中。Daan的解决方案看起来不错
您可能想看看自动生成标签的插件。它可以选择基于文件类型。的确,Vim不区分不同语言的标记。但这只是问题的一部分。它也不像任何像样的IDE那样,使用上下文来找出同一语言中的相关标记。不知道为什么没有插件可以做到这一点。。。