#!/bin/zsh autoload -U add-zsh-hook __keep_preexec() { KEEP_META_command="$1" KEEP_META_tty=${KEEP_META_tty:-$(tty)} } add-zsh-hook preexec __keep_preexec keep() { if [[ $ZSH_SUBSHELL -le 2 ]]; then export KEEP_META_command fi export KEEP_META_tty command keep "$@" } alias @='keep --save' alias @@='keep --get' # Shell completions . <(command keep --generate-completion zsh) ___keep_complete() { local mode="$1" local -a words words=(keep "$mode" "${words[@]:1}") ((CURRENT++)) _keep } ___keep_save_completion() { ___keep_complete --save; } ___keep_get_completion() { ___keep_complete --get; } compdef ___keep_save_completion @ compdef ___keep_get_completion @@