I just implemented zsh
tab-completion functionality for sysdig
:
https://raw.githubusercontent.com/dkogan/sysdig/master/scripts/completions/zsh/_sysdig
The patch was merged to sysdig
upstream.
It's fairly nice, and makes sysdig
easier to use for those who don't yet have
all the knobs memorized, such as myself. I complete on
- commandline options
- commandline option arguments
- chisel names
- chisel arguments
- filter field names
Some of those are hard-coded in the completion script, and some are reported by
the sysdig
executable itself. Having written this I'm now acutely aware of
missing similar functionality in tcpdump
and perf
. Both of those have some
tab completion, but do not complete on event types. If they did, writing things
like tcpdump
filters would be much easier. That's a good thing to add at some
point.
Another interesting discovery is that it is apparently normal for zsh
completion scripts to live in the zsh
repository, not in the repository of
the thing being completed. So in this case I apparently went against to grain by
contributing my script to sysdig
instead of zsh
. This feels right, though.
But if I make those additions to tcpdump
and/or perf
completions, those will
go to the zsh
people.