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. Vim替換:將所有實例的數字(XXX)更改爲XXX.isnumeric()
- 3. 動態替換字符串中標記的所有實例
- 4. 替換兩組重複字符之間的句點的所有實例
- 5. 替換字符串的所有實例的字符串的Python
- 6. 替換字符串中的所有字符實例
- 7. 用於替換vspace的所有實例的Vim圖案
- 8. 替換身體標籤之間的所有圖像src只有
- 9. PHP之間替換標籤
- 10. vim:將所有字符替換爲給定的標記
- 11. 用****替換XML中的所有字符串實例
- 12. mod_rewrite用%26替換所有&字符的實例
- 13. 使用正則表達式或php函數替換標記之間的所有字符實例
- 14. 如何替換字符串中每組分隔符之間的任何特殊字符的所有實例?
- 15. 替換所有標籤
- 16. 替換多個元素中的字符的所有實例
- 17. 替換JS中的某些字符的所有實例?
- 18. 僅使用循環替換字符串中的所有字符實例
- 19. 替換數據庫中的所有字符串實例?
- 20. 替換特殊字符的所有實例
- 21. 替換字符串中的所有YouTube/Vimeo iframe實例
- 22. 替換typescript中字符串的所有實例?
- 23. grep和sed - 替換字符串的所有實例
- 24. 如何替換反斜槓字符的所有實例?
- 25. Cygwin替換文本文件中的所有字符實例
- 26. PHP - 如何替換字符串中所有單詞的實例
- 27. 替換字符串之間的字符
- 28. 用NULL替換字符串的實例
- 29. 替換括號之間的所有字符
- 30. 替換字符串的所有occurencis除了來自之間「串
@ewok是什麼使這從另一個數百編輯器不同相關的問題? – deviousdodo
@ewok:vim問題(像這樣的特殊正則表達式問題)正好在常見於「程序員通常使用的軟件工具」類別中,在faq – jkerian