如何在VI中搜索

时间:2012-05-23 10:57:59

标签: vi

我想在vi中进行搜索。例如我使用命令 vi test.log 该文件打开。现在我想做一个前瞻性搜索,我正在寻找 [string1]%[string2]其中%表示这两个字符串之间可以有任意数量的字符(在一行中)。我们在oracle中进行了这种搜索(例如,我们经常搜索' pattern%')。如何在vi中实现它?

2 个答案:

答案 0 :(得分:1)

只要您的文件处于打开状态,只需输入:

即可
/string1.*string2

/引入了搜索

.表示任何字符

*表示任意数量(即任意数量的任何字符)

答案 1 :(得分:1)

如果字符串之间必须至少有一个字符:

/string1.\+string2

如果字符串之间不需要任何字符:

/string1.*string2

要使用它们,只需开始输入;前导/将进入Vim的搜索模式。请注意,如果它们在Vim的正则表达式语法中具有特殊含义,则可能必须转义string1string2中的某些字符。

说明:

  • .代表任何字符(如果您只想匹配“字”字符,则可以使用\w;即字母,数字和下划线。)
  • *表示“前一个模式的0个或多个实例”。
  • \+表示“前一个模式的一个或多个实例”。

Vim的正则表达式语法与标准Perl正则表达式语法略有不同,这就是+量词在其前面需要斜杠的原因。在此处阅读更多内容:http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml