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

标签 vim vi

我有一长串单词,如下所示:

foo,foo bar,bar@foo,foo# bar,bar$ foo#

现在我想把它变成:

"foo","foo bar","bar@foo","foo# bar","bar$ foo#"

因此,分隔符是逗号。 在 vi(m) 中执行此操作的最佳方法是什么?

编辑: 有人愿意详细说明反对票吗?

最佳答案

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

:%s/\([^,]\+\)/"\1"/g

输入:

foo,foo bar,bar@foo,foo# bar,bar$ foo#

输出:

"foo","foo bar","bar@foo","foo# bar","bar$ foo#"

关于vim - 将用逗号分隔的单词放在引号中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029032/

相关文章:

vim - 如何重命名由 setloclist 内置函数提供支持的 'Quickfix' 标题?

windows - Vim 在 Mingw 上表现异常

bash - 如何使用脚本启动 ssh session 而不重定向 stdin?

linux - 在没有 Root 权限的情况下添加新的配色方案

linux - 关于 CentOS 或任何 Linux 机器中的可执行路径

macos - 在 shell 脚本中执行 Vim 命令

python - 为 Python 设置 Vim

highlighting - 将 vim 中的匹配限制为某些文件类型?

linux - 为什么 gf 对 vim 不起作用但 ctrl+] 有效?

vim - 在vim编辑器中将缓冲区列表作为quickfix窗口?