我不久前在Windows XP机器上安装了Ack,并且能够正常工作。 不知道我最近做了什么,但现在它不工作。
这里是我在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愉快地searchsearchterm
我不明白。 Vim如何调用cmd.exe的方式与我如何通过run
调用方式不同 – 结果应该是我想的。
有任何想法吗?
更新 :
我现在知道消息“没有这样的文件或目录”是因为Ack认为我正在运行ack命令的这种格式:
ack searchterm filename
其中文件名是您要search的文件。问题是,我没有提供一个文件名 – 所以我不知道为什么它认为我的searchterm实际上是search文件。
不知何故,vim传递错误的参数到cmd.exe – 但我不明白它是如何做到这一点
更新2
Vim不是问题。 这肯定是我的Ack版本以某种方式被惹怒了。
如果我打开cmd.exe并input:
ack searchterm
那么我也收到错误信息:
ack: searchterm: No such file or directory
如果我只是inputack:
ack
那么它开始寻找… …的东西…谁知道什么
这不是我所期望的两个例子。 我必须越来越接近…
好的,我解决了。 我的.ackrc文件被borked。 显然这是无效的语法:
--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
为什么这会导致我不知道的错误。 但那是罪魁祸首。
工作很好 我使用linux(crunchbang)从ack得到同样的错误。
原来我从Windows上复制了我的〜/ .ackrc文件。
修复它与旧的dos2unix。
$ ack -f --python : No such file or directory