我正在尝试从文件中删除模式。
Edge[15] = 415
Edge[16] = 65
Edge[17] = 835
Edge[18] = 951
Edge[19] = 999
Edge[20] = 887 ...
如何删除数字之前的所有内容,即直到 = ,即我只想要数字,然后想使用 ,.
加入[415,65,835,...]
好吧,所以你需要的是一句话,而不是你给出的多个步骤。当然还有很多其他方法,这里是一个:
:%s/.*=\s*\(\d\+\)\n/\1, / | normal! $xr]^OI[
这会通过仅捕获数字来删除
=
之前的内容以及与 :substitute
的行的 joining(调整
:%
范围以满足您的需要)。然后,我使用普通模式命令去掉尾随逗号并添加方括号。 (在 Windows 上,输入 ^O
为 Ctrl-V Ctrl-O;Ctrl-Q CTRL-O。)如果您有 surround.vim 插件,这可以进一步简化。人们还可以使用第二个 :.substitute
来实现相同的目的。
实际上,我可能会使用视觉分块模式、特殊的
J
映射和普通模式来实现这一点。
您可以使用两个正则表达式
:%s/.*\( \d\+\).*\n/\1,/g
:%s/^ \(.*\),.\{-}$/[\1]
输出:
[415, 65, 835, 951, 999, 887]