Vim vi在搜索时替换为空

Vim vi在搜索时替换为空,vim,cygwin,vi,Vim,Cygwin,Vi,在vi(来自cygwin)中,当我进行搜索时: :%s/something 它只是用空字符串替换某物,如 :%s/something// . 我在谷歌上搜索了一段时间,但没有真正提到这一点。有什么我应该添加到.vimrc或.exrc中以使其工作吗 谢谢 在vi和vim中,搜索模式时,只需键入/即可再次搜索。可以理解,当没有指定用于搜索的模式时,必须使用前面的模式。 (不过,您可以按n查找下一个事件) 同样,当您给出一个源(模式)并将替换内容保留在替换命令中时,它假定替换内容为空,因此给定的

在vi(来自cygwin)中,当我进行搜索时:

:%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
具有所有相同的行为,因为上一个示例中的
/
仅被视为简单的分隔符

:[range]s[substitute]/{pattern}/{string}/[flags][count]

在您的例子中,您已经从替换命令中省略了字符串,下面是关于它的vim文档说明:

如果{string}被省略,则替换将像它是空的一样进行。 因此,匹配的模式被删除。在{pattern}之后的分隔符 也可以省略。示例:> :%s/测试此操作将从所有行中删除“测试”,但每行仅删除一个。

为了与Vi兼容,允许以下两种例外情况: “/{string}/”和“\?{string}?”执行与“/{string}/r”相同的操作。 “\&{string}&”的作用与“/{string}/”相同

E146

您可以使用代替围绕模式和替换字符串的“/” 使用任何其他单字节字符,但不能使用字母数字 字符、“\”、“”或“|”。如果要包括 搜索模式或替换字符串中的“/”。示例:> :s+/+//+


换句话说,
:%s/某物
:%s;某物
:%s,某物
具有所有相同的行为,因为
/
在最后的例子中被认为是仅仅是一个简单的分隔符

搜索是
:/something
@matzeri,它确实有效,但是
是不必要的。@matzeri现在它可以工作了,谢谢搜索是
:/something
@matzeri,它确实有效,但是
是不必要的。@matzeri现在它可以工作了,谢谢,现在它可以工作了。谢谢我只是被那些教程弄糊涂了,因为它们总是在讨论搜索和替换。我建议您在版本大于7.2的情况下使用vim。Vim有很多很棒的特性,比vi好