vim grep找不到任何东西

时间:2017-12-11 18:20:59

标签: vim grep

根据此文件

http://vim.wikia.com/wiki/Find_in_files_within_Vim

如果像

那样使用grep
:vim[grep][!] /{pattern}/[g][j] {file} ...

它应该能够通过匹配模式查找文件。

我有一个名为text.txt的文本文件,位于我从中启动vim的目录中。

text.txt的内容是

look for me

在vim中输入命令

:grep /look/gj *.txt

但我没有得到任何结果。虽然文件text.txt包含字符串“look”。

file content current directory

pattern result

3 个答案:

答案 0 :(得分:3)

您只是混淆了两个命令::vimgrep:grep

:help :vimgrep使用内部方法搜索文件,并有自己的语法和标志。

:help :grep使用外部程序进行搜索,因此它没有定义的语法;您使用的语法取决于幕后使用的外部程序。

您无法真正期望:vimgrep语法适用于:grep

答案 1 :(得分:2)

您正在使用vim的grep语法,而不是使用while (!BackgroundWorker.CancellationPending) { label1.Text = DateTime.Now.Minute.ToString() + " " + DateTime.Now.Second.ToString(); } 语法。

如此处所写:How do I search in all files of my project using VIM?

  

grep(1)的语法默认情况下与:grep命令相同:

     

grep(1)

     

默认情况下,它将搜索当前目录(:pwd)。

     

:grep和:vimgrep之间的主要区别在于:vimgrep(:vim for> short)使用与Vim兼容的正则表达式,而:grep使用& grepprg使用的任何>正则表达式。

答案 2 :(得分:0)

搜索通常也会在当前目录中运行,因此我会检查:pwd:ls的输出,看看您是否看到了您希望看到的内容。

但是,如果您:cd ~,则可以使用vimgrep作为路径,使用**搜索子目录:

:vim /look for me/ **/*.txt

我还建议,除非您有特定要求,否则不要在搜索模式后使用gj标记。