正则表达式 – 为什么** / *用于递归搜索当前目录:vimgrep vim
他们为什么使用双星号?
我已经阅读了Vim对vimgrep的帮助,我已经查看了堆栈溢出和vimcasts,虽然我发现很多人说这是你在当前目录中递归搜索的方式,但我没有找到解释为什么. 让我们用一个例子来解释.如果我想在当前目录中查找所有出现的foo并向下,我可以使用 :vim[grep][!] /{pattern}/[g][j] {file} 这样就变成了 :vimgrep /foo/ **/* 所以看看这个grep的{file}部分: >我明白这是一个文件路径. 我的具体问题是为什么它的格式为 ** / * 并不是 * / * 我尝试使用/在几个不同的情况下搜索,这似乎搜索任何目录中的任何文件正好距我当前目录1深,我假设这是为什么使用双星号. 即为什么它是一个双星号?这是否表明“我希望你通过一些我不完全理解的聪明机制来递归搜索”,或者这仅仅是一个用于说“递归搜索”的关键字?我是完全关闭的,这不是vim的内置部分,而是shell的一部分吗? (这些部分不是我的实际问题,而是用来理解我所困惑的,我的实际问题在上面). 如果我有任何方法可以改进我的问题,请告诉我,这是我第一次提问. 解决方法
简短回答:
双星号是一个vim内置关键字,简单地说是“递归搜索”. 更长的回答: 有两种不同的情况,使用**:文件搜索和其余的. Vim帮助很好地解释了这一点. 对于’休息’,请参阅:help wildcard和:help starstar-wildcard: 来自:help wildcard:
和:help starstar-wildcard指定:
有关文件搜索,请参阅:help **或:help starstar. 引用相关部分(强调我的):
[…]
[…]
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |