Spacemacs:在多个项目中搜索文件

Spacemacs: Search for file in multiple projects

我知道我可以使用 "SPC p f" 在当前项目中搜索文件,这对我来说意味着 git 存储库。现在,在我当前的项目中,我们有多个 git 存储库,我想在所有这些存储库中搜索文件。幸运的是,它们都位于同一个目录中(例如 ~/projects/x/)。

Spacemacs 中是否有命令可以让我在 ~/projects/x 下的所有 git 存储库中搜索文件?

哦,我刚刚意识到我可以将一个弹射物相关的标记(如 .projectile 文件)放入我的 ~/projects/x 目录中。现在我可以切换到 ~/projects/x 项目,并且仍然能够通过选择例如将其缩小到特定的子项目。 ~/projects/x/p1/.

所以我需要做的就是:

    touch ~/projects/.projectile

更新:我意识到在这样做时,我不能缩小到一个子项目。所以这不是最好的答案。

我相信你可以用 SPC s f 做到。当您激活它时:

  1. 提示您select要搜索的目录
  2. 允许您输入搜索字符串,在 HELM 中显示结果 window

一般来说,SPC s 显示一般搜索的所有键绑定,其中 f 用于文件。

我再次浏览了可用的 helm 命令,发现 helm-projects-find-files,这正是我想要的。

我把这个放在~/.spacemacs函数中dotspacemacs/user-config:

(setq-default helm-locate-project-list (list "~/projects"))
(spacemacs/set-leader-keys "fm" 'helm-projects-find-files))

要在这些文件中搜索,您可以使用 spacemacs/helm-project-smart-do-search-in-dir:

将此放在 ~/.spacemacs 中的某处:

(defun mine/search-in-projects ()
  "Search in all my projects (i.e. what is checked out in ~/projects)"
  (interactive)
  (spacemacs/helm-project-smart-do-search-in-dir "~/projects"))

并将 ~/.spacemacs 中的这个放入函数 dotspacemacs/user-config:

(spacemacs/set-leader-keys "sm" 'mine/search-in-projects)

(我使用 SPC-sm 作为组合键,因为项目名称以 "m" 开头)。

您可以将其放入您的 .spacemacs 以绑定 SPC p f 以搜索所有项目。

(spacemacs/set-leader-keys "pf" 'helm-projectile-find-file-in-known-projects)