(这个答案已经过时,并没有完全回答目前提出的问题。但是,它保留在这里,而不是根据另一位回答者的建议删除。)
如果你想要一个不会被愚弄的正则表达式,为什么,那将需要一些工作。然而,在使用 Vim 时,人们通常会采取一种更轻松的态度。这不服务吗?
:s/"final time"/"final_time"/g
g如果您希望替换只发生一次,您可以省略尾随。另一方面,你可以做到
:s/"\cfinal time"/"final_time"/g
使模式匹配不区分大小写(不过,要真正做到这一点,请参阅@Tomalak 的答案)。
但是,在使用 Vim 时,可能有更简单的方法,如下所示。
- 按
qq开始录制宏q(或qa开始录制宏a等,根据您的喜好;如果不确定,qq键入速度最快且与其他任何方法一样好)。
- 键入搜索命令
/"\cfinal time"并按 Enter。
- 按
f<Space>或6l将光标移至该空间。
- 按
r_用下划线替换空格。
- 按
q完成宏录制。
然后,如果您愿意,可以立即按@q使 Vim 自动重复相同的操作。如果您"final time"的文件中有多个字符串都需要进行相同的编辑,这将非常快速且有用。更棒的是,第三次及以后你想让 Vim 做同样的操作,你可以按@@重复上一次@操作。这特别快。
(感谢@Tomalak 添加/"\cfinal time"将搜索修改为不区分大小写。我不知道。)