如何强制让Emacs Projectile重新初始化一个项目?

9

我正在使用Emacs的Projectile插件来管理一个大型项目。

我移动了许多目录和文件。

旧的文件路径仍然显示在Projectile查找文件(C-c p f)中。

如何批量删除它们或强制Projectile重新初始化项目?

我尝试过:

  • projectile-purge-dir-from-cache
  • projectile-invalidate-cache
  • 退出Emacs,删除~/.emacs.d/projectile.cache,重启Emacs
  • 添加一个带有原始目录的“排除”选项的.projectile文件

经过所有这些操作,旧的路径/文件列表仍然出现在C-c p f中。


1
删除 ~/.emacs.d/projectile.cache 文件,使用 ag(the silver searcher) 或者 rg (ripgrep) 生成项目文件怎么样?查看我的 projectile config 来了解如何使用 rg 生成项目文件。 - Chakravarthy Raghunandan
2
你尝试过 C-u C-c p f 吗? - Daimrod
2个回答

11

C-u C-c p f 可以完成此操作。

感谢Daimrod!


这个按键绑定指向的命令名称是什么? - bobsacameno
@bobsacameno 命令 C-c p fprojectile-find-file,而 C-u 命令则表示以不同的方式运行 projectile-find-file。在这种情况下,新的行为是首先清除缓存。如果您阅读文档 C-h o projectile-find-file,您将看到 (projectile-find-file &optional INVALIDATE-CACHE)C-u 激活了“可选”参数。 - Ricky Nelson
1
@RickyNelson 在我的 Emacs(Doom)中,我已经将 C-u 设置为向上滚动,所以我不确定应该用什么替代它。 - bobsacameno
2
@bobsacameno 应该是 SPC u - Justin Wood

2

这里所回答的那样,你可以简单地调用projectile-invalidate-cache来清除当前项目的旧缓存文件。

在Doom Emacs中是SPC-p-i,在普通的Emacs中是M-x projectile-invalidate-cache


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接