Vim标签 - 符号链接

4

我有一个如下的项目:

/dir 
   dir1
   dir2 -> symbolic-link to /otherdir
       file1
   tags *
  • 我希望vim使用包含dir1和dir2文件标记的THIS标记文件。 当我编辑file1时,VIM找不到正确的标记文件。

我在.vimrc中进行了以下设置:

set tags=tags;/

有没有一种方法可以不明确告诉VIM tags的绝对路径,而保持这个文件结构?

3个回答

3

您可以将其他标记附加到相同的ctags上,因此例如,如果您想要在dir1中标记所有内容,则应执行以下操作:

ctags -R *

如果你想从第二个目录中添加其他标签:

ctags -R -a ~/path/to/dir2/*

-a用于追加。

现在,为了让我的ctags无论在哪里打开vim都能使用,我会在我的.vimrc文件中添加以下代码:

set tags+=./tags;$HOME

这将在当前目录中查找标签,并递归到您的主目录,如果您希望它搜索到根文件夹或更少,只需将 $HOME 更改为 //path/to/root/project/


1

在我的~/.vimrc文件中加入这行代码,并且与你的布局类似,tags相关功能(:ts<C-]>等)将使用位于dir根目录下的同一tags文件,与dir1dir2并列。

set tags=./tags,tags;$HOME

tags文件首先在当前文件目录中搜索,然后在cwd中搜索,直到达到$HOME

当您编辑file1时,:echo tagfiles()会显示什么?这里显示为['/home/romainl/Desktop/dir0/tags']

编辑

似乎抛出符号链接并没有改变任何东西。

结束编辑


0

我认为这只是在正确的目录中。当您开始在该项目中工作时,使用:cd /dir进入带有标记文件的目录,并确保关闭autochdir选项。然后,当您编辑dir2内的文件时,工作目录仍将是dir,并且它仍将查找相同的tags文件。

另一方面,如果您最终以dir/dir2作为工作目录,那实际上意味着您在/otherdir中,因此当Vim从那里查找tags文件时,它无法在该目录或/中找到它。我怀疑现在就是这种情况。

您可以随时使用:pwd命令查看您所在的目录,就像在shell中一样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接