我有一个项目如下:
/dir
dir1
dir2 -> symbolic-link to /otherdir
file1
tags *我在.vimrc中有以下设置:
set tags=tags;/有没有办法保持这个文件结构而不显式地告诉VIM标记的绝对路径?
发布于 2012-06-28 18:41:59
您可以附加到相同的ctag (其他标记)中,因此,例如,如果您想要在dir1中执行ctag所有内容,您将执行:
ctags -R *如果您想添加dir 2中的其他标记:
ctags -R -a ~/path/to/dir2/*-a是用来附加的。
现在,无论我在哪里打开vim,我都要做的就是在我的.vimrc中添加一行
set tags+=./tags;$HOME这将查找当前目录中的标记,并递归地下到您的主文件夹,如果您希望它搜索到根文件夹,或者更少,只需将$HOME更改为/或/path/to/root/project/。
发布于 2012-06-28 19:26:05
使用我的~/.vimrc中的这一行和与您类似的布局、与tags相关的特性(:ts、<C-]>等)使用位于dir根目录的相同的dir文件,以及dir1和dir2。
set tags=./tags,tags;$HOME首先在当前文件的目录中搜索tags文件,然后在cwd中搜索,然后向上搜索,直到到达$HOME为止。
当您编辑:echo tagfiles()时,file1会怎么说?这里写着['/home/romainl/Desktop/dir0/tags']。
编辑
扔一个符号链接似乎什么都改变不了。
ENDEDIT
发布于 2012-06-28 17:34:21
我认为这只是一个在正确的目录上的问题。当您开始在这个项目中工作时,使用:cd /dir使用标记文件进入目录,并确保关闭了autochdir选项。然后,当您在dir2中编辑一个文件时,工作目录仍然是dir,并且它仍然会找到相同的标记文件。
如果在另一端以dir/dir 2作为您的工作目录,这实际上意味着您在/otherdir中,所以当Vim从那里查找标记文件时,它在该目录或/中找不到它。我怀疑这就是你现在发生的事。
您可以使用:pwd命令随时查看您所在的目录,就像在shell中一样。
https://stackoverflow.com/questions/11248817
复制相似问题