我有一个带空格的短语列表:
Part One
Part Two
Parts Three And Four
字符串
我想使用Vim来处理列表,以生成以下内容:
part_one,"Part One"
part_two,"Part Two"
parts_three_and_four,"Parts Three And Four"
型
我可以使用这个regex:
:%s/.*/\L\0\E,"\0"/
型
让我看到了这个,这真的很接近:
part one,"Part One"
part two,"Part Two"
parts three and four,"Parts Three And Four"
型
有没有办法把逗号前的所有空格都替换成下划线?或者是对上面的正则表达式的修改,或者是作为第二个命令?
5条答案
按热度按时间im9ewurl1#
假设原始数据中永远不会有逗号,您应该能够使用以下内容:
字符串
这只是在当前替换之后执行另一个替换,以替换逗号之前的所有空格(使用正向前瞻)。
r7xajy2e2#
字符串
如果我这样做,我可以用宏来做。
nbewdwxp3#
您可以尝试在替换部分中使用表达式,例如:
字符串
它首先将所有空格替换为
_
,返回的字符串为小写,然后将结果与用双引号括起来的匹配行连接。它产生:
型
gblwokeq4#
从你停下来的地方,我会把逗号后面的所有行分开:
字符串
然后你可以用逗号替换行上的空格,并将行重新连接在一起:
型
hi3rlvi25#
您可以使用第二个命令:
字符串
\(\(,.*\)\@<=\)\@!
逆匹配,"Part One"
,,"Part Two"
.还有:
型