1

我正在尝试在启动期间使用 VimScript 替换 Vim 中的默认值runtimepath(aka ) 。我不能使用,因为我设置的值在里面不可用。然而,似乎 Vim 抱怨每次尝试将模式(第二个参数)传递给或最终什么都不做。rtpsubstitute().vimrc.vimrc~substitute()

我如何告诉 Vim 匹配并随后替换波浪号?我想做的大致是这样的:

vim -c 'let &rtp = substitute(&rtp, "\\~", "/absolute/path", "g")'

结果\~给了我:(E33: No previous substitute regular expression虽然这是模式,而不是替代品)。但是在命令行上使用上述\\~内容,虽然 Vim 没有给我错误,但我也没有看到 th 的值有任何变化runtimepath

注意:我将附加-c 'set rtp'到上面的命令行,因此 Vim 会立即向我显示该值。

替换~VimScript中runtimepath变量中所有实例的任何替代方法也是可以接受的。

4

1 回答 1

1

我不了解你,但在这里,&rtp不包含一个波浪号:所有文件路径都是绝对的:/home/romainl/.vim/something

let aaa = substitute(&rtp, "/home/romainl", "~", "g")

将所有相关文件路径转换为~/.vim/something​​.

let bbb = substitute(aaa, "\\~", "/home/romainl", "g")

把所有的~/.vim/something背变成/home/romainl/.vim/something.

于 2013-03-06T22:10:56.090 回答