我有一个 git repo,其目录结构如下所示:
root ---------- src
|
|
|------ 3rd
root
是我的工作目录,3rd
由多个第三方 git 子模块组成。
projectile-find-file
仅在 中查找文件src
,不适用于子模块。
我有一个 git repo,其目录结构如下所示:
root ---------- src
|
|
|------ 3rd
root
是我的工作目录,3rd
由多个第三方 git 子模块组成。
projectile-find-file
仅在 中查找文件src
,不适用于子模块。
projectile-git-command
用于git ls-files
列出属于该项目的文件,
所以我用以下代码解决了这个问题:
(setq projectile-git-command "git-ls-all-files")
git-ls-all-files
是一个外壳脚本:
\#!/bin/zsh
files=`git ls-files -co --exclude-standard`
sb_files=`git --no-pager submodule --quiet foreach 'git ls-files --full-name -co --exclude-standard | sed s!^!$path/!'`
all_files=$files$sb_files
echo $all_files
我刚刚遇到了一个类似的问题,我通过.projectile
在我的目录中添加一个空文件来修复它root
,这告诉 projectile 该目录是真正的项目根目录,并在您想要查找某些内容时搜索其子目录中的所有文件。
请参阅此处了解更多信息。
除了 Mike 的解决方案之外,我.projectile
在每个子模块中添加了一个文件,这个子模块将成为 Emacs 中的一个新项目。