Zsh下配置Docker命令补全


纸上得来终觉浅,绝知此事要躬行。

Zsh下配置Docker命令补全


MacOS 系统下,使用 oh-my-zsh 基本上可以补全绝大多数的常用命令,但是比如我们自己额外安装的命令是不会自动提示命令参数以及补全信息的,这就导致比较尴尬了。

今天我这里说的,主要是如何补全 Docker 以及其附属的命令组合。因为 Zsh 中并没有对应的补全提示信息,导致使用非常的蹩脚,而且 oh-my-zsh 的扩展中还没有带对应 Docker 命令的补全插件,惜败。

  • 配置 ZSH 补全扩展
# 如果你使用oh-my-zsh需要clone仓库到oh-my-zsh仓库
$ git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions

# 并且在.zshrc中开启自动完成插件
$ vim ~/.zshrc
plugins=(… zsh-completions)

# 然后重载zsh配置
$ autoload -U compinit && compinit
  • 补全 Docker 相关命令
# 创建对应的目录
$ mkdir -p ~/.zsh/completion

# 从docker安装目录中获取补全插件
$ ll /Applications/Docker.app/Contents/Resources/etc
-rw-r--r--@ 1 Escape  admin    13K  8 27 19:44 docker-compose.bash-completion
-rw-r--r--@ 1 Escape  admin    19K  8 27 19:44 docker-compose.zsh-completion
-rw-r--r--@ 1 Escape  admin    12K  8 27 19:44 docker-machine.bash-completion
-rw-r--r--@ 1 Escape  admin    13K  8 27 19:44 docker-machine.zsh-completion
-rwxr-xr-x@ 1 Escape  admin   105K  8 27 19:44 docker.bash-completion
-rwxr-xr-x@ 1 Escape  admin    49K  8 27 19:44 docker.fish-completion
-rwxr-xr-x@ 1 Escape  admin   123K  8 27 19:44 docker.zsh-completion

# 配置到zsh配置目录中
$ cp /Applications/Docker.app/Contents/Resources/etc/docker.zsh-completion ~/.zsh/completion/_docker
$ cp /Applications/Docker.app/Contents/Resources/etc/docker-compose.zsh-completion ~/.zsh/completion/_docker-compose
$ cp /Applications/Docker.app/Contents/Resources/etc/docker-machine.zsh-completion ~/.zsh/completion/_docker-machine

# 重载zsh配置
$ docker image
image   -- Manage images
images  -- List images
import  -- Import the contents from a tarball to create a filesystem image

当然,为了方便起见,还是讲对应的命令放到 ~/.zshrc 脚本中。之后,再启动终端的时候,就会自动加载 ~/.zsh 目录下的 Docker 命令补全扩展了。

$ vim ~/.zshrc
autoload -Uz compinit && compinit -i
......

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !