Zsh 완료는 `_`와 `-` 사이를 구분하지 않습니다.

Zsh 완료는 `_`와 `-` 사이를 구분하지 않습니다.

밑줄을 입력하는 대신 대시를 입력하고 zsh 자동 완성 기능이 대시 또는 밑줄로 처리하도록 하고 싶습니다.

내장된 zsh 기능, oh-my-zsh 등을 통해 이를 달성할 수 있습니까? 이것이 전역적으로 가능합니까? 그렇지 않다면 단일 자동 완성 기능을 사용할 수 있습니까?

여담: 현재 가능한 완성 기능을 제공할 때 밑줄만 대시로 변환하는 bashmark용 사용자 정의 완성 기능이 있으며 이를 교체/개선하고 싶습니다.

답변1

매뉴얼 페이지에는 zshcompsys대소 문자를 구분하지 않는 완성을 얻는 유사한 예가 있습니다.

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

이것을 make -_동등한 것으로 변경하면 원하는 대로 작동하는 것 같습니다.

zstyle ':completion:*' matcher-list '' 'm:{-_}={_-}'

또는 이것을 첫 번째 예제에 추가하고 대소문자를 구분하지 않고 완성할 수도 있습니다.

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

관련 정보