Vim文件搜索模式中*和**之间的差异

Vim文件搜索模式中*和**之间的差异,vim,Vim,我阅读了Vim关于文件搜索的帮助,其中解释了*和**文件搜索操作符(两个操作符都在下面引用)。虽然我理解**只匹配目录(默认情况下深度限制为30个目录)和*匹配所有目录(包括/),但我不理解为什么需要这两个目录,以及每个目录的用例是什么。 另外,如何仅匹配列出目录中的文件目录/*也会匹配子目录(例如目录/子目录/)中的文件,对吗?如果*只匹配列出的目录中的文件(没有子目录),它们之间的互补不是更好吗 Vim文档: The usage of '*' is quite simple: It matc

我阅读了Vim关于
文件搜索的帮助,其中解释了
*
**
文件搜索操作符(两个操作符都在下面引用)。虽然我理解
**
只匹配目录(默认情况下深度限制为30个目录)和
*
匹配所有目录(包括
/
),但我不理解为什么需要这两个目录,以及每个目录的用例是什么。

另外,如何仅匹配列出目录中的文件<代码>目录/*
也会匹配子目录(例如
目录/子目录/
)中的文件,对吗?如果
*
只匹配列出的目录中的文件(没有子目录),它们之间的互补不是更好吗

Vim文档:

The usage of '*' is quite simple: It matches 0 or more characters.  In a
search pattern this would be ".*".  Note that the "." is not used for file
searching.

'**' is more sophisticated:
   - It ONLY matches directories. 
   - It matches up to 30 directories deep by default, so you can use it to
     search an entire directory tree
   - The maximum number of levels matched can be given by appending a number
     to '**'.
  • 不,就像在通配符中一样,
    *
    不匹配
  • 在使用这些工具的所有(很少)情况下,vim要么只查找文件,要么只查找目录,因此目录与您想要文件的位置匹配没有问题

  • 如果
    *
    /
    不匹配,则更有意义。我想可能是这样的,但文件没有说得很清楚,在我看来更倾向于说相反的话。@Robert,是的,文件在这一点上是模糊的。如果只是假设,您将假设它与shell glob模式相同。