emacs find-grep grep

标签 emacs grep xargs

我尝试对 emacs 的 find-grep 的结果执行 grep,因此我使用以下命令:

找到... | xargs ... | grep -v "包括"

结果确实显示在 grep 缓冲区中,但是当我在尝试转到该文件的每个条目上按 Enter 时,emacs 说该文件不存在。在 minibuffer 上,在文件的完整路径之前,有一个 ^[[K 字符。这基本上使整个文件名无法识别。我查看了 grep 的手册,仍然不确定我能做些什么。

我可能不必这样做,但我只是不确定如何传递两种模式,一种用于 grep,另一种用于反转 grep。 (可能是正则表达式?)

有人对此有任何建议吗?

解决方案:

我是在 Cento 5.5 机器上执行此操作的。由于旧版本的grep,结果证明这是一个问题。我在我的主目录中安装了最新版本的 grep,现在一切都很好。

最佳答案

通过评论“调试”问题后,这是一个应该适合您的解决方案。将它添加到您的 .emacs 并对其进行自定义,以便正则表达式匹配您要从文件名中删除的特殊字符:^[[K

(defadvice compilation-find-file (before compilation-find-file-strip-odd-chars activate)
  "Strip the ^[[K in the input string"
  (let ((filename (ad-get-arg 1)))
    (save-match-data
      (when (string-match "^\\[\\[K" filename)
        (ad-set-arg 1 (replace-match "" nil nil filename))))))

关于emacs find-grep grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5517877/

相关文章:

bash - 提取子字符串直到第一个数字

regex - grep -E {,1} 显示出现次数超过 1 次的结果

bash - bash 中的命令组合

emacs - 使 Emacs 中的文档 View 适合页面宽度

linux - 如何在目录中查找二进制文件?

bash - 格式化目录中的所有 XML 文件并将它们保存在子目录中

linux - 如何将 xargs 与 pdftotext 转换器耦合以在多个 pdf 文件中搜索

python - 如何使用 ropemacs 进行跨项目重构?

emacs - 如何解决冲突的面孔订单?

emacs - elisp中如何确定操作系统?