如果我必须用逗号替换模式1和模式2之间的所有行的换行符,我该怎么做?
发件人:
Pattern 1
abcd
edfgads asd
adsad
...
Pattern 2
至:
Pattern 1, abcd, edfgads asd, adsad, ..., Pattern 2
使用Pattern 1
和Pattern 2
作为地址,请参阅:help cmdline-ranges
:
:/^Pattern 1/,/^Pattern 2/-1 s/n/, /
您可以在替换时放入行号。
:{pattern1LineNo},{pattern2LineNo}s/n/, /g
怎么样
:%s/Pattern 1_.{-}Pattern 2/=join(split(submatch(0), "n"), ", ")/g
搜索
Pattern 1 # obvious
_. # any character including newline
{-} # repeat non-greedily (vim's way of writing *?)
Pattern 2 # obvious
更换零件应清楚无误。
对于vim,它将是
:%s/n/, /g
您搜索换行符:n
,并将其替换为逗号和空格:,
,这是全局执行的g
,这些选项由/
字符分隔。
有关vim中替换的更多信息,您可以在此处找到
:g/Pattern1/norm V/Pattern2^MgJ
:g/
在与Pattern1匹配的行上,运行normal
模式按键:v
可以选择到…/
搜索模式2gJ
连接所选行,不添加空格
注:。用
Ctrl-V <Enter>
或Ctrl-Q <Enter>
键入^M