我正在尝试使用VI在Ubuntu上编辑文件,因此我可以使用两行搜索/替换。每个文件的行通常在不同的行上(所以我不能逐行使用搜索)和我正在寻找的文本是
[wan2]
#disable = yes
他们总是一个接一个,我想把它从上面改为下面
[wan2]
disable = yes
我已经尝试了几种不同的方法,但我继续得到以下内容:
E486: Pattern not found: [wan2]\n#disable = yes
下面和一些细微的改动就像我来的那样接近,我希望这是一个愚蠢的我可以解决但我有点难过。
:s/[wan2]\n#disable = yes /[wan2] \ndisable = yes
答案 0 :(得分:1)
最可靠的方法是使用Ex命令:
:/wan2/+1s/^#//
在字符串s/^#//
出现后的行上运行wan2
由/wan2/+1
表示。作为Ex命令,这具有在所有Vi实现(不仅仅是Vim)中工作的优点。
您的Vim替换命令没有转义方括号,因此[wan2]
部分正则表达式将被解释为匹配的字符集合。此外,“是”之后的尾随空格可能阻止了匹配。以下内容也适用于Vim:
:s/\[wan2\]\n#disable = yes/[wan2]\rdisable = yes/