给出以下行:
[aaaa bbbb cccc dddd] [decimal](18, 0) NULL,
Run Code Online (Sandbox Code Playgroud)
如何在Vim的第一组括号之间替换空格?/ s命令会是什么样的?
更新:
这是预期的结果
[aaaa_bbbb_cccc_dddd] [decimal](18, 0) NULL,
Run Code Online (Sandbox Code Playgroud)
最简单的方法是直观地选择[]
ed字符串的内容,并在该选择上执行替换:
vi]:s/\%V \%V/_/g
Run Code Online (Sandbox Code Playgroud)
但是,如果您尝试以编程方式执行操作,则无法正常工作.在这种情况下,您可以匹配整个[]
ed字符串并使用替换表达式来构造结果.
:s/\[[^\]]*\]/\=substitute(submatch(0), ' ', '_', 'g')/g
Run Code Online (Sandbox Code Playgroud)