Projectile仅识别.git标记设置项目根目录的问题及配置咨询
解决Projectile项目根目录识别问题
手动指定单个项目根目录
- 打开目标项目中的任意文件(比如
my-project/src/main.rs),执行命令M-x projectile-set-root,在弹出的目录选择界面中选中my-project目录即可。Projectile会自动在该目录下生成.projectile文件,后续打开该项目文件时会以此为根目录。 - 也可以手动在
my-project目录下创建空的.projectile文件,Projectile会优先识别这个标记文件,将所在目录设为项目根。
全局调整项目检测优先级
如果希望Projectile优先识别Cargo.toml、stack.yaml这类配置文件,而非.git目录,可以通过修改Emacs配置调整检测顺序:
- 调整检测函数顺序,让配置文件检测优先于Git检测:
(setq projectile-project-root-files-functions '(projectile-root-local projectile-root-manually projectile-root-with-config-files projectile-root-with-markers projectile-root-with-git projectile-root-with-hg projectile-root-with-bzr projectile-root-with-svn projectile-root-with-dvc projectile-root-with-mtn projectile-root-with-fossil)) - 或者自定义根目录标记文件的优先级列表,将配置文件放在
.git前面:(setq projectile-project-root-files '("Cargo.toml" "stack.yaml" ".git" ".hg" ".bzr" ".svn"))
对于Git仓库子目录的场景,手动创建.projectile文件是最简便的方案,不会对父仓库的Git操作造成影响。
内容的提问来源于stack exchange,提问作者Kasra
相关产品推荐
相关产品推荐

