我有noremap
将当前的完整文件路径发送给解释器。
问题是在Windows上\
需要/
- 所以当我通过expand("%:p")
时会抛出错误。
我已经想过如何使用:s@\\@/@g
在vim的编辑框架中使用字符串来执行此操作,但是,我无法弄清楚如何在将字符串从vim发送到解释器之前将替换命令应用于字符串。
这可能吗?
答案 0 :(得分:3)
substitute()
功能与:s
类似:只需使用substitute(expand("%:p"), '\\', '/', 'g')
。但是,对于此特定字符交换,更简单的tr()
就足够了:tr(expand("%:p"), '\', '/')
。
实际上,一个简单的替换实际上可以与expand()
结合起来(感谢Peter Rincker的评论!),通过文件名修饰符的一个相当模糊的特征:expand('%:p:gs?\\?/?')
。
另外,请看:set shellslash
;它可以在Windows上将反斜杠全局转换为正斜杠。