射弹不会显示项目中的所有文件


12

在访问了git存储库中的文件后,Projectile承认我的git存储库已作为项目存在,但仅列出一个文件(当前文件)作为项目的一部分。当我访问项目中的其他文件时,它们一次成为项目的一部分。

如何在Projectile中创建项目,以使他们立即知道项目中的所有文件?

到目前为止,我发现的所有教程都假定您正在访问现有项目中的文件,并且Projectile知道该项目包含的文件。


更新资料

设置弹丸时,我在弹丸文档中提出了以下建议:

快取

由于索引大型项目并不完全很快(尤其是在Emacs Lisp中),因此Projectile支持缓存项目文件。默认情况下,无论何时启用本机索引,都将启用缓存。

要无条件启用缓存,请使用以下代码段:

(setq projectile-enable-caching t)

由于我偶尔会浏览一些大型项目,因此我将其添加到了init文件中,希望它可以提高性能。我不知道Projectile如何管理其缓存,但是当我假设我第一次访问项目时,将浏览项目树,并将所有项目文件填充到缓存中。看来我的假设是错误的。

设置projectile-enable-caching为之后nil,Projectile可以在我的项目中找到所有文件。感谢alexurba的回答和后续评论,我得以找到问题所在。


这个问题太广泛了,应该结束。它不是SE的理想选择。请提出有关您遇到的单个特定问题的特定问题。根据具体问题提供所需的上下文信息。
2014年

4
我认为这是一个很好的问题,它具有太多的背景知识。我认为,如果重新将重点放在以下这一行上:“我如何在Projectile中设置项目,以使他们立即知道项目中的所有文件。”这将是很好的。
Jordon Biondo

3
@JordonBiondo:它越集中,对SE越有用。可以肯定的是,可以将焦点对准最小化,这样就不会关闭/关闭。但是人们应该能够做得更好。我猜想那里某个地方可能有3或4个好问题,如果将他们分开摆出重点的方式,每个人都会从中受益。
2014年

您正在使用哪个平台(Windows,Mac,Linux)?项目文件的索引似乎依赖于平台来实现。
alexurba 2014年

1
我正在Linux(RHEL 6.5)上对此进行测试,但是我希望能够在所有平台上使用它。
nispio 2014年

Answers:


8

激活后,projectile即可立即使用git项目。激活包括

(projectile-global-mode)

在您的Emacs配置(或启动projectile-mode)中手动设置。

然后projectile-find-file(默认键绑定为C-c p f)的工作方式与相同find-file,但将作用于项目主目录(该.git目录所在的子目录)的子目录中的所有文件。

如果要避免使用git,则可以.projectile在项目根目录中创建一个文件。这将具有相同的效果,可用于忽略某些文件或目录(类似于.gitignore)。

可以在项目的github页面上找到更多信息(阅读时间过长)。我特别建议阅读有关Ido和的部分helm

编辑:

检查的值projectile-indexing-method。在Linux上,应为alien,值projectile-enable-caching应为nil


这正是对我不起作用的部分。当我运行时projectile-find-file,列出的唯一文件是我已经访问过的文件,即使项目目录中包含了更多文件。
nispio 2014年

@nispio,在项目页面上它提到了不同的索引编制和缓存方法。您可以检查projectile-indexing-methodC-h v projectile-indexing-method)的值吗?在Linux上应该是alien
alexurba 2014年

并且projectile-enable-caching应该是nil
alexurba 2014年

2
您找到了。我开始projectile-enable-caching尝试nil,它开始按我的期望工作。知道这一点后,我能够将其设置回t,然后用于C-u C-c p f使该缓存无效projectile-find-file,这也可以正常工作。我很困惑,如果以前从未缓存过项目,为什么我需要使缓存无效,但是我可能会把它留给另一个问题。
nispio 2014年

很好,它起作用。但是,我不确定在没有“外来”索引的Windows下会发生什么。但这可能真的是您遇到第二个问题的主题。
alexurba 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.