首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Cobra 命令自动补全指北

用过类 Unix 系统中 Unix shell(Shell/Bash/Zsh) 的同学都应该对 TAB 键印象深刻,因为它可以帮忙补全或提示后续的命令,用户不用记住完整的命令,只需输入前几个字符,按 TAB 键,就会提示后续的命令供用户选择,用户体验极佳。目前流行的一些使用 Go 语言开发的 CLI 工具,如 kubectl 和 helm,他们也都有 completion 也就是命令自动补全功能,通过将 source <(kubectl completion zsh) 加入 .zshrc 文件中,就可以在每次启动 shell 时自动加载自动补全脚本,之后就可以体验到与原生 shell 相同的自动补全功能了。这些 CLI 工具,都是基于 Cobra[1] 库开发,命令自动补全功能也是该库提供的一个功能,本篇文章就来讲讲如何使用 Cobra 实现命令自动补全的。

02

终极Shell——Zsh

[撰文 / Kardinal] http://linuxtoy.org/archives/zsh.html 子曾经曰过,zsh: The last shell you’ll ever need! Z 是最后一个字母,所以它是终极 Shell。我曾经搜索到一个比较各种 Shell 的文章,Zsh 交互性是 A + 级别的,远高于其它 Shell。在编程方面,Zsh 是 A 级的吧,也是最高的。只是不知道出于什么原因,Zsh 被严重的低估了。 大多数的 linux 用户比较偏爱 Bash,因为大多数的发行版默认的就是它。平心而论,Bash 确实比 Csh 之流的好用多了。不过 Bash 也有很多地方不尽人意,像自动补全的功能不够强大,定位较长路径不够方便等。 后来我使用 Zsh。如果不调整一些必要的配置的话,Zsh 甚至还不如 Bash 好用。这也是很多人尝试过并放弃过的原因。 Zsh 配置文件试用 (内附讲解) 不熟悉 Zsh 的人,对 Zsh 最深刻的印象应该就是它的命令提示符了。它支持右侧对齐的提示符,并且可以配置成这个样子的: 不过我还是喜欢比较简单的样式。 Zsh 的 自动补全功能 十分的强大,如图所示: 它可以自动补全命令、参数、文件名、进程、用户名、变量、权限符等。 Zsh 还有一个贴心的功能: 路径别名 。假设有一个很长的路径,例如 /home/lighttpd/html,可以把这个路径命名为~WWW。 Zsh 可以使用 Emacs 风格的键绑定 ,习惯 Bash 键绑定的朋友无需重新适应。Zsh 兼容大多数主流 Shell,像 Bash、Csh 等。 错误校正 — directory — 是补全类型提示

02
领券