Emacs高效检索文件内容及按文件名查找文件 2024-05-13

背景

在日常工作中,有如下两类高效的检索文件场景:

  • 我们想根据关键字快速查找到当前目录文件中含相应内容的文件(检索文件内容)。
  • 我们能根据关键字快速找到到文件名含有该关键字的文件(按文件名查找文件)。

检索文件内容

ripgrep 按关键字检索,参考如下: BurntSushi/ripgrep: ripgrep recursively searches directories for a regex pattern while respecting your gitignore (github.com)

mac下安装ripgrep 直接使用brew brew install ripgrep
windows下安装ripgrep 直接使用winget winget install BurntSushi.ripgrep.MSVC

安装完成ripgrep后,就可以在命令行下检索了,效果如下:

image.png

如上图所示,我们找到两个文件有关键字pop-global 。这样查找内容就非常方便了。接下来我们将其配置在emacs,这样在emacs里也能使用rg进行检索内容:

配置方式:Using ripgrep in Emacs using helm-ag (Spacemacs) (github.com)

其要点是在Emacs中设置 helm-ag-base-command 这个变量。

M-x customize-set-variable helm-ag-base-command

将这个变量的值设置为:rg --vimgrep --no-heading --smart-case
如下:

image.png

然后在emacs执行以下命令可以查找当前项目里的内容,你可以绑定自己的快捷键:

M-x spacemacs/helm-project-do-ag

如下效果图:

image.png

按文件名查找文件

fd-find 按文件名进行查找,连接 sharkdp/fd: A simple, fast and user-friendly alternative to 'find' (github.com)

需要先安装fd
mac 下安装 brew install fd
windows下安装 winget install sharkdp.fd

安装完成后,可以进行查找测试,如下:fd "init"

image.png

emacs中配置fd,主要是将 ffip-use-rust-fd 变量设置为true。

image.png

image.png

设置完成后,可以在emacs里使用M-x find-file-in-project-by-selected
效果如下:

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容