加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 为什么** / *用于递归搜索当前目录:vimgrep vim

发布时间:2020-12-14 05:48:05 所属栏目:百科 来源:网络整理
导读:他们为什么使用双星号? 我已经阅读了Vim对vimgrep的帮助,我已经查看了堆栈溢出和vimcasts,虽然我发现很多人说这是你在当前目录中递归搜索的方式,但我没有找到解释为什么. 让我们用一个例子来解释.如果我想在当前目录中查找所有出现的foo并向下,我可以使用 :
他们为什么使用双星号?

我已经阅读了Vim对vimgrep的帮助,我已经查看了堆栈溢出和vimcasts,虽然我发现很多人说这是你在当前目录中递归搜索的方式,但我没有找到解释为什么.

让我们用一个例子来解释.如果我想在当前目录中查找所有出现的foo并向下,我可以使用

:vim[grep][!] /{pattern}/[g][j] {file}

这样就变成了

:vimgrep /foo/ **/*

所以看看这个grep的{file}部分:

>我明白这是一个文件路径.
>我知道星号(*)是一个通配符.
>我明白前锋斜线就是一个
目录分隔符.

我的具体问题是为什么它的格式为

** / *

并不是

* / *

我尝试使用/在几个不同的情况下搜索,这似乎搜索任何目录中的任何文件正好距我当前目录1深,我假设这是为什么使用双星号.

即为什么它是一个双星号?这是否表明“我希望你通过一些我不完全理解的聪明机制来递归搜索”,或者这仅仅是一个用于说“递归搜索”的关键字?我是完全关闭的,这不是vim的内置部分,而是shell的一部分吗? (这些部分不是我的实际问题,而是用来理解我所困惑的,我的实际问题在上面).

如果我有任何方法可以改进我的问题,请告诉我,这是我第一次提问.

解决方法

简短回答:

双星号是一个vim内置关键字,简单地说是“递归搜索”.
它被使用,因为vim的创建者选择在这种情况下使用它.

更长的回答:

有两种不同的情况,使用**:文件搜索和其余的.

Vim帮助很好地解释了这一点.

对于’休息’,请参阅:help wildcard和:help starstar-wildcard:

来自:help wildcard:

** matches anything,including nothing,recurses into directories

和:help starstar-wildcard指定:

Expanding “**” is possible on Unix,Win32,Mac OS/X and a few other
systems. This allows searching a directory tree. This goes up to
100 directories deep.

有关文件搜索,请参阅:help **或:help starstar.

引用相关部分(强调我的):

The file searching is currently used for the ‘path’,‘cdpath’ and
‘tags’ options,for finddir() and findfile(). Other commands use
wildcards which is slightly different.

[…]

Downward search uses the wildcards ‘*’,‘**’ and possibly others
supported by your operating system. ‘*’ and ‘**’ are handled inside Vim,
so they work on all operating systems.

[…]

‘**’ 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 ‘**’.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读