Ack.vim Нет такого файла или ошибки каталога в Windows

Недавно я установил Ack и отлично работал с Vim на моей машине с Windows XP. Не знаю, что я делал недавно, но теперь это не работает.

Вот пример моей проблемы в 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

Он отлично работает, и Эк с радостью ищет searchterm.

Я не понимаю. Как может то, как Vim вызывает cmd.exe, отличаться от того, как я вызываю его через run - результат должен быть таким же, как я думал.

Любые идеи?

ОБНОВЛЕНИЕ:

Теперь я знаю, что сообщение «Нет такого файла или каталога» связано с тем, что Ack думает, что я запускаю этот формат команды ack:

ack searchterm filename

Где имя файла - это файл, в котором вы хотите выполнить поиск. Проблема в том, что я не указываю имя файла, поэтому я не уверен, почему он считает, что мой поисковый запрос на самом деле является файлом для поиска.

Каким-то образом vim неправильно передает аргументы cmd.exe, но я просто не понимаю, как это можно сделать.

ОБНОВЛЕНИЕ 2

Вим не проблема. Должно быть, моя версия Ack каким-то образом глючит.

Если я открою cmd.exe и наберу это:

ack searchterm

то я также получаю сообщение об ошибке:

ack: searchterm: No such file or directory

Если я просто наберу ack:

ack

затем он начинает искать... что-то... кто знает что

Это не то, что я ожидал бы в обоих примерах. Хотя, должно быть, я приближаюсь...


person asgeo1    schedule 14.09.2011    source источник


Ответы (2)


Хорошо, я разобрался. Мой файл .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

Почему, черт возьми, это может вызвать ошибку, я не знаю. Но это был виновник.

person asgeo1    schedule 14.09.2011

Хорошо сделано. Я получал ту же ошибку от ack, используя linux (crunchbang).
Оказалось, что я скопировал файл ~/.ackrc из Windows.
Исправил с помощью старого доброго dos2unix.

$ ack -f --python
: No such file or directory
person AAAfarmclub    schedule 12.10.2013