如何设置vimrc标记以使用shell环境变量

如何设置vimrc标记以使用shell环境变量,shell,vim,vi,Shell,Vim,Vi,我试过了,但失败了,需要专家的帮助。在a.vimrc中,我有以下内容: set tags=/sandbox/myNameIsSam/tags 这个很好用。在gvim中,我可以加载标签文件,一切都很棒。但是,我希望每个用户都有自己的项目标记文件。如何以及为什么在这里并不重要。下面的设置似乎不能满足我的需要。有人能帮忙吗 let projectTagFile='/sandbox/'.$USERNAME.'/tags' set tags=projectTagFile 您应该通过$USER获取用户名,

我试过了,但失败了,需要专家的帮助。在a.vimrc中,我有以下内容:

set tags=/sandbox/myNameIsSam/tags

这个很好用。在gvim中,我可以加载标签文件,一切都很棒。但是,我希望每个用户都有自己的项目标记文件。如何以及为什么在这里并不重要。下面的设置似乎不能满足我的需要。有人能帮忙吗

let projectTagFile='/sandbox/'.$USERNAME.'/tags'
set tags=projectTagFile

您应该通过
$USER
获取用户名,而不是
$username

重要的是,在这种特殊情况下,您不能使用
set
设置此选项,因为它只允许您将其设置为单个文字值。但是,使用
let
,您可以使用Vimscript来获得值,例如使用函数,或者在您的情况下,通过连接(阅读有关选项的更多信息)。请尝试以下方法:

let &tags='/sandbox/'.$USER.'/tags'
要检查
标记设置是否正确,可以执行以下操作:

:set tags?
或者,对于完全限定路径:

:echo &tags

我总是做类似的事情

let tagfile = '/sandbox/' . $USERNAME . '/tags'
execute 'set tags=' . tagfile

但我现在更喜欢@Kent的解决方案。我从来没有想过这样做。

USERNAME
是Windows上特定环境变量的名称。