나는 __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__"'
grep
Madhavan 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 키를 누르면 이러한 파일 이름이 표시되지 않습니다.