Linux Mint 14에서 bash 4.2.37을 사용하고 있습니다.
을 입력하여 환경 변수 이름을 자동 완성하면 변수 Tab이름과 공백으로 확장됩니다.
변수의 값이 디렉토리 이름이면 변수 이름으로 확장하고 그 다음에 /
.
예를 들어, 내가 입력하면 :
$ ls $HOM<tab>
그것은 다음과 같이 확장됩니다.
$ ls $HOME _
여기서 _
커서의 위치를 표시합니다. 문제는 그때 보통 내가 입력 할 필요가 의미 내 홈 디렉토리에서 일부 파일이나 디렉토리의 이름을 계속 입력 할 것입니다 backspace다음과 /
.
나는 그래서 원하는 위가 확장 :
$ ls $HOME/_
전체 변수 이름을 입력했을 때도 마찬가지입니다. 이후 ls $HOME
에 tab공백을 추가하고을 추가하고 싶습니다 /
.
(물론 /
변수 값이 디렉토리 이름이 아닌 경우 변수 를 추가하고 싶지 않습니다.)
bash 명령을 통해 또는 내 업데이트를 통해 bash가 원하는 방식으로 작동하도록 지시 할 수있는 방법이 $HOME/.inputrc
있습니까?
참고 : 나는 tab내가 원하는 방식으로 행동 하는 방법을 구체적으로 찾고 있습니다. 다른 키 입력으로 동일한 동작을 수행하는 방법은 흥미로울 수 있지만 내 질문에 대답하지는 않습니다.
( /etc/profile.d/bash_completion.sh
와의 상호 작용이 원활하지 않아 시스템에서 사용 중지 했습니다 set -o nounset
. 빠른 실험에 따르면 이것이 내 질문과 관련이없는 것으로 나타납니다.)
또한 tcsh는 이것을 수행합니다. 환경 변수가 주어지면 디렉토리가 디렉토리를 참조하면 $FOOBAR
입력이 $FOOBA<tab>
확장됩니다 (공백 포함). 아니요, tcsh로 돌아가도록 설득하기에는 충분하지 않습니다. zsh도이 작업을 수행합니다.$FOOBAR/
$FOOBAR