이름이 지정된 디렉터리 자동 완성

이름이 지정된 디렉터리 자동 완성

다음 세션에서 볼 수 있듯이 자동 완성 기능은 처음으로 명명된 디렉터리를 사용할 때까지 작동하지 않는 것 같습니다.

% 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인수가 없으면 명명된 디렉터리 해시 테이블이 인쇄됩니다.

관련 정보