(对于C标签道歉,我是为语法突出显示的。这更像是一个vim问题。如果有人比我认为应该删除标签的人更多,请这样做)
说我有这个目录结构:
Directory ~/Code/Test/ containing file1.c file2.c file4.c and Sub Directory ~/Code/Test/Sub/ containing file3.c
file1.c中:
#include #include "file2.c" #include "Sub/file3.c" void function1(); int main (int argc, char *argv[]) { function1(); function2(); function3(); return 0; } void function1() { printf("1n"); }
file2.c中:
#include void function2(); void function2() { printf("2n"); }
子/ file3.c中:
#include "../file4.c" void function3(); void function3() { printf("3n"); function4(); }
file4.c:
#include void function4(); void function4() { printf("4n"); }
在这些文件中的任何一个文件中,应该可以从其他文件跳转到它使用的函数的定义。 因此,例如,file1应该能够跳转到file2,file1应该能够将目录跳转到file3,file3应该能够将目录跳转到file4,这里是踢球者; 所有文件都应该能够跳转到printf的定义。 为了做到这一点,我也不必将c库实现的标签复制到Test目录中。
我想知道如何才能做到这一点。 我真的不热衷于单片标签文件。 有一个vim范围的标签文件吓坏了我。 每个目录的标签文件让我烦恼。 每个项目的标签文件都是可以忍受的。 但我真正喜欢的是每个源文件的标签文件,然后指定vim应该引用哪些标签文件。
理想情况下,我希望能够对任何事情进行控制,并让vim根据范围内的内容跳转到正确的定义,就像visual studio一样。 我开始怀疑这是不可能完成的,如果是(通过插件的某种组合)它会非常慢,这真的很烦人,因为我完全在“Vim可以做你的新奇IDE可以做的任何事情“在那里呆了几个星期。 是的,它绝对是我遇到的最强大的文本编辑器,但作为一个IDE,它是非常粗糙的。 当我使用“转到定义”命令时,我希望得到正确的定义,无论它是一个局部变量,一个不同的文件,一个标准库等等。到目前为止,Vim给了我一些搞笑的结果,比如跳过一个java文件到ac文件。 而且你必须使用一个单独的命令来跳转到局部变量的定义……什么? (如果有这背后的原因,我有兴趣知道)
我知道在我的.vimrc中搞定set tags=./tags
这就是我到目前为止所做的。 但是,如果我处理大量将单独的程序集和源文件从单独的项目链接在一起的东西,这将无法扩展。
(为了公平对待vim,visual studio不会让你跳过程序集来查找定义,但它至少有一个很好的优点来提供一个头文件,你可以从中“加载程序集”并导航到实际您正在寻找的源代码)
首先要做的事情是: Vim从来没有,不是,也可能永远不会成为IDE的合适替代品。 谁让你相信应该被枪杀,你也应该被枪杀,因为他们相信这样的废话。
我只是半开玩笑。
Vim是一个非常强大的面向编程的文本编辑器,但简单的事实是你需要运行一个愚蠢的外部代码索引器来获得一个愚蠢的“跳转到定义”或另一个代码索引器来获得另一个愚蠢的“跳转到使用”应该是一个暗示Vim无法与IDE进行实际比较。 提示:IDE中的I
表示“集成”, E
表示“环境”。 由于你无法获得适当的集成,并且很难将Vim视为一种环境 ,因此这里没有IDE。 只有一个带有许多插件的文本编辑器以不同的方式执行不同的操作,最重要的是,没有认真的方法来理解您的代码,这是下降IDE的第一个特性。
许多用户/博主声称他们正在使用“Vim作为IDE”,或者你也可以将Vim变成Python或任何IDE,但事实是Vim缺乏使这种事情成为可能的所有低级function。 你可以把它变成看起来像IDE的东西,如果你能以某种方式相信你自己的谎言,但它可能永远不会是一个IDE。
随你…
并在其根目录下放置“全局” tags
文件,并在各自项目的根目录下放置项目特定的tags
文件。
处理该问题的另一种方法可能是指示Vim根据文件类型加载特定的tags
文件:
autocmd FileType c setlocal tags=/path/to/your/global/c/tags,./tags;/,tags;/
以上就是c/c++开发分享一般在vim / Tag组织中一次使用多个标记文件相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/562706.html