我知道我可以使用“SPC p f”来搜索当前项目中的文件,这对我来说意味着 git 存储库。现在,在我当前的项目中,我们有多个 git 存储库,我想在所有这些存储库中搜索文件。幸运的是,它们都位于同一个目录中(例如~/projects/x/)。
Spacemacs 中是否有一个命令可以让我在 ~/projects/x 下的所有 git 存储库中搜索文件?
我知道我可以使用“SPC p f”来搜索当前项目中的文件,这对我来说意味着 git 存储库。现在,在我当前的项目中,我们有多个 git 存储库,我想在所有这些存储库中搜索文件。幸运的是,它们都位于同一个目录中(例如~/projects/x/)。
Spacemacs 中是否有一个命令可以让我在 ~/projects/x 下的所有 git 存储库中搜索文件?
我相信你可以做到这一点SPC s f
。当您激活它时:
通常,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)
哦,我刚刚意识到我可以将弹丸尊重的标记(如 .projectile 文件)放入我的 ~/projects/x 目录中。现在我可以切换到 ~/projects/x 项目,并且仍然可以通过选择 ~/projects/x/p1/ 将其缩小到特定的子项目。
所以我需要做的就是:
touch ~/projects/.projectile
更新:我意识到这样做时,我无法缩小到子项目。所以这并不是最好的答案。