Projectileがプロジェクト内のすべてのファイルを表示しない


12

gitリポジトリの一部であるファイルにアクセスした後、Projectileは私のgitリポジトリの存在をプロジェクトとして認識しますが、プロジェクトの一部として1つのファイル(現在のファイル)のみをリストします。プロジェクト内の他のファイルにアクセスすると、それらは1つずつプロジェクトの一部になります。

Projectileでプロジェクトを作成して、プロジェクト内のすべてのファイルをすぐに認識できるようにするにはどうすればよいですか?

これまでに見つけたすべてのチュートリアルは、既存のプロジェクト内のファイルにアクセスし、Projectileがそのプロジェクトに含まれるファイルを認識していることを前提としています。


更新

Projectileをセットアップするとき、Projectileのドキュメントで次の提案を行いました。

キャッシング

大きなプロジェクトのインデックス作成は(特にEmacs Lispでは)正確ではないため、Projectileはプロジェクトのファイルのキャッシュをサポートしています。ネイティブインデックスが有効になっている場合は常に、キャッシュがデフォルトで有効になります。

無条件にキャッシュを有効にするには、次のコードスニペットを使用します。

(setq projectile-enable-caching t)

時々、いくつかの大きなプロジェクトをナビゲートするので、パフォーマンスを向上させることを期待して、これを私のinitファイルに追加しました。Projectileがキャッシュをどのように管理するかはわかりませんが、プロジェクトに初めてアクセスしたときに、プロジェクトツリーが探索され、すべてのプロジェクトファイルがキャッシュに読み込まれると想定していました。私の仮定は間違っていたようです。

に設定projectile-enable-cachingした後nil、Projectileはプロジェクト内のすべてのファイルを見つけることができました。alexurbaの回答とフォローアップコメントおかげで、問題を見つけることができました。


この質問は広すぎるので、終了する必要があります。SEには適していません。発生している単一の特定の問題について具体的な質問をしてください。特定の問題に必要なコンテキスト情報を提供します。
2014年

4
裏話が多すぎるのはいい質問だと思います。この行に再度焦点を合わせた場合、「Projectileでプロジェクトをセットアップして、プロジェクト内のすべてのファイルをすぐに認識できるようにするにはどうすればよいですか」と考えるとよいでしょう。
Jordon Biondo 2014年

3
@JordonBiondo:集中するほど、(SEにとって)より便利になります。確かに、最小限の焦点を狙うことができるので、閉じたり閉じたりすることはできません。しかし、それ以上のことができるはずです。おそらくどこかで3つか4つの良い質問があると思います。焦点を絞った方法で個別に提起されれば、誰もが恩恵を受けるでしょう。
ドリュー

どのプラットフォームを使用していますか(Windows、Mac、Linux)?プロジェクトファイルのインデックス作成は、プラットフォームに依存して実装されているようです。
alexurba 2014年

1
これをLinux(RHEL 6.5)でテストしていますが、すべてのプラットフォームで使用できるようにしたいと考えています。
nispio 2014年

回答:


8

アクティベートすると、projectileGitプロジェクトですぐに使用できます。インクルードをアクティブ化するには

(projectile-global-mode)

Emacs設定(またはstart projectile-mode)で手動で。

次にprojectile-find-file(デフォルトのキーバインディングはC-c p f)はと同じようfind-fileに機能しますが、プロジェクトのメインディレクトリ(.gitディレクトリがある場所)のサブディレクトリにあるすべてのファイルに作用します。

gitを避けたい場合.projectileは、プロジェクトルートにファイルを作成することもできます。これは同じ効果があり、特定のファイルまたはディレクトリを無視するために使用できます(と同様.gitignore)。

さらに多くの情報がプロジェクトのgithubページにあります(これはあまりにも長すぎます)。私は、特に約セクションを読むことをお勧めしますIdohelm

編集:

の値を確認します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で何が起こるかはわかりません。しかし、多分それがあなたがそれに遭遇するとき、それは本当に2番目の質問の主題になることができます。
alexurba 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.