3

不久前,我在我的 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

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

vim 以某种方式错误地将参数传递给 cmd.exe - 但我只是看不出它是如何做到的

更新 2

Vim 不是问题。一定是我的 Ack 版本以某种方式被窃听了。

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

ack searchterm

然后我也收到错误消息:

ack: searchterm: No such file or directory

如果我只输入 ack:

ack

然后它开始搜索……寻找一些东西……谁知道呢

这不是我在这两个例子中所期望的。不过,我一定越来越近了……

4

2 回答 2

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

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

于 2011-09-14T05:55:50.657 回答
1

不错的作品。我从 ack 使用 linux (crunchbang) 得到了同样的错误。
原来我已经从 Windows 复制了我的 ~/.ackrc 文件。
用旧的 dos2unix 修复它。

$ ack -f --python
: No such file or directory
于 2013-10-12T02:48:03.583 回答