如何在 zsh 上禁用 kubectl 自动完成功能。我在osx上运行并且自动完成速度很慢(可能是因为它们必须调用远程集群API(,我不希望它们再出现。
首先,默认情况下不启用kubectl
命令中的自动完成功能。您需要事先启用它。要禁用它,最好只是撤消您为启用它而采取的步骤。
如何在zsh
环境中为kubectl
启用自动完成:
Zsh 的 kubectl 完成脚本可以使用命令
kubectl completion zsh
生成。在 shell 中获取完成脚本可以启用 kubectl 自动完成。若要在所有 shell 会话中执行此操作,请将以下内容添加到
~/.zshrc
文件中:$ source <(kubectl completion zsh)
-- Kubernetes.io:启用外壳自动完成
以下示例:
命令$ source <(kubectl completion zsh)
:
- 可以在 shell 中自行运行,以便在当前会话中自动完成
-
可以放入
~/.zshrc
文件,以便在用户每次登录时加载
应用上述解决方案之一后,它应该提供可用的选项TAB
按键以键入终端,如下所示:
somefolder% kubectl get pod[TAB PRESSED HERE!]
poddisruptionbudgets.policy pods.metrics.k8s.io podsecuritypolicies.policy
pods podsecuritypolicies.extensions podtemplates
如何在zsh
环境中禁用kubectl
的自动完成:
如上所述,默认情况下不启用自动完成。它可以被禁用:
- 为当前会话创建时:
- 创建新会话(示例
zsh
(
- 创建新会话(示例
- 当编辑
~/.zshrc
文件时:- 删除:从
~/.zshrc
文件中source <(kubectl completion zsh)
。 - 创建新会话(示例
zsh
(
- 删除:从
之后,kubectl
的自动完成应该不起作用。
如果您对此有任何疑问,请告诉我。