7

我正在尝试设置一个选项,但在使用变量时它不起作用。

这实际上是有效的:

set runtimepath+=~/.vim/bundle/foo/foo.vim/

当我尝试这个时,它不再起作用了:

g:foo_path = '~/.vim/bundle/foo/foo.vim/'
set runtimepath+=g:foo_path

我在这里看到了类似的主题,他们使用以下命令设置带有变量的选项:

let &backupdir=s:vimetc.'backups/'

但是,当我尝试这个时:

 let &runtimepath+=g:foo_path

它仍然不起作用。我正进入(状态:

 E734: Wrong variable type for +=

有任何想法吗?谢谢。

4

3 回答 3

7

问题是set不支持使用字符串变量,let也不支持 += 字符串类型。

这应该有效:

let g:foo_path = '~/.vim/bundle/foo/foo.vim/'
let &rtp.= ',' . g:foo_path
于 2013-09-29T15:42:18.507 回答
2

另一种解决方法

exe 'set runtimpath='.a:lines

经过审稿人的评论,2.0版本

exe 'set runtimepath='.&runtimepath.','.g:foo_path
于 2018-04-14T05:11:22.363 回答
1

你几乎明白了。附加选项是通过 完成的(不管选项值的类型,即字符串与数字):set option+=val,而与字符串变量的连接操作是通过 完成的:let &option .= var。您会收到 E734 错误,因为+=with:let仅用于数字加法。

于 2013-09-29T15:58:31.077 回答