Replace 不带Cygwin的Windows上的Emacs递归搜索/替换
为了回答“我在哪里也使用了这个标识符?”——问题,我在macOS和linuxes上运行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
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
也非常慢
更新:
递归搜索/替换似乎在这两种语言中都可用
和
如果是真的,那么我的问题是:
.emacs
中的require
s列表已经过多。什么是可以执行递归搜索/替换(Windows上没有Cygwin)的轻型软件包(需要“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