不久前,我在我的 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
然后它开始搜索……寻找某物……谁知道是什么
这不是我在两个示例中所期望的。不过我一定是越来越近了……
最佳答案
好的,我解决了。我的 .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
为什么会导致我不知道的错误。但那是罪魁祸首。
关于windows - Windows 上的 Ack.vim "No such file or directory"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7411179/