Bash/zsh 완료를 위한 환경 변수 설정

Bash/zsh 완료를 위한 환경 변수 설정

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누를 필요가 없습니다.)

관련 정보