diff --git a/share/completions/gpg.fish b/share/completions/gpg.fish index 1ecfda228..c3638bc25 100644 --- a/share/completions/gpg.fish +++ b/share/completions/gpg.fish @@ -21,23 +21,25 @@ function __fish_complete_gpg_user_id -d "Complete using gpg user ids" # gpg doesn't seem to like it when you use the whole key name as a - # completion, so we skip the part and use it a s a + # completion, so we skip the part and use it as a # description. # It also replaces colons with \x3a gpg --list-keys --with-colon | cut -d : -f 10 | sed -ne 's/\\\x3a/:/g' -e 's/\(.*\) <\(.*\)>/\1'\t'\2/p' end function __fish_complete_gpg_key_id -d 'Complete using gpg key ids' - # Use user_id as the description - set -l lastid + # Use user id as description + set -l keyid gpg --list-keys --with-colons | while read garbage switch $garbage + # Extract user ids case "uid*" - echo $garbage | cut -d ":" -f 10 | sed -e "s/\\\x3a/:/g" | read lastid - case "*" - echo $garbage | cut -d ":" -f 5 | read fingerprint + echo $garbage | cut -d ":" -f 10 | sed -e "s/\\\x3a/:/g" | read uid + printf "%s\t%s\n" $keyid $uid + # Extract key fingerprints (no subkeys) + case "pub*" + echo $garbage | cut -d ":" -f 5 | read keyid end - printf "%s\t%s\n" $fingerprint $lastid end end