9

我有一个 git repo,其目录结构如下所示:

root ---------- src
        |
        |
        |------ 3rd

root是我的工作目录,3rd由多个第三方 git 子模块组成。
projectile-find-file仅在 中查找文件src,不适用于子模块。

4

3 回答 3

7

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
于 2014-04-24T09:00:49.770 回答
6

我刚刚遇到了一个类似的问题,我通过.projectile在我的目录中添加一个空文件来修复它root,这告诉 projectile 该目录是真正的项目根目录,并在您想要查找某些内容时搜索其子目录中的所有文件。

请参阅此处了解更多信息。

于 2015-02-03T17:48:35.937 回答
0

除了 Mike 的解决方案之外,我.projectile在每个子模块中添加了一个文件,这个子模块将成为 Emacs 中的一个新项目。

于 2020-07-03T11:53:01.897 回答