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)
然后它开始搜索......寻找什么......谁知道什么
这不是我在两个例子中所期望的.我必须越来越近了......
好的,我把它解决了.我的.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)
为什么会导致我不知道的错误.但那是罪魁祸首.