前回はサブコマンドとファイル名を手抜き補完に続いて
今回はss
コマンドの補完関数を作成しました。
作成したものはgithubにも公開してます。
事の発端
twitterを見ていて、下記のようなtweetを発見。
fedoraのnetstatのmanを見てて気付いたけど、netstatは時代遅れだからssを使いなって書いてあるね。
— Masami Ichikawaさん (@masami256) 5月 4, 2012
- 確かに自宅サーバのFedora16で
man netstat
を見てみるとそんなような事が書いてあるThis program is obsolete. Replacement for netstat is ss. Replacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr.
- ssを使ってみる。なかなか良い感じ
- zshでオプション補完されないし、使い方もよく分からん
- 補完関数を作ろう
という感じで、ss
コマンドの補完関数作成に着手。
ssコマンドのオプションを確認
補完関数を作成する前に、まずss -h
などでどんなオプションがあるのかを確認。
サブコマンドはなく、非常にシンプルな利用方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
完成形
ss
のようにオプションだけしかない場合は、定型フォーマットで書いていくだけです。
出来上がった_ss
を$fpath
においてexec $SHELL
で利用出来るようになります。
またzsh補完関数にはcompletion-style-guideという
書式スタイルのガイドがあるので、それに従った形で書いています。