Zsh 완료, Shift-Tab 활성화

Zsh 완료, Shift-Tab 활성화

zsh에서 가능한 완료 항목 메뉴가 표시될 때 이를 사용하여 이전 완료 항목에 액세스할 수 있기를 원합니다 shift-tab. 이전 완료 항목에 액세스하는 데 사용되는 키를 제어할 수 있는 옵션이 있습니까?

그렇다면 ~/.zshrc 이를 설정하려면 내 파일에 무엇을 추가해야 합니까?

현재는 화살표 키를 사용하여 완성 메뉴를 탐색할 수 있지만 화살표 키가 제자리에 있지 않고 사용하기 어색하기 때문에 이 작업을 좋아하지 않습니다.

답변1

편집기 명령을 키맵 reverse-menu-complete에 바인딩하려고 합니다 .menuselect

bindkey -M menuselect '^[[Z' reverse-menu-complete

이식 가능한 이스케이프 시퀀스가 ​​어떤 것인지 잘 모르겠습니다 . 따라서 배열을 사용하여 올바르게 바인딩하는 ^[[Z방법이 있는지 확인하기 위해 terminfo(5)를 확인하는 것이 좋습니다 .$terminfo

menuselect모듈을 로드한 zsh/complist후에 키맵을 사용할 수 있습니다 . 로 완성 시스템을 구성하면 compinstall일반적으로 처음으로 무언가를 완료할 때 이 모듈이 자동으로 로드됩니다. 해당 바인딩을 귀하의 바인딩에 추가하려면 ~/.zshrc먼저 모듈을 수동으로 로드해야 합니다.

zmodload zsh/complist

답변2

허용되는 답변은 실제로 나에게 적합하지 않습니다. zsh에서 메뉴 완성(설정)을 사용하려고 하면 zstyle ':completion:*' menu select'충돌이 발생합니다.zmodload zsh/complist.zshrc

name clash when adding ZLE function `menu-select'

설정하지 않으면 zstyle ':completion:* menu select아무 작업도 수행되지 않으며(작업을 완료하는 데 메뉴가 사용되지 않기 때문에), 포함하지 않으면 zmodload...설정이 적용되지 않습니다.

정확하고 간단한 설정은 다음과 같습니다.

bindkey '^[[Z' reverse-menu-complete

이게 효과가 있어둘 다완성 메뉴와 "인라인" 완성 제안을 활성화하면!

관련 정보