Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: asgeo1Ответов: 2

Недавно я установил 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

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

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

cmdwindowsvimack

Ответы

Ответ 1 · рейтинг 6 · asgeo1

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

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

Ответ 2 · рейтинг 1 · AAAfarmclub

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

$ ack -f --python
: No such file or directory

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы