回答:
発射物を見ると、ファイル/ディレクトリをグローバルに無視するための4つのカスタマイズを提供しているようです。以下にそれぞれのドキュメントをリストします
projectile-globally-ignored-files
発射物によってグローバルに無視されるファイルのリスト。
projectile-globally-ignored-directories
発射物によってグローバルに無視されるディレクトリのリスト。
projectile-globally-ignored-file-suffixes
発射物によってグローバルに無視されるファイルサフィックスのリスト。
projectile-globally-ignored-modes
発射物によって無視されるメジャーモードの正規表現のリスト。
バッファーが特定のメジャーモードを使用している場合、発射物はバッファーで機能する関数に対してそれを無視します。
これらはグローバルオプションであるため、たとえばprojectile-globally-ignored-directories
作業中のプロジェクトに関係なく、ディレクトリは無視されることに注意してください
。特定のプロジェクトのファイル/ディレクトリを無視するには、.projectile
ファイルをプロジェクトのルートに追加し、-
次のようにパスを追加してプレフィックスを無視します
-/CMake
詳細については、ドキュメントprojectile-parse-dirconfig-file
(または発射体のドキュメント)を参照してください。
プロジェクトを解析してファイルを無視し、無視して保持するディレクトリを返します。
戻り値は短所、carは保持するディレクトリのリスト、cdrは無視するファイルまたはディレクトリのリストです。
ストリングス+で始まるがリストに追加されます 保つために、ディレクトリ、および文字列が始まる-のリストに追加されます 無視するディレクトリ。後方互換性のために、 接頭辞がない場合、文字列は無視文字列と見なされます。
はい、.projectile
ファイルの各行で次のように指定します。各行は次のようになります。
- /path/to/somefile
各行には1つのファイルパスが含まれます。
ファイルの無視に関する公式ドキュメントを参照してください
別の解決策は、ag
(the_silver_searcher)またはrg
(ripgrep)を使用してプロジェクトファイルを生成することです。以下がその方法ですrg
:
(setq projectile-enable-caching t)
;;; Default rg arguments
;; https://github.com/BurntSushi/ripgrep
(when (executable-find "rg")
(progn
(defconst modi/rg-arguments
`("--line-number" ; line numbers
"--smart-case"
"--follow" ; follow symlinks
"--mmap") ; apply memory map optimization when possible
"Default rg arguments used in the functions in `projectile' package.")
(defun modi/advice-projectile-use-rg ()
"Always use `rg' for getting a list of all files in the project."
(mapconcat 'identity
(append '("\\rg") ; used unaliased version of `rg': \rg
modi/rg-arguments
'("--null" ; output null separated results,
"--files")) ; get file names matching the regex '' (all files)
" "))
(advice-add 'projectile-get-ext-command :override #'modi/advice-projectile-use-rg)))
プロジェクトディレクトリで、無視したいファイルを指定し.gitignore
てください。
コードはkaushalmodiの emacs config からのものです。
無視されたdirs / filesを尊重する検索:
インストールack
(grepの代替。homebrewでインストールします。)
置く--ignore-case
あなたの中~.ackrc
のファイル(あなたがケースを無視したいと仮定した場合)
helm-projectile-ack
キーにバインドします。私はemacs initでこれを行います:
(use-package helm
...
:bind (...
("C-c p s a" . helm-projectile-ack)
)
...
)
.projectile
ファイルを作成します。例えば、-.dot
-.jcs
-.svg
-.txt
つかいます
C-c p s a ;; search that respects .projectile ignore
または
C-c s p g ;; search everything
projectile-globally-ignored-file-suffixes
それが意図されているように(私は思う)仕事をすることができません。これには、接尾辞(オブジェクトファイルの場合は "o")、ファイルグロブ(つまり "* .o")または他の何かのみを含める必要がありますか?率直に言って、考えられるすべてのコンボを試しましたが、うまくいきませんでした。