Vim vi在搜索时替换为空
在vi(来自cygwin)中,当我进行搜索时:Vim vi在搜索时替换为空,vim,cygwin,vi,Vim,Cygwin,Vi,在vi(来自cygwin)中,当我进行搜索时: :%s/something 它只是用空字符串替换某物,如 :%s/something// . 我在谷歌上搜索了一段时间,但没有真正提到这一点。有什么我应该添加到.vimrc或.exrc中以使其工作吗 谢谢 在vi和vim中,搜索模式时,只需键入/即可再次搜索。可以理解,当没有指定用于搜索的模式时,必须使用前面的模式。 (不过,您可以按n查找下一个事件) 同样,当您给出一个源(模式)并将替换内容保留在替换命令中时,它假定替换内容为空,因此给定的
:%s/something
它只是用空字符串替换某物,如
:%s/something// .
我在谷歌上搜索了一段时间,但没有真正提到这一点。有什么我应该添加到.vimrc或.exrc中以使其工作吗
谢谢 在vi和vim中,搜索模式时,只需键入
/
即可再次搜索。可以理解,当没有指定用于搜索的模式时,必须使用前面的模式。
(不过,您可以按n
查找下一个事件)
同样,当您给出一个源(模式)并将替换内容保留在替换命令中时,它假定替换内容为空,因此给定的模式将被替换为无字符(换句话说,模式将被删除)
在您的情况下,您应该理解%
代表整个文件(缓冲区),而s
代表替换。要进行搜索,只需使用/
,后跟一个模式即可。要替换,请使用:s
。您不必混淆搜索和替换。因此~/.exrc中不需要这样的设置。另外,请记住/
足以搜索整个缓冲区,而%
不需要/
/
隐式搜索整个缓冲区
您还可以查看
:g/Pattern/
。通过在命令行中搜索:help global
或:help:g
了解更多信息。在vi和vim中,搜索模式时,只需键入/
即可再次搜索。可以理解,当没有指定用于搜索的模式时,必须使用前面的模式。
(不过,您可以按n
查找下一个事件)
同样,当您给出一个源(模式)并将替换内容保留在替换命令中时,它假定替换内容为空,因此给定的模式将被替换为无字符(换句话说,模式将被删除)
在您的情况下,您应该理解%
代表整个文件(缓冲区),而s
代表替换。要进行搜索,只需使用/
,后跟一个模式即可。要替换,请使用:s
。您不必混淆搜索和替换。因此~/.exrc中不需要这样的设置。另外,请记住/
足以搜索整个缓冲区,而%
不需要/
/
隐式搜索整个缓冲区
您还可以查看
:g/Pattern/
。通过在命令行中搜索:help global
或:help:g
了解更多信息。vim中替换的格式如下:
:[range]s[substitute]/{pattern}/{string}/[flags][count]
在您的例子中,您已经从替换命令中省略了字符串,下面是关于它的vim文档说明:
如果{string}被省略,则替换将像它是空的一样进行。
因此,匹配的模式被删除在{pattern}之后的分隔符
也可以忽略此选项。示例:>
:%s/测试此操作将从所有行中删除“测试”,但每行仅删除一个。
为了与Vi兼容,允许以下两种例外情况:
“/{string}/”和“\?{string}?”执行与“/{string}/r”相同的操作。
“\&{string}&”的作用与“/{string}/”相同
E146
您可以使用代替围绕模式和替换字符串的“/”
使用任何其他单字节字符,但不能使用字母数字
字符、“\”、“”或“|”。如果要包含
搜索模式或替换字符串中的“/”。示例:>
:s+/+//+
换句话说,
:%s/something
和:%s;something
或:%s,something
具有所有相同的行为,因为上一个示例中的/
和,
仅被视为简单的分隔符换句话说,
:%s/某物
和:%s;某物
或:%s,某物
具有所有相同的行为,因为/
和,
在最后的例子中被认为是仅仅是一个简单的分隔符搜索是:/something
@matzeri,它确实有效,但是:
是不必要的。@matzeri现在它可以工作了,谢谢搜索是:/something
@matzeri,它确实有效,但是:
是不必要的。@matzeri现在它可以工作了,谢谢,现在它可以工作了。谢谢我只是被那些教程弄糊涂了,因为它们总是在讨论搜索和替换。我建议您在版本大于7.2的情况下使用vim。Vim有很多很棒的特性,比vi好