때때로 bash 셸에서 탭 완성을 사용할 때 탭 완성을 표시하고 현재 디렉터리에 Python 가상 환경을 생성하기 전에 1~2초 동안 일시 중지됩니다.
예를 들어, 라는 단일 파일이 포함된 디렉터리에서 명령을 실행하고 example.pdf
탭 완성을 통해 명령을 완료하려는 경우:
$ ls
example.pdf
$ pdf2txt example<tab>
$ pdf2txt example.pdf
This file has text.
$ ls
bin example.pdf lib lib64 include pyvenv.cfg
결과적으로 이 파일을 모두 삭제하거나 내 디렉터리가 신비한 Python 가상 환경으로 채워지는 것을 수락해야 합니다. 내 홈 디렉토리에서는 bash 탭 완성으로 생성된 python venv만 사용하므로 ~/bin
bash 스크립트와 임의의 python 스크립트가 혼합되어 있습니다.
불행히도 이 문제를 안정적으로 재현할 수는 없지만 더 복잡한 파일(pdf, docx 등)이 있을 때 발생하는 것 같습니다.
문제의 특성상 웹 검색으로는 문제를 해결할 수 없습니다. 모든 결과가 Python 스크립트 작성 시 탭 완성 구현에 관한 것이기 때문입니다.
시스템 메시지:
OS: Fedora 36 (though problem started around F34)
Kernel: 5.17.13-300.fc36.x86_64
Python 파일의 유한 재귀 목록(venv 파일은 매번 동일하다고 가정합니다):
$ find . -maxdepth 2
./bin
./bin/python3
./bin/python
./bin/python3.10
./bin/pip
./bin/pip3
./bin/pip3.10
./bin/Activate.ps1
./bin/activate
./bin/activate.csh
./bin/activate.fish
./include
./lib
./lib/python3.10
./pyvenv.cfg
전체 파일 목록:
tree
여기
ls -R
여기
관련된 문서 bash_completion
:
/etc/profile.d/bash_completion
꽤 평범해 보이는데
~/.config/bash_completion
존재하지 않는다
/usr/share/bash-completion/bash_completion
Pastebin에 의해 거부되었지만 헤더에 최신 버전이 켜져 있음이 표시됩니다. 깃허브