美文网首页
Emacs: grep-dired 快速文件过滤和重构工具

Emacs: grep-dired 快速文件过滤和重构工具

作者: ManateeLazyCat | 来源:发表于2018-10-12 02:05 被阅读383次

    一个多月前开发了 基于 ripgrep 的代码搜索和重构工具 , 可以快速的搜索和重构项目.

    但是 ripgrep 只能对文件内容进行搜索, 有时候我们需要对项目下面的文件进行快速搜索并批量操作, 原来一直用 find-lisp-find-dired 这个命令, 但是这个命令最大的缺点就是它是一个同步命令, 当你搜索一个超级大的目录时, 这个命令就会卡主Emacs, 直到它最终搜索完所有的文件才能响应.

    今天开发了基于 find 命令的 grep-dired 插件, 这个插件是完全异步设计的, 当你在搜索巨大目录时, 你同时可以用Emacs做其他事情.

    这个插件的核心和Shell命令 find . -type f -name '*keyword*'的意义是一样的: 根据用户的关键字, 递归的搜索当前目录下匹配的文件名.

    不同的是, 这个插件可以实时的把匹配的文件对接到 Emacs 的文件管理器 dired 中, 一旦文件列入 dired 后, 我们就可以进行更为高效的操作:

    1. 用 isearch 进行二次查找
    2. 用 dired 的命令进行快速批量标记, 删除, 移动和对标记的文件进行 shell 命令
    3. 甚至结合 wdired 对所有的文件名进行快速重构.
    grep-dired

    本来基于 color-rg.el 代码进行原型开发, 开发到一半发现 Emacs 有 find-dired 的代码做了同样的事情, 干脆放弃最开始的原型代码, 基于 find-dired 的代码, 裁剪了很多老旧的代码 (比如 find + grep 搜索文件内容, 显然没有 ripgrep 快), 去掉了很多Unix系统的兼容代码, 加入了自己的一些函数, 很快就构建出 grep-dired.el

    安装方法

    1. 下载 grep-dired 里面的 grep-dired.el 放到 ~/elisp 目录
    2. 把下面的配置加入到 ~/.emacs 中
    (add-to-list 'load-path (expand-file-name "~/elisp"))
    (require 'grep-dired)
    

    使用

    grep-dired-dwim 快速搜索当前目录下的文件

    grep-dired 自定义搜索

    相关文章

      网友评论

          本文标题:Emacs: grep-dired 快速文件过滤和重构工具

          本文链接:https://www.haomeiwen.com/subject/wzfwaftx.html