Replace 不带Cygwin的Windows上的Emacs递归搜索/替换

Replace 不带Cygwin的Windows上的Emacs递归搜索/替换,replace,emacs,ide,emacs-projectile,Replace,Emacs,Ide,Emacs Projectile,为了回答“我在哪里也使用了这个标识符?”——问题,我在macOS和linuxes上运行 dired-maybe-insert-subdir dired-mark-files-regexp 后跟以下任一项: dired-do-find-regexp dired-do-find-regexp-and-replace 在Windows上,我可以使用Emacs作为IDE,而不使用Cygwin,除了直接递归搜索/替换 做 提供递归搜索/替换标识符而不需要Cygwin的命令 是否有其他软件包可以在没有C

为了回答“我在哪里也使用了这个标识符?”——问题,我在macOS和linuxes上运行

dired-maybe-insert-subdir
dired-mark-files-regexp
后跟以下任一项:

dired-do-find-regexp
dired-do-find-regexp-and-replace
在Windows上,我可以使用Emacs作为IDE,而不使用Cygwin,除了直接递归搜索/替换

做 提供递归搜索/替换标识符而不需要Cygwin的命令

是否有其他软件包可以在没有Cygwin的Windows上进行递归搜索/替换

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

更新:

递归搜索/替换似乎在这两种语言中都可用 和

如果是真的,那么我的问题是:

  • 该功能在没有Cygwin的Windows上可用吗
  • my
    .emacs
    中的
    require
    s列表已经过多。什么是可以执行递归搜索/替换(Windows上没有Cygwin)的轻型软件包
  • 澄清:

    嗯。成功。[感谢Drew]使用只包含
    (需要“dired+”
    )的
    .emacs
    ,我可以在Windows上使用
    M-+Q
    搜索并替换标记文件,而不必安装Cygwin。我猜这在linux/macOS上也会起作用,尽管可能没有授权给
    grep
    那么快。(此目录中和目录下的“对所有文件[]执行操作?”确认消息将开始变得单调乏味,但这是一个单独的问题。)

    就目前的问题而言,有一个问题需要澄清
    dired+
    增强了内置的
    dired
    命令系列。有没有办法让它接管普通的
    目录,找到regexp并替换
    ?这是因为使用一行程序
    .emacs
    ,以及目录列表中的一些标记文件,我得到了

    File not found - GREP
    File not found - -I
    ...
    File not found - NUL
    File not found - ;
    
    表示仍在调用
    grep
    。如何判断
    dired+
    “我在Windows上,不会安装Cygwin;请接管
    A
    Q
    ?”(默认情况下映射
    dired do find regexp
    和上述命令)


    社论
    dired+
    似乎有点势不可挡,但如果它解决了这个问题(消除了在Windows上使用Cygwin的需要),如何从通常的
    dired
    命令转移到
    dired+

    我想您正在寻找一种方法来搜索文件并获得与regexp匹配的文件列表。如果
    tags query replace
    适用于MS Windows(没有Cygwin),我认为应该可以,那么您可以使用命令
    diredp do query replace regexp recursive
    ,默认情况下绑定到
    M-+Q
    ,可从

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

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



    如果您不想查找与regexp匹配的文件,而是想搜索文件,则可以使用命令
    diredp do isearch regexp recursive
    ,默认情况下绑定到
    M-+M-s a C-M-
    ,也可从Dired+获得。要访问的文件的定义类似(所有Dired+
    Dired[p]-do…-recursive
    命令的作用与识别要操作的文件的作用类似)。这绝对不需要任何Cygwin等命令—它只是Isearch。

    我认为您正在寻找一种方法来搜索文件并获得与regexp匹配的文件列表。如果
    tags query replace
    适用于MS Windows(没有Cygwin),我认为应该可以,那么您可以使用命令
    diredp do query replace regexp recursive
    ,默认情况下绑定到
    M-+Q
    ,可从

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

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


    如果您不想查找与regexp匹配的文件,而是想搜索文件,则可以使用命令
    diredp do isearch regexp recursive
    ,默认情况下绑定到
    M-+M-s a C-M-
    ,也可从Dired+获得。要访问的文件的定义类似(所有Dired+
    Dired[p]-do…-recursive
    命令的作用与识别要操作的文件的作用类似)。这绝对不需要任何Cygwin等命令——它只是Isearch