7
A
回答
9
编辑:在新的信息,下面的替代可能会工作:
:%s/<filename>\zs.\{-}\ze<\/filename>/\=substitute(submatch(0), '\/', '\', 'g')/
释:
%s
:整个文件/<filename>
替代:启动模式和静态的文字匹配\zs
:匹配文本的开头.\{-}
:任何字符,非贪婪\ze
:匹配的文本<\/filename>/
的端:靶向标签和图案\=
的端:评估更换Vim表达式substitute(submatch(0), '\/', '\', 'g')/
:更换所有/
与\
匹配的文本中。
原来的答复:
我会假设你的意思是XML风格的标签在这里。我想要做的是直观地选择您想要操作的区域,然后使用\%V
正则表达式原子仅对该选择进行操作。
vit:s!\%V/!\\!g
应该这样做。注意,按:
时,vim会自动添加一个范围的视觉选择,实际替换命令看起来像:
:'<,'>s!\%V/!\\!g
0
VIM有一个尖锐的学习曲线,因为这样做正则表达式的。我相信这个命令会做到这一点。你必须用'\'来转义每个字符。
:%s/\//\\/g
2
当且仅当我们可以假设标签是单线条,它很简单:
注意输入^M
作为在Windows上了Cv厘米(CQ厘米)
:g/<filename>/norm! /filename>/e^Mvity:let @"=substitute(@", '/', '\\', "g")^Mgvp
嗯上以一定图案用\%V整合由兰迪暗示使得它更简单:
:g/<filename>/norm! /filename>/e^Mvit:s#\%V/#\\#g^M
我测试两者。喔。我现在解释一下。等一下。
:g/<filename>/
- _for含有<filename>
norm!
每一行 - _execute正常命令(忽略映射)/filename/e
输入跳转到开放标记的末尾vit
- 选择th的内部文本在可视模式标签:s#\%V/#\\#g
输入 - _ON是视觉选择,执行替换(更换\
由/
)
相关问题
- 1. 替换所有不在标签内的换行符实例
- 2. 动态替换字符串中标记的所有实例
- 3. 替换两组重复字符之间的句点的所有实例
- 4. 替换字符串的所有实例的字符串的Python
- 5. 用于替换vspace的所有实例的Vim图案
- 6. PHP之间替换标签
- 7. vim:将所有字符替换为给定的标记
- 8. mod_rewrite用%26替换所有&字符的实例
- 9. 如何替换字符串中每组分隔符之间的任何特殊字符的所有实例?
- 10. 替换所有标签
- 11. 替换多个元素中的字符的所有实例
- 12. 替换JS中的某些字符的所有实例?
- 13. 仅使用循环替换字符串中的所有字符实例
- 14. 替换字符串之间的字符
- 15. 替换数据库中的所有字符串实例?
- 16. 替换typescript中字符串的所有实例?
- 17. grep和sed - 替换字符串的所有实例
- 18. 替换字符串中的所有YouTube/Vimeo iframe实例
- 19. 用NULL替换字符串的实例
- 20. 替换某些列之间的所有不匹配字符
- 21. Vim用双空格替换标签
- 22. 如何替换字符串中的子字符串的所有实例
- 23. 获取两个不同标签之间的所有字符串
- 24. Vim的 - 搜索和替换所有字符中的每一行
- 25. 替换字符串开始处以外的所有子字符串实例
- 26. 在Delphi中删除标记之间的所有可变子字符串实例
- 27. 如何查找和替换2个标签中的文字之间的字符?
- 28. 替换vim中除括号外的所有字符串
- 29. vim字符串替换
- 30. SQL替换字段中的所有字的实例
@ewok是什么使这从另一个数百编辑器不同相关的问题? – deviousdodo
@ewok:vim问题(像这样的特殊正则表达式问题)正好在常见于“程序员通常使用的软件工具”类别中,在faq – jkerian