4

WindowsのEmacsでgrep+findの代わりにack-grepを使用しようとしていますが、ack-grepは一致するものを出力せずにすぐに(正常に)終了します。ack-grepに対するコマンドラインパラメーターの考えられるすべての組み合わせを試しましたが、何も機能していないようです。

M-x grep-find

「ackhtml」と入力して、「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

で同じコマンド「ackhtml」を実行すると、正常にcmd.exe機能します(文字列「html」を含むさまざまなファイルが多数表示されます。

何か案は?

4

3 に答える 3

8

WindowsのEmacsでackを実行すると、ファイルを検索するのか、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)))
于 2010-02-24T05:43:12.087 に答える
0

(setq grep-find-command "ack <nul -i ")

于 2012-07-09T14:57:14.997 に答える
0

モジュールを使用して同様の問題が発生しましたack-and-a-half。STDINを閉じると、そこでもうまくいきました。githubに問題があります:https ://github.com/jhelwig/ack-and-a-half/issues/23

于 2013-03-27T00:19:31.693 に答える