我在更好用的kubectl里提到,fish shell针对kubectl自动补齐,社区有个项目fish-kubectl-completions可以支持,但是我之前用的时候非常慢,经常需要十几秒才能tab出来结果,试着调试过几次,没找到原因(可能是complete注册太多?),所以姑且先用了zsh。

zsh默认不支持命令行基于历史自动补齐(用过fish的人都知道这个多好用),社区有个插件zsh-autosuggestions,能满足一定的基于历史自动补齐,但是它不完善的一点是,它的历史是所有控制台共享的,因此你在console1里敲完命令,切到console2里,如果新敲命令前缀和console1的命令一样,那么会提示console1的命令历史。实际体验很糟糕。

历史命令自动补齐还是fish好用。

那么,只要把fishshell的kubectl自动补齐功能支持了,就还可以继续欢乐的用fish了。

我基于fish-kubectl-completions重新写了一个slim版的fish-kubectl-completions-slim,新版基本上tab时不需要等待,基本秒补齐,代码也很少,五十几行,基本覆盖了常用命令。

欢迎fish用户试用。

$ mkdir -p ~/.config/fish/completions
$ cd ~/.config/fish
$ git clone https://github.com/silenceshell/fish-kubectl-completions-slim.git
$ cp ./fish-kubectl-completions-slim/kubectl.fish completions/

Ref: