ack не работает при запуске из "grep-find" в Emacs на Windows
Я пытаюсь использовать ack-grep в качестве замены для grep + find в Emacs на Windows, но ack-grep выходит немедленно (успешно) без печати каких-либо совпадений. Я перепробовал почти все мыслимые комбинации параметров командной строки для ack-grep, но ничего не работает.
M-x grep-find
Введите " ack html "для поиска файлов, содержащих"html". Ack немедленно выходит, ничего не печатая:
-*- mode: grep; default-directory: "c:/" -*-
Grep started at Tue Feb 23 23:50:52
ack html
Grep finished (matches found) at Tue Feb 23 23:50:52
Выполнение той же команды "ack html" в cmd.exe
работает нормально (показывает множество различных файлов, содержащих строку "html".
Есть идеи?
3 ответа:
Когда я запускал ack под Emacs в Windows, я обнаружил, что он иногда путался в том, должен ли он искать файлы или читать из STDIN. Вот функция, которую я использую для вызова ack (use
M-x ack
). Вы можете поместить это в.emacs
.(defvar ack-command "ack --nogroup --nocolor ") (defvar ack-history nil) (defvar ack-host-defaults-alist nil) (defun ack () "Like grep, but using ack-command as the default" (interactive) ; Make sure grep has been initialized (if (>= emacs-major-version 22) (require 'grep) (require 'compile)) ; Close STDIN to keep ack from going into filter mode (let ((null-device (format "< %s" null-device)) (grep-command ack-command) (grep-history ack-history) (grep-host-defaults-alist ack-host-defaults-alist)) (call-interactively 'grep) (setq ack-history grep-history ack-host-defaults-alist grep-host-defaults-alist)))
У меня была аналогичная проблема с использованием модуля
ack-and-a-half
, закрытие STDIN сделало трюк и там. Есть проблема на github: https://github.com/jhelwig/ack-and-a-half/issues/23