为什么vim中的runtimepath不能设置为变量

Mar*_*slo 6 vim

我已经指定了.vimrc.vim位置。

在我的vimrc 文件中,我发现runtimepath可以将其设置为绝对值,例如:

set rtp+=~/.marslo/.vim/bundle/vundle
Run Code Online (Sandbox Code Playgroud)

但它不能被设置为一个变量,比如:

let vudpath = expand(~/.marslo/.vim/bundle/vundle)
set rtp+=vudpath
Run Code Online (Sandbox Code Playgroud)

为什么?有什么办法可以将makeruntimepath设置为变量吗?

Luc*_*tte 11

正如 romainl 所说,你有:let &option. 但在您的情况下,当您想将路径添加到路径列表时,它将是:

exe 'set rtp+=' . expand('~/.marslo/.vim/bundle/vundle')
Run Code Online (Sandbox Code Playgroud)

如果它不存在于 &rtp 中,那只会添加路径。

或(注意使用.=运算符而不是运算符+=

let &rtp .= ','.expand('~/.marslo/.vim/bundle/vundle')
Run Code Online (Sandbox Code Playgroud)

但是这次如果它已经存在于您的 &rtp 中,它将再次添加。因此,在您的特定情况下更喜欢使用:execute+ :set

  • 这里没有说的是,您的问题与“让”无关。大多数 ex 命令不扩展变量名,即它们不使用表达式。“set”不是扩展表达式(变量)的命令之一。 (3认同)