bash-completion 및 grep에서 __pycache__ 디렉터리를 무시할 수 있나요?

bash-completion 및 grep에서 __pycache__ 디렉터리를 무시할 수 있나요?

나는 __pycache__git저장소와 Wildmenu에서 vi이것을 무시했습니다 . 이러한 디렉터리가 내 작업 흐름을 오염시키는 마지막 장소는 프로젝트 파일을 재귀적으로 수집할 때와 tab명령줄에서 자동 완성을 사용할 때입니다.

디렉토리를 보편적으로 무시하는 것과 grep같은 명령줄 도구를 구성하는 방법이 있습니까 ?bash-completion

답변1

bash다음을 설정하여 파일의 와일드카드 삭제를 활성화할 수 있습니다 __pycache__.

$ export GLOBIGNORE=__pycache__

이제 다음을 발행하면:

$ ls __*
ls: cannot access __*: No such file or directory

bash환경 변수를 사용하여 FIGNORE파일 접미사를 건너뛸 수도 있습니다. 디렉토리를 약간 필터링하는 데 사용할 수 있습니다.

$ mkdir __pycache__
$ export FIGNORE=__pycache__

그런 다음 발행되면:

$ ls __tab

까지 완료됩니다

$ ls __pycache__

그러나 접두사가 붙은 경우(예: 경로 사용):

$ ls ./__tab

그것은 끝나지 않을 것이다.

grep별칭을 사용하여 디렉터리를 제외 할 수 있습니다 __pycache__.

alias grep='grep --exclude-dir="__pycache__"'

grepMadhavan Kumar의 답변을 사용하여 필터링하려는 명령의 완성 및 기타 명령을 변경할 수도 있지만 bash_completion재정의를 적용하려면 rc 파일에 정의하고 소스 다음에 가져와야 한다는 점을 잊지 마십시오.

FIGNORE
    A colon-separated list of suffixes to ignore when performing filename 
completion (see READLINE below). A filename whose suffix matches one of 
the entries in FIGNORE is excluded from the list of matched filenames. A 
sample value is ".o:~". 

GLOBIGNORE
    A colon-separated list of patterns defining the set of filenames to
    be ignored by pathname expansion. If a filename matched by a pathname 
    expansion pattern also matches one of the patterns in GLOBIGNORE, it is 
    removed from the list of matches. 

답변2

이러한 명령을 무시하도록 압축 시간(초)을 변경할 수 있습니다.

예를 들어 기존 compsec을 가져오려면 다음을 사용합니다.

complete -p grep

반품,

 complete -F _longopt grep

이제 다음과 같이 명령에 제외 옵션을 추가하십시오.

complete -F _longopt -X '@(__pycache__|more__patterns)' grep

Tab 키를 누르면 이러한 파일 이름이 표시되지 않습니다.

관련 정보