问题标签 [vimgrep]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 为什么在 :vimgrep vim 命令中使用 **/* 递归搜索当前目录?
为什么他们使用双星号?
我已经阅读了 Vim 的帮助vimgrep
,查看了有关堆栈溢出和 vimcast 的内容,虽然我发现很多人说这是您在当前目录中递归搜索的方式,但我还没有找到关于为什么的解释。
让我们用一个例子来更容易解释。如果我想在当前目录下查找所有出现的 foo ,我可以使用
这样就变成了
所以看看{file}
这个 grep 的部分:
- 我知道这是一个文件路径。
- 我知道星号 (
*
) 是通配符。 - 我知道正斜杠充当目录分隔符。
我的具体问题是为什么它的格式为
**/*
并不是
*/*
我尝试在几种不同的情况下使用/进行搜索,这似乎搜索了距当前目录正好 1 深的任何目录中的任何文件,我认为这就是使用双星号的原因。
ie 为什么是双星号?这是否通过一些我不完全理解的聪明机制表明“我希望你递归搜索”,或者这只是一个用来表示“递归搜索”的关键字?我完全关闭了吗,这不是 vim 的内置部分,而是 shell 的一部分?(这些部分不是我的实际问题,而是帮助理解我的困惑,我的实际问题在上面)。
如果有什么方法可以改善我的问题,请告诉我,这是我第一次问。
vim - vimgrep 可以与环视断言一起使用吗?
我正在尝试在一个大型 JavaScript 项目上自动执行一些文本操作,并希望使用 跳转到匹配项vimgrep
,接下来我将使用各种宏调用。
我的目标行如下所示:
但是,不是这样的:
我只想匹配getText
具有多个参数的用法,该参数未包含在数组中。
这个使用否定前瞻的搜索查询 ( /) 似乎有效:
但是,运行这个正则表达式vimgrep
:
...失败并显示此消息:
我怀疑我的正则表达式的前瞻部分是原因,因为当我删除它时错误就消失了。
有没有办法使用环视断言vimgrep
?
vim - Vimgrep:如何使用 find 命令创建 arglist?
我想使用 vimgrep重构 python 项目中的一些代码。假设这是项目结构:
nlp 和 test 文件夹都包含一些 python 文件。假设我的密码是./
目录。我想包含此命令中的所有文件:
要包含在我在 vim 中的 args 列表中,如下所示:
然后使用 vimgrep 搜索模式:
问题是我无法创建 args 列表,它在 vim 中给了我一些元字符错误。
注意:虽然我可以这样做:
编辑:确切的错误是:
E79: Impossible de développer les métacaractères "`find . -type f -name" [Nouveau fichier]
这意味着无法发展为元字符。
vim - vim:快速修复窗口上的 grep/vimgrep 和错误:E499
我想在文件中搜索和列出模式,所以我可以使用vimgrep pattern %
Now 这将创建一个 quickfix 窗口,如果我们键入:cw
或:cwindow
它会打开搜索结果。
现在我想在这个 quickfix 窗口上 grep 或 vimgrep,进一步过滤。
例如:文件名:tmp
现在首先我使用vimgrep test %在 quickfix 窗口中获取以下内容。
现在我想立即搜索所有通过的测试。
如果:vimgrep pass %
在 quickfix 窗口上给出,它指出,
e499: '%' 或 '#' 的空文件名,仅适用于 ":p:h"
我现在将此结果保存到临时文件,然后对其进行搜索,有没有简单的解决方案?
我的 Gvim:IM - Vi IMproved 7.2(2008 年 8 月 9 日,2019 年 6 月 6 日 12:19:18 编译)
vim - 如何在字符串之间搜索模式并快速修复?
在我的日志文件中,有时会有很多错误。我将过滤行之间的错误,并查看在其间执行的文件。
所以简而言之,我将搜索范围之间的模式。
现在这个结果显示在屏幕上。但我希望它在快速修复中,以便我可以选择不同的行直到我完成。如何将此结果推送到 quickfix 窗口?