宏中替换失败后的vim替换



我在宏中有一个大的查找和替换序列

:let@m=':%s/√/\sqrt/g
:%s/∫/\int/g
:%s/∑/\sum/g
:%s/∏/\prod/g
:%s/⋃/\bigcup/g
:%s/⋂/\bigcap/g
:%s/∪/\cup/g
:%s/∩/\cap/g
:%s/∂/\partial/g
:%s/–/--/g
:%s/—/---/g
:%s/•/\bullet/g
:%s/·/\cdot/g
:%s/◦/\circ/g
:%s/±/\pm/g
:%s/∓/\mp/g
<more stuff/>
'

如果这些find-and-replace中的任何一个失败(例如,如果文件中没有Ş(,那么后续的就不会运行。如何使:%s///g悄悄地、无损地失败?

来自:help :s_flags:

[e]    When the search pattern fails, do not issue an error message and, in
particular, continue in maps as if no error occurred.  This is most
useful to prevent the "No match" error from breaking a mapping.

所以:

%s/√/\sqrt/ge
%s/∫/\int/ge
…

最新更新