Bash가 완료 옵션을 너무 지능적으로 제한하는 것을 막는 방법은 무엇입니까?

Bash가 완료 옵션을 너무 지능적으로 제한하는 것을 막는 방법은 무엇입니까?

나는 종종 다음과 같은 작업을 할 때 bash가 방해가 되는 상황에 직면합니다.

cmake -DCMAKE_INSTALL_PREFIX=/usr/<TAB><TAB>

cmake분명히 bash는 허용될 수 있는 경로를 보지 못하는 것 같습니다 . 이해가 안 됩니다.아무것완료하는 것이 좋습니다. 예를 들어 Ubuntu 14.04에서는 bash 를 사용하여 이런 일이 발생합니다 4.3.42. bash가 있는 Ubuntu 12.04 와 수동으로 컴파일된 bash가 있는 BLFS 4.2.25에서는 이런 일이 발생하지 않습니다 4.3.39.

해결 방법으로 ls줄 시작 부분에 삽입 하고 =bash가 완료 옵션을 표시하기 전에 경로 사이에 공백을 추가해야 했습니다. 이제 전체 경로를 작성한 후 추가된 해결 방법을 제거하는 것을 잊지 않아도 됩니다.

이 인텔리전스 없이 실행되도록 bash를 설정하려면 어떻게 해야 합니까? 즉, 다른 제안 사항이 없으면 항상 경로를 제안합니까?

답변1

Bash는 하위 디렉터리가 포함된 cmake디렉터리를 찾고 있지만 아무것도 찾지 못합니다. 이 상황에서 파일 이름 완성을 위한 빠른 수정 방법은 등호 뒤에 공백을 추가한 다음 제거하는 것입니다.-DCMAKE_INSTALL_PREFIX=usr

컨텍스트에 관계없이 readline 함수( 기본적으로 + complete-filename에 바인딩되어 있음 )를 호출하여 항상 Alt파일 이름을 완성 할 수 있습니다./

나는 Bash에 보편적인 완성 대체 기능이 없다고 생각합니다. 각 개별 완성 기능에 이를 추가해야 합니다. (아니면 zsh로 전환하세요.)

관련 정보