Estoy usando gnu pass con finalización de bash/zsh. Esto significa que cuando escribo, pass a[TAB]
el shell sugiere qué contraseñas tengo disponibles a partir de a
.
Tengo dos directorios gnu-pass, cuando quiero usar el directorio no predeterminado, necesito configurar PASSWORD_STORE_DIR
. Para completar el shell, necesito export PASSWORD_STORE_DIR=~/.password-store-non-default
y luego usar pass como de costumbre.
Esto es molesto ya que frecuentemente necesito cambiar entre los dos directorios.
¿Hay alguna manera de crear un alias o un comando de shell que establezca esa variable, proporcione las terminaciones y luego vuelva a cambiar esa variable a su valor original?
Por ejemplo
alias otherpass=...
otherpass a[TAB]
Proporcionaría finalización sin establecer un archivo PASSWORD_STORE_DIR
.
Respuesta1
En Zsh, simplemente puedes vincularle un atajo de teclado, como este:
# 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
}
Luego, al presionar CtrlPse completará con el almacén de contraseñas no predeterminado. (No es Tabnecesario presionar).