将逗号分隔的单词放在引号中

che*_*run 3 vi vim

我有很长的一句话,看起来像这样:

foo,foo bar,bar@foo,foo# bar,bar$ foo#
Run Code Online (Sandbox Code Playgroud)

现在我想把它变成:

"foo","foo bar","bar@foo","foo# bar","bar$ foo#"
Run Code Online (Sandbox Code Playgroud)

因此,分隔符是逗号.这样做的最佳方式是什么vi(m)

编辑:有人会关注详细的暗示吗?

FDi*_*off 8

这似乎有效.捕获所有不是逗号的内容,并将其替换为引号中捕获的部分.将g在命令的末尾说,更换匹配就行了正则表达式的所有实例.没有g它只会匹配第一个.看看:h :s:h :s_flags

:%s/\([^,]\+\)/"\1"/g
Run Code Online (Sandbox Code Playgroud)

输入:

foo,foo bar,bar@foo,foo# bar,bar$ foo#
Run Code Online (Sandbox Code Playgroud)

输出:

"foo","foo bar","bar@foo","foo# bar","bar$ foo#"
Run Code Online (Sandbox Code Playgroud)