다음 세션에서 볼 수 있듯이 자동 완성 기능은 처음으로 명명된 디렉터리를 사용할 때까지 작동하지 않는 것 같습니다.
% setfoo() { foo=/etc; }
% setfoo
% cd ~fo<Tab> # doesn't autocomplete ~foo
% ls ~foo # this works
% cd ~fo<Tab> # now it does autocomplete ~foo
처음부터 자동완성을 활성화하는 방법이 있나요?
노트:
foo
함수 내에서가 아닌 명령줄에서 직접 설정하면 예상대로 작동합니다.setfoo() { foo=/etc; true ~foo; }
또한 작동하지만 더 적합한 솔루션을 찾고 있습니다.
답변1
hash -d
명시적인 정의를 사용하여 디렉터리 이름을 지정할 수 있습니다 .
hash -d foo=/etc
참고: 여기에는 해당 매개변수가 설정되어 있지 않습니다.
% hash -d foo=/etc
% echo $foo
% echo ~foo
/etc
hash -d
인수가 없으면 명명된 디렉터리 해시 테이블이 인쇄됩니다.