zsh용 XCode Command-T 스타일 자동 완성

zsh용 XCode Command-T 스타일 자동 완성

방금 vim용 Command-T 플러그인을 사용하기 시작했는데 정말 좋습니다. 들어본 적이 없다면 다음과 같이 입력할 수 있습니다.

Sb

목록에서 Something.hs-boot를 선택하려면

src/project/Control/Whatever/Foobs.hs
src/project/Control/Whatever/Something.hs-boot
src/project/Control/Whatever/Something.hs

등등.

zsh와 비슷한 자동 완성 스타일을 사용할 수 있는지 궁금합니다. 나는 쉘 완성이 vim 완성만큼 광범위할 수 없다는 것을 이해합니다. 왜냐하면 쉘 완성은 아마도 문자를 입력할 때마다 전체 시스템을 검색해서는 안 되기 때문입니다. 그러나 최소한 내가 할 수 있는 유사한 완성이 있습니까? 유형

s/p/c/w/Sb<tab>

위와 비슷한 효과를 얻나요?

zsh에는 꽤 잘 프로그래밍 가능한 자동 완성 기능이 있다고 들었습니다. 하지만 제 shell-fu는 상당히 약합니다.

이거 어떻게 설정하는지 아시는 분 계신가요?

답변1

부분 경로를 완성하려면 완성 시스템을 초기화하는 것만으로도 충분합니다(적어도 내 시스템에서는 를 사용하여 zsh v4.3.17).

autoload -U compinit && compinit
zmodload zsh/complist

좀 더 화려하게 만들고 싶다면 일치하는 대소문자를 구분하지 않도록 설정할 수 있습니다.

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

업데이트 1:

Command-T 스타일 자동 완성을 수행할 수 있는지는 모르겠지만 ... zsh는 다음과 같이 해야 합니다.모두특히 하위 디렉터리/파일이 많은 곳에서는 즉시 이 작업을 수행하는 것이 불가능할 수 있습니다.

그러나 다음을 사용할 수 있습니다.

**/*thing <Tab>

**현재 디렉토리의 모든 파일 및 하위 디렉토리와 일치합니다 .

아이디어: 최신 파일 목록일 필요가 없다면 잠재적으로 locate(즉, 미리 계산된 파일 목록) 의 출력을 사용하는 완성 함수를 작성할 수 있습니다.

업데이트 2: https://github.com/junegunn/fzf#fuzzy-completion-for-bash-and-zsh

답변2

또 다른 흥미로운 대안은 다음과 같은 것을 사용하는 것입니다.유행.

관련 정보