![Bash/zsh 완료를 위한 환경 변수 설정](https://rvso.com/image/1628432/Bash%2Fzsh%20%EC%99%84%EB%A3%8C%EB%A5%BC%20%EC%9C%84%ED%95%9C%20%ED%99%98%EA%B2%BD%20%EB%B3%80%EC%88%98%20%EC%84%A4%EC%A0%95.png)
bash/zsh 완성과 함께 gnu pass를 사용하고 있습니다. 이는 내가 입력할 때 pass a[TAB]
쉘이 로 시작하는 사용 가능한 비밀번호를 제안한다는 것을 의미합니다 a
.
두 개의 gnu-pass 디렉토리가 있습니다. 기본 디렉토리가 아닌 디렉토리를 사용하려면 PASSWORD_STORE_DIR
. 쉘 완료를 얻으려면 export PASSWORD_STORE_DIR=~/.password-store-non-default
정상적으로 pass를 사용해야 합니다.
두 디렉토리 사이를 자주 변경해야 하기 때문에 이는 귀찮은 일입니다.
해당 변수를 설정하고 완성을 제공한 다음 해당 변수를 원래 값으로 다시 변경하는 별칭이나 셸 명령을 만들 수 있는 방법이 있습니까?
예를 들어
alias otherpass=...
otherpass a[TAB]
다른 설정 없이 완료를 제공합니다 PASSWORD_STORE_DIR
.
답변1
Zsh에서는 다음과 같이 간단히 키보드 단축키를 바인딩할 수 있습니다.
# Bind the command to Ctrl-P.
bindkey '^P' complete-password
# Create a completion widget for the command.
zle -C complete-password complete-word complete-password
# Create a function to implement the widget.
complete-password() {
export PASSWORD_STORE_DIR=~/.password-store-non-default
_main_complete $@
unset PASSWORD_STORE_DIR
}
그런 다음 키를 누르면 CtrlP기본이 아닌 비밀번호 저장으로 완료가 수행됩니다. ( Tab누를 필요가 없습니다.)