将替换应用于地图中的字符串变量

时间:2013-08-06 06:04:04

标签: vim

我有noremap将当前的完整文件路径发送给解释器。

问题是在Windows上\需要/ - 所以当我通过expand("%:p")时会抛出错误。

我已经想过如何使用:s@\\@/@g在vim的编辑框架中使用字符串来执行此操作,但是,我无法弄清楚如何在将字符串从vim发送到解释器之前将替换命令应用于字符串。

这可能吗?

1 个答案:

答案 0 :(得分:3)

substitute()功能与:s类似:只需使用substitute(expand("%:p"), '\\', '/', 'g')。但是,对于此特定字符交换,更简单的tr()就足够了:tr(expand("%:p"), '\', '/')

实际上,一个简单的替换实际上可以与expand()结合起来(感谢Peter Rincker的评论!),通过文件名修饰符的一个相当模糊的特征:expand('%:p:gs?\\?/?')

另外,请看:set shellslash;它可以在Windows上将反斜杠全局转换为正斜杠。