function __fish_get_vmctl_vms for line in (vmctl status | string match -e -v "MAXMEM"); set a (string split " " $line) and printf "%s " $a[-1] end end complete -c vmctl -xa 'console create load log reload reset start status stop pause unpause send receive' -n 'not __fish_seen_subcommand_from list console create load log reload reset start status stop pause unpause send receive' complete -c vmctl -n '__fish_seen_subcommand_from console reload reset start status stop pause unpause send receive' -xa (__fish_get_vmctl_vms)