On 03/29/2015 11:39 PM, Han Pingtian wrote: > Hi, > > Although in _ip() the "link_show_cmds" is defined to > > 188 local -a link_show_cmds > 189 _regex_words link-show-commands 'link show commands' \ > 190 'dev:specify device:$subcmd_dev' \ > 191 'up:limit display to running devices' > 192 link_show_cmds=("(" $subcmd_dev "|" ")" "$reply[@]" "#" ) > 193 > > but the device cannot be completed after "ip link show dev": > > % ip link show dev > link show commands > dev -- specify device > up -- limit display to running devices > > Only "dev" and "up" listed. It looks like something wrong? > > Thanks! > So if you revert my change to the array subcmd_dev, completing after dev works. But completing after `ip link set lo' or virbr0-nic, "fails to parse the previous word." I can't seem to find a pattern that works in both cases, but adding the previous line back allows completing after: `ip link show dev'. But after the argument for `dev', the option `up' is no longer show. Hopefully someone with better knowledge of the _regex_* functions could help.