如何将字符串连接传递给vim中的source命令?

时间:2014-09-27 03:53:30

标签: vim

我当前的.vimrc包含这两行,这些行有点多余

let g:opamshare = "/home/hugo/.opam/system/share"
source /home/hugo/.opam/system/share/vim/syntax/ocp-indent.vim

有没有办法在第二行的opamshare命令中使用source变量的值?我试过了

source g:opamshare . "/vim/syntax/ocp-indent.vim"

但是这给了我一个E172: Only one file name allowed错误。

2 个答案:

答案 0 :(得分:4)

来自vim doc:

:so[urce] {file}        Read Ex commands from {file}.

您只需将file作为参数传递给source命令 它并不将参数视为string,因此您无法使用.(dot)来连接字符串。


试试这个:

:exec printf('source %s/%s', g:opamshare, 'vim/syntax/ocp-indent.vim')

答案 1 :(得分:0)

您可以使用环境变量作为解决方法:

    let $OPAMSHARE="/home/hugo/.opam/system/share"
    source $OPAMSHARE/vim/syntax/ocp-indent.vim

参见 :help expr-env:help expression-syntax