Ack.vim在Windows上"没有这样的文件或目录"错误

asg*_*eo1 3 windows vim cmd ack

我不久前在Windows XP机器上安装了Ack并且与Vim配合得很好.不知道我最近做了什么,但现在它不起作用.

这是我在Vim中的问题的一个例子:

:Ack searchterm
Run Code Online (Sandbox Code Playgroud)

返回此错误消息:

ack: searchterm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我尝试在Vim中运行'manual'命令:

:!ack searchterm
Run Code Online (Sandbox Code Playgroud)

这将打开一个cmd.exe对话框,其中包含以下消息:

C:\WINDOWS\system32\cmd.exe /c ack searchterm
ack: searchterm: No such file or directory
shell returned 1
Hit any key to close this window....
Run Code Online (Sandbox Code Playgroud)

仍然没有运气.

有什么奇怪的,如果我去START > Run然后输入这个命令:

cmd.exe /c ack searchterm
Run Code Online (Sandbox Code Playgroud)

它工作正常,Ack愉快地搜索 searchterm

我不明白.Vim调用cmd.exe的方式与我通过它调用它的方式有什么不同run- 结果应该和我想的一样.

有任何想法吗?

更新:

我现在知道消息"没有这样的文件或目录"是因为Ack认为我正在运行这种ack命令格式:

ack searchterm filename
Run Code Online (Sandbox Code Playgroud)

其中filename是你要搜索的文件.问题是我没有提供文件名 - 所以我不确定为什么它认为我的searchterm实际上是要搜索的文件.

不知何故,vim将参数错误地传递给cmd.exe - 但我无法看到它是如何做到的

更新2

Vim不是问题.它必须是我的Ack版本以某种方式被错误.

如果我打开cmd.exe并输入以下内容:

ack searchterm
Run Code Online (Sandbox Code Playgroud)

然后我也收到错误信息:

ack: searchterm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我只输入ack:

ack
Run Code Online (Sandbox Code Playgroud)

然后它开始搜索......寻找什么......谁知道什么

这不是我在两个例子中所期望的.我必须越来越近了......

asg*_*eo1 6

好的,我把它解决了.我的.ackrc文件被塞了.显然这是无效的语法:

--type-set
coffeescript=.eco,.coffee
plsql=.tab,.bdy,.spc,.seq,.tps,.trg,.prc,.vw,.fnc,.syn
Run Code Online (Sandbox Code Playgroud)

正确的语法是:

--type-set
coffeescript=.eco,.coffee
--type-set
plsql=.tab,.bdy,.spc,.seq,.tps,.trg,.prc,.vw,.fnc,.syn
Run Code Online (Sandbox Code Playgroud)

为什么会导致我不知道的错误.但那是罪魁祸首.