1

回答“我在哪里还使用了这个标识符?” -问题,我在 macOS 和 linux 上运行

dired-maybe-insert-subdir
dired-mark-files-regexp

其次是:

dired-do-find-regexp
dired-do-find-regexp-and-replace

在 Windows 上,我可以在没有Cygwin 的情况下使用 Emacs 作为我的 IDE,除了直接递归搜索/替换。

Projectile是否 提供将递归搜索/替换标识符而不需要 Cygwin 的命令?

在没有 Cygwin 的情况下,是否有任何其他软件包可以在 Windows 上进行递归搜索/替换?

我不关心速度,因为即使在安装 Cygwin 之后,grep从 Emacs 中递归调用 Cygwin 的速度也非常缓慢。

更新:

递归搜索/替换似乎在 HelmProjectile中都可用。

如果属实,那么我的问题是:

  1. 该功能在没有 Cygwin 的 Windows 上可用吗?
  2. requiremy中的 s 列表.emacs已经过多。什么是可以进行递归搜索/替换的轻量级包(在 Windows 上没有 Cygwin)?

澄清:

好的。成功。[感谢 Drew] 不.emacs包含任何内容,我可以在没有安装 Cygwin的情况下在 Windows 上(require 'dired+)搜索和替换标记的文件。我猜这也可以在 linux/macOS 上运行,尽管可能不如委托给. (“对这个目录中和下面的所有文件 [] 采取行动?”确认消息将开始变得乏味,但这是一个单独的问题。)M-+ Qgrep

对于目前的问题,需要澄清一个问题。dired+扩充了内置dired的命令系列。有没有办法让它接管普通的dired-do-find-regexp-and-replace?那是因为使用 one-liner.emacs和目录列表中的一些标记文件,我得到

File not found - GREP
File not found - -I
...
File not found - NUL
File not found - ;

表示grep仍在调用。如何判断dired+“我在 Windows 上,我不会安装 Cygwin;请接管AQ?” (默认映射dired-do-find-regexp和上述命令)。

社论dired+似乎有点压倒性,但如果它解决了这个问题(消除了 Windows 上对 Cygwin 的需求),那么弄清楚如何从常用dired命令转移到dired+.

4

1 回答 1

0

我认为您正在寻找一种方法来搜索文件并获取与正则表达式匹配的文件的列表。如果tags-query-replace在 MS Windows(没有 Cygwin)上适合您,并且我认为它应该,那么您可以使用 command diredp-do-query-replace-regexp-recursive,默认绑定M-+ Q,可从Dired+获得。

这会递归地作用于当前 Dired 缓冲区中的所有标记文件,以及缓冲区的所有标记子目录中的所有标记文件,依此类推。

使用非负前缀 arg 它递归地作用于当前缓冲区中的所有文件和所有子目录中的所有文件,依此类推。(即忽略任何标记,效果就像标记了所有内容一样。)


如果不是查找与正则表达式匹配的文件,而是要搜索文件,则可以使用 command diredp-do-isearch-regexp-recursive,默认绑定到M-+ M-s a C-M-,也可从 Dired+ 获得。要访问的文件的定义类似(所有 Dired+dired[p]-do...-recursive命令的行为都与识别要处理的文件类似)。这绝对不需要任何 Cygwin 等命令 - 它只是 Isearch。

于 2019-07-28T19:39:44.173 回答