(这个答案已经过时,并没有完全回答目前提出的问题。但是,它保留在这里,而不是根据另一位回答者的建议删除。)
如果你想要一个不会被愚弄的正则表达式,为什么,那将需要一些工作。然而,在使用 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"
将搜索修改为不区分大小写。我不知道。)