windows - 在 Windows 上的 Emacs 中从 "grep-find"运行时,ack 不起作用

标签 windows perl emacs ack

我正在尝试使用 ack-grep作为 Windows 上 Emacs 中 grep + find 的替代品,但 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

cmd.exe 中执行相同的命令“ack html”工作正常(显示许多包含字符串“html”的各种文件)。

有什么想法吗?

最佳答案

在 Windows 的 Emacs 下运行 ack 时,我发现它有时会混淆它是应该搜索文件还是从 STDIN 读取。这是我用来调用 ack 的函数(使用 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)))

关于windows - 在 Windows 上的 Emacs 中从 "grep-find"运行时,ack 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322389/

相关文章:

c - fopen()、fclose() 究竟是如何工作的?

c++ - 如何检查模板的哪些部分被实例化?

c# Windows 服务是否(可能)使用 app.config

perl - 安装 mod_perl 时出错

perl - 如何使用 printf 和 Perl 的 Term::ANSIColor 获得彩色输出?

multithreading - Perl 线程之间共享套接字对象

python - emacs 上的 IPython 阻止键绑定(bind)

r - 如何在 Emacs + ESS 中对 Rmarkdown 文档运行拼写检查?

emacs - [cedet] : how to add a new ede target?

javascript - 有没有办法使用 html、javascript 或 flash 在 IE 中关闭 url "cliking"声音?