내 zsh 자동 완성 기능이 이상한 방식으로 손상되었습니다. 깔끔한 로그인의 경우 모든 것이 잘 작동하지만 잠시 후 다양한 "종류"의 자동 완성에 대해 무작위 자동 완성 오류가 발생하는 것 같습니다. 때로는 ls foo<tab>
작동하지만 rm foo<tab>
작동하지 않습니다. 나는 이것을 디버깅하는 방법을 전혀 모릅니다.
이 문제를 일으키는 특정 명령에 대한 패턴을 찾을 수 없습니다. 나는 또한 무엇이 효과가 있고 무엇이 일을 완수하지 못하는지에 대한 패턴을 보지 못합니다. 저는 일상 업무에서 gnu 모듈을 사용하고 make, 컴파일러, nano 등을 실행합니다.
자동 완성 시 발생하는 오류는 다음과 같습니다.
/bin/zsh:4: _main_complete: function definition file not found
또는
(eval):1: _autocd: function definition file not found
(eval):1: _autocd: function definition file not found
(eval):1: _autocd: function definition file not found
_main_complete:173: _ignored: function definition file not found
_main_complete:173: _ignored: function definition file not found
_main_complete:173: _ignored: function definition file not found
또는
(eval):1: _rm: function definition file not found
(eval):1: _rm: function definition file not found
(eval):1: _rm: function definition file not found
_sudo 및 _module에 대해 비슷한 메시지를 보았습니다.
저는 기본 파일 시스템이 nfs에 있는 시스템의 여러 스크린 세션에서 zsh(5.0.2)와 oh-my-zsh를 사용하고 있습니다. 로그인 할 때마다 screen -xrR
자동으로 screen 세션에 연결됩니다..zprofile
hostname
로그인할 때마다 $HOME/.zcompdump 및 $HOME/.zompdump--5.0.2 두 개의 파일이 생성됩니다. 그것들을 제거해도 아무런 차이가 없습니다.
답변1
이는 FPATH
변수나 fpath
. 이러한 변수 중 하나의 값을 확인하십시오. 이는 zsh 로드 기능에 대한 디렉토리 목록이어야 합니다.
변수 FPATH
및 fpath
는 서로 관련되어 있습니다(예: PATH
및 path
). 한 변수를 변경하면 다른 변수에도 영향을 줍니다. 대문자 FPATH
는 콜론으로 구분된 디렉터리 목록을 포함하는 문자열입니다. 소문자는 fpath
디렉터리 배열입니다.
이러한 이름이 변수로 사용될 수 있는 위치가 있는지 시작 스크립트를 확인하세요. 변수 이름 목록 확인놓다또는사용된zsh( man zshparam
)를 통해 다른 목적으로 아무것도 사용하지 않는지 확인하세요.
완성 기능은 자동으로 로드됩니다. 즉, 처음 사용할 때 로드됩니다. 예를 들어, 셸 인스턴스에서 완료 작업을 완료하면 더 이상 볼 수 없습니다. 작업이 작동 _main_complete: function definition file not found
했지만 _main_complete
이 메시지 처리가 중지되면 뭔가 이상한 일이 발생한 것입니다.