如何在vi的搜索和替换中包含正斜杠

97

我有一个包含字符串usrbin的文件。我想搜索并将其替换为/usr/bin/

我尝试使用:%s/usrbin/usr/bin/g,但是显示错误E488: Trailing characters

如何在搜索和替换中包含斜杠?


可能是重复的问题:/在vi中搜索和替换? - Musa Haidari
1个回答

144

这里有两种方法:

  • 转义默认替换分隔符/:s/usrbin/\/usr\/bin
  • 使用其他替换分隔符,例如使用井号#:s#usrbin#/usr/bin。请注意,有些字符不能用作分隔符:"\|

您可以在帮助子系统中使用:h pattern-delimiter进行查看。


非常好的答案,如果您想替换长URL值,这是理想的选择,因为转义所有那些正斜杠真的很无聊。 - jurgenb
当使用 | (管道符) 作为分隔符替换反斜杠时,例如通过 :s|\|/|g 替换 "PATH=C:\Windows\System32;C:\Temp;C:\Users" 中的反斜杠时会出现问题,但我从未弄清楚原因,所以我只是使用 # 作为分隔符。 - Kajukenbo
请注意,有关此主题的相关vim帮助是:h pattern-delimiter - jdhao
当我尝试使用 :h pattern-delimiter 时,出现错误 E149: 对于 pattern-delimiter 没有帮助信息 - nikost
@nikost请检查您的vim安装,或者检查另一个vim安装。听起来像是您的vim安装不完整。当您只输入:h时,您看到了什么? - pb2q
当我输入 :h 时,我会看到这行文字 help.txt* For Vim version 8.1. Last change: 2019 Jul 21。我会尝试更新,因为我认为这个帮助文档比2019年更旧。 - nikost

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接