我有以下几行:
'0,
'1,
'2,
'3,
如何在逗号前加引号?
到目前为止我已经尝试过以下操作:
%s/[0-9],/&/g
所以 & 这里替换了匹配的模式...
答案1
你可以使用类似的东西:
%s/\('[0-9]\),/\1',/
它使用\(
和\)
创建选择组,然后由\1
替代侧(这意味着第一组)引用。
答案2
如果你想移动从数字之前的位置到逗号之前的位置的配额,然后可以使用分组
%s/'\([0-9]\),/\1',/
或者要在逗号之前添加另一个引号,只需将其包含到第一组中即可:
%s/\('[0-9]\),/\1',/
答案3
通常我使用宏来完成这样的任务。
qqEi'<Esc>0jq3@q
将完成工作(注意该<Esc>
部分是按退出键,而不是 5 个单独的键)。这是一个细分:
qq
开始录制宏并将其分配给按键q
。Ei'<Esc>
转到单词末尾并插入'
.0j
转到下一行的开头。q
结束录音。3@q
播放宏 3 次,对其他 3 行应用相同的操作。
替换3
为您拥有的行数。
答案4
也许您忘记定义需要此功能的通用形式。为了在不猜测的情况下完成您所要求的操作,这是适用于您的示例输入的最简单(懒惰!)的解决方案:
%s/,/',/
如果您也想处理更复杂的情况,您应该编写更好的示例,包括需要模式替换才能工作的最复杂的情况,以及理想情况下目标输出的示例。