当在目录中时显示“您不在一个项目中”的emacs projectile问题。

9

我刚创建了一个新的JavaScript文件夹。

它的结构如下:

.gitignore
README.md
build
node_modules
package.json
src
webpack.config.js

但是,当我尝试使用 C-c p f 查找文件时,在状态栏中会显示以下消息:

您不在项目中

我有其他结构相同的项目可以正常工作,所以我不知道发生了什么事情。
3个回答

15

我认为只有在您的项目中有一个.git文件夹(您是否忘记了git init?),projectile才会将您的项目视为项目。在您的情况下,我没有看到它。您可以选择添加一个.projectile文件。该文件夹中包含.projectile文件和所有子文件夹中的所有内容都将被视为同一项目的一部分。


2

只需使用C-x C-f打开git项目中的任何文件,然后尝试运行命令C-c p f。

在git项目中打开文件将使Projectile识别该项目。

只需在受版本控制(例如Git)或项目(例如Maven)目录中打开某个文件,该目录已被Projectile识别,您就可以开始操作了。


0

免责声明:我知道这篇文章现在有点旧了,但由于我今天遇到了类似的问题,所以我认为分享一下我的笔记是相关的,特别是对那些不太熟悉Emacs Lisp的用户要注意。


罪魁祸首函数很可能是projectile-project-root

你可以尝试用下面的方法进行调查:

  • C-h f 或者 (describe-function 'projectile-project-root)
  • C-h v 或者 (describe-variable 'projectile-require-project-root)

帮助界面提供了一个链接到elisp源代码的地方,你可以使用debug-on-entry逐步浏览(在elisp中查看“Debugging”信息节点)

此函数使用缓存,所以根据你对emacs lisp的技能水平可能会有些困难。


解决方法:

我通过将我的项目移动到另一个目录来解决问题,怀疑其名称以“test”开头可能导致了问题。我还删除了项目缓存子目录(也要检查隐藏的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接