Vim grep设置问题(获取FINDSTR:使用FINDSTR时无法打开System32,并且无法确定如何设置外部grep)

Vim grep设置问题(获取FINDSTR:使用FINDSTR时无法打开System32,并且无法确定如何设置外部grep),vim,grep,findstr,Vim,Grep,Findstr,我正在Windows7x64中使用GVIM7.4。当我对任何内容进行grep时,我会得到以下错误: FINDSTR: Cannot open System32 我查过了,找到了。我认为我的情况不同。我不知道是什么导致了这个错误。我不想在vim中使用内部grep。我要么想要findstr,要么就是普通的grep(答案没有包括设置外部grep,只是提到它是可行的),根据我的理解(如果我错了,请纠正我),当我在vim中执行grep时,它会定位我操作系统的搜索工具并使用它。所以我应该很乐意使用find

我正在Windows7x64中使用GVIM7.4。当我对任何内容进行grep时,我会得到以下错误:

FINDSTR: Cannot open System32
我查过了,找到了。我认为我的情况不同。我不知道是什么导致了这个错误。我不想在vim中使用内部grep。我要么想要findstr,要么就是普通的grep(答案没有包括设置外部grep,只是提到它是可行的),根据我的理解(如果我错了,请纠正我),当我在vim中执行grep时,它会定位我操作系统的搜索工具并使用它。所以我应该很乐意使用findstr,为什么它不起作用

我最终放弃了findstr,安装到
C:\Linux
,但我不知道如何设置vim的外部grepping工具来使用
C:\Linux\grep.exe
——我知道这与
grepprg
有关,但我不确定如何设置,我尝试直接设置
grepprg=“C:/Linux/grep.exe”
(或
grep.exe-n
,无论是否使用
.exe
)但这不起作用,每次我grep类似于
grep someString的东西。
它说someString不被识别为内部或外部命令。
。文档在这个主题上是一个很大的模糊。我如何将vim的外部grep设置为我安装的一个

谢谢


编辑:


我还尝试将“grep.exe”添加到我的
$PATH
目录之一(system32)-并执行
set grepprg=grep \-nH
但现在当我执行grep时,它说
grep不被识别为内部或外部命令

,所以我不得不将grep.exe复制到我的
Vim安装/Vim74
而不是
C:/Windows/system32
,并且执行
set grepprg \-nH
这听起来像是您的64位系统32目录是findstr所在的位置,但如果您运行的是32位Vim,它实际上不会看到该目录。相反,由于windows的一项功能,它会看到c:\windows\Syswow64目录。但您可能可以通过将其添加到您的.vimrc中的路径来强制Vim查看“real”System32文件夹

let $PATH.=';C:\Windows\Sysnative'

大家好,请尝试以下对我有用的方法:let Grep_Path='C:\gnuwin32\bin\Grep.exe':let Fgrep_Path='C:\gnuwin32\bin\Fgrep.exe':let Egrep_Path='C:\gnuwin32\bin\Egrep.exe':let Agrep_Path='C:\gnuwin32\bin\Agrep.exe'谢谢你把我指对了地方。我加了“;C:\windows\Syswow64”就这样。但奇怪的是,findstr.exe同时在system32和Syswow64中…system32被添加到$PATH中,嗯。。。