windows - Emacs for Windows 中 shell 模式下的 Ack 显示无输出

标签 windows emacs ack

在 Windows 7 64 位上安装 ack 后(例如使用 StrawberryPerl ),我可以从 cmd 终端运行 ack window 。

但是,如果我尝试在 Emacs 中以 Shell 模式使用 ack(即在 M-x shell 缓冲区中),我将无法输出(所有其他 cmd 命令打印正确)。

有趣的是,如果我单独运行 ack - 即没有参数 - 我会得到正确打印的 ack 使用信息。换句话说,当我使用参数运行它时,ack 在我的 Emacs shell 中不打印任何输出(即使 ack 应该为我的查询打印命中,正如我在 下检查的那样>命令)。

缺少输出让我认为 ack 正在等待输入(尽管我为它提供了参数)。我尝试了建议的代码片段 here在我的 .emacs 文件中(这似乎是为了在文件系统或 STDIN 中搜索混淆时帮助确认),但问题仍然存在。

关于如何解决这个问题有什么建议吗?

谢谢

最佳答案

ack 正在等待标准输入,错误地认为它处于过滤模式。作为解决方法,添加 <NUL到命令末尾,关闭其标准输入。

仅供引用 - 在 Windows 上的 emacs shell 中的 perl 调试器中运行“ack”,显示它在此处停止:

main::print_matches_in_resource(c:/Strawberry/perl/site/bin/ack:454):
454:            while ( <$fh> ) {

关于windows - Emacs for Windows 中 shell 模式下的 Ack 显示无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535226/

相关文章:

php - 通过提示输入 php 中的第一个数字来顺序编号文件

c# - 如何在 Windows 通知栏中显示弹出通知

java - 如何在 emacs 中运行 Java 代码?

linux - 银色搜索器 : how to unignore files in the . gitignore?

search - 在 MacVIm 中打开 Ack

java - Java 中监控网络适配器的轻量级方法是什么?

windows - RegOpenKeyEx/RegGetValue 在存在的键上返回 ERROR_FILE_NOT_FOUND

android - Emacs 和 Eclipse 并行工作流程

regex - Emacs:如何复制正则表达式匹配?

linux - 你能在 grep 中保留不匹配内容的格式吗?