# Helpers function exists() { which $1 &>/dev/null; } # kill process function peco-kill-process() { local procs procs=$(ps ax -o pid,user,time,command | peco --query "$LBUFFER" | awk '{print $1}') if [ -n "${procs}" ]; then echo "${procs}" | xargs kill fi } alias killp='peco-kill-process' # load gpg-key function peco-load-gpg-key() { local keys keys=$({ for keyid in $(vault list secret/gpg-key | tail -n+3); do local uid=$({gpg --with-colons -k "${keyid}" 2>/dev/null || echo ""} | awk -F: '$1=="uid" {print $10; exit}') [[ -n $uid ]] || continue # Key is not present on machine echo "${uid} (${keyid})" done } | peco --query "$LBUFFER") [[ -n $keys ]] || return sed -E 's/.*\((.*)\)/\1/' <<<"${keys}" | xargs vault-gpg } alias pgpgkey='peco-load-gpg-key' # load ssh-key function peco-load-ssh-key() { local keys keys=$(vault list secret/ssh-key | tail -n+3 | peco --query "$LBUFFER") if [ -n "${keys}" ]; then echo "${keys}" | xargs vault-sshadd fi } alias psshkey='peco-load-ssh-key' # select history function peco-select-history() { local tac exists gtac && tac="gtac" || { exists tac && tac="tac" || { tac="tail -r"; }; } BUFFER=$(fc -l -n 1 | eval $tac | peco --query "$LBUFFER") CURSOR=$#BUFFER # move cursor zle -R -c # refresh } zle -N peco-select-history bindkey '^R' peco-select-history # vim: set ft=zsh :