我正在尝试设置一个选项,但在使用变量时它不起作用。
这实际上是有效的:
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 +=
有什么想法吗?感谢。
答案 0 :(得分:5)
问题是set
不支持使用字符串变量,而let
不支持+ =用于字符串类型。
这应该有效:
let g:foo_path = '~/.vim/bundle/foo/foo.vim/'
let &rtp.= ',' . g:foo_path
答案 1 :(得分:1)
你几乎得到了它。通过:set option+=val
附加选项(无论选项值的类型,即字符串与数字),而使用String 变量的连接操作完成通过:let &option .= var
。您收到E734错误,因为+=
:let
仅用于数字添加。
答案 2 :(得分:1)
另一种解决方法
exe 'set runtimpath='.a:lines
在评论者的评论之后,2.0版本
exe 'set runtimepath='.&runtimepath.','.g:foo_path