답변:
발사체를 보면 전 세계적으로 파일 / 디렉토리를 무시하기위한 네 가지 사용자 정의를 제공하는 것 같습니다. 문서와 함께 아래에 각각 나열하고 있습니다.
projectile-globally-ignored-files
발사체가 전역 적으로 무시한 파일 목록.
projectile-globally-ignored-directories
발사체에 의해 전역 적으로 무시되는 디렉토리 목록.
projectile-globally-ignored-file-suffixes
발사체에 의해 전역 적으로 무시되는 파일 접미사 목록.
projectile-globally-ignored-modes
발사체가 무시한 주요 모드의 정규 표현식 목록입니다.
버퍼가 주어진 주요 모드를 사용하는 경우, 발사체는 버퍼로 작업하는 함수에 대해이를 무시합니다.
이 옵션은 전역 옵션이므로 예를 들어 projectile-globally-ignored-directories
작업중인 프로젝트에 관계없이 in 디렉토리
가 무시됩니다. 특정 프로젝트의 파일 / 디렉토리를 무시하려면 .projectile
파일을 프로젝트의 루트에 추가하고 -
다음과 같이 접두사가 무시되는 경로를 추가하십시오
-/CMake
자세한 내용은 projectile-parse-dirconfig-file
(또는 발사체 문서 ) 문서 를 참조하십시오
프로젝트 무시 파일을 구문 분석하고 무시하고 유지하기 위해 디렉토리를 리턴하십시오.
리턴 값은 단점이며, 자동차는 보관할 디렉토리 목록이고 cdr은 무시할 파일 또는 디렉토리 목록입니다.
+로 시작하는 문자열 은 보관할 디렉토리 목록에 추가되고 -로 시작하는 문자열 은 무시할 디렉토리 목록에 추가됩니다 . 이전 버전과의 호환성 을 위해 접두어 가 없으면 문자열은 무시 문자열 로 간주됩니다 .
예, .projectile
파일에서 각 줄에 다음과 유사하게 지정하십시오. 각 줄은 다음과 같습니다.
- /path/to/somefile
각 줄에는 하나의 파일 경로가 있습니다.
다른 해결책은 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 설정 에서 가져온 것 입니다.
무시 된 디렉토리 / 파일을 존중하는 검색 :
설치 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") 또는 다른 항목 만 포함해야합니까? 솔직히 나는 내가 생각할 수있는 모든 콤보를 시도했지만 작동하지 않았습니다.