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

时间:2011-09-14 04:14:41

标签: windows vim cmd ack

我不久前在Windows XP机器上安装了Ack并且与Vim一起正常工作。不知道我最近做了什么,但现在它不起作用。

以下是我在Vim中的问题示例:

:Ack searchterm

返回此错误消息:

ack: searchterm: No such file or directory

如果我尝试在Vim中运行“手动”命令:

:!ack searchterm

这将打开一个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....

仍然没有运气。

奇怪的是,如果我转到START > Run然后输入此命令:

cmd.exe /c ack searchterm

一切正常,Ack愉快地搜索searchterm

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

有什么想法吗?

更新

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

ack searchterm filename

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

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

更新2

Vim不是问题。一定是我的Ack版本在某种程度上被误导了。

如果我打开cmd.exe并输入:

ack searchterm

然后我也收到错误消息:

ack: searchterm: No such file or directory

如果我只输入ack:

ack

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

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

2 个答案:

答案 0 :(得分:6)

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

--type-set
coffeescript=.eco,.coffee
plsql=.tab,.bdy,.spc,.seq,.tps,.trg,.prc,.vw,.fnc,.syn

正确的语法是:

--type-set
coffeescript=.eco,.coffee
--type-set
plsql=.tab,.bdy,.spc,.seq,.tps,.trg,.prc,.vw,.fnc,.syn

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

答案 1 :(得分:1)

干得好。我使用linux(crunchbang)从ack得到同样的错误 原来我从Windows复制了我的〜/ .ackrc文件 用旧的dos2unix修复它。

$ ack -f --python
: No such file or directory