vim - 仅使用替换命令替换 vim 中的部分行

标签 vim

我正在编辑一个文件,其行类似于以下内容:

{"a_function", a_function},
{"a_second_function", a_second_function},

我想将下划线转换为空格,但只能在引号内。有没有办法只使用 :substitute 来做到这一点?命令?我知道我可以通过录制宏来做到这一点,并且可能有插件可以做到这一点,但为了聪明起见,我想用 :substitute 一次性做到这一点。命令。

最佳答案

此命令应该执行您想要的操作:

:%s/\v(".{-}")/\=substitute(submatch(1), "_", " ", "g")

我捕获每一行的第一对引号,然后将其用作替换并删除所有下划线。

关于vim - 仅使用替换命令替换 vim 中的部分行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23206584/

相关文章:

VIM:删除+粘贴在一个 "command"中?

vim - 我在哪里可以找到好的 GVIM 备忘单?

regex - vim 和 csv 文件 : put header info into a new column

vim - 如何在vim中持续显示当前工作目录

vim - 在vim中,启用包装功能后如何按屏幕线连续滚动?

Vim:自动突出显示所有出现的选定单词

vim - 如何轻松删除放置在另一个目录(vim)中的交换文件?

vim - Vim 中 ‘:list’ 和 ‘:print’ 命令的目的是什么?

vim - Vim 中包含一个或多个关键字的行的操作

vim - :%S do in vim? 是什么意思