VIM – 从项目中的多个位置获取标签

前端之家收集整理的这篇文章主要介绍了VIM – 从项目中的多个位置获取标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
美好的一天,

我通常使用相对较小(少于20,000行代码)的项目,这些项目都包含在一个目录中,拥有自己的Makefile,并且相当容易使用.

VIM是我的首选编辑器,当我打开一个项目时,我通常通过映射到F10键来构建ctags列表:

map <F10> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

这允许我通过在文本上移动光标并按CTRL]来跳转到变量/ struct / etc的定义,以及通过OmniCppComplete使用下拉列表使用代码完成.

但是,我现在正在开发一个稍微大一点的项目,它利用了大量的结构.此外,许多这些结构都有其他自定义结构的数组作为成员,因此代码完成对我来说是一个非常有用和重要的工具.

我有两条路径,包括很多.C文件和.h文件,它们可能会在不同机器之间发生变化.但是,在每台机器上,我们的.bashrc文件中都有一个环境变量,它指向它们,如下所示:

SDK_SRC_PLUS_HEADERS=/public/sdk
THIRD_PARTY_SDK=/private/sdk

当我尝试执行代码完成时(通过VIM内置的OmniCppComplete功能),或者当我使用CTRL时跳转到这些位置的文件,我希望能够让VIM自动引用这些附加路径的内容VIM跳转到结构,函数,变量等的定义.

因此,对于上述两种路径,我都会进入它们,并通过ctags -R生成标签.然后,我修改了〜/ .vimrc文件以包含其他标记路径,如下所示:

tags=./tags
tags+=$SDK_SRC_PLUS_HEADERS/tags
tags+=$THIRD_PARTY_SDK/tags

然后我在/ home / user1 / projects / test中进入我的项目,启动VIM,然后在VIM中点击F10来索引它.但是,这根本不起作用.事实上,它打破了我甚至只为项目本身使用标签的能力(即:CTRL)现在什么都不做.

有没有人对如何通过环境变量使用多个源目录获得代码完成源代码跳转定义有任何建议?

提前感谢大家的时间和帮助!

确实似乎是你不能在标签设置中使用环境变量的问题.

我想出了这个解决方法

:let &tags.=expand(",$SDK_SRC_PLUS_HEADERS/tags")

这可能会稍微友好一些:

:exec expand("set tags+=$SDK_SRC_PLUS_HEADERS/tags")

猜你在找的Bash相关文章