You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Zsh中ssh补全的users和hosts标签描述?

修改Zsh SSH补全分组标签描述

当前问题

我用以下Zsh配置实现SSH补全项分组:

zstyle ':completion:*:*:*:*:descriptions' format '%F{green}-- %d --%f'
zstyle ':completion:*' group-name ''

zstyle ':completion:*:ssh:*:users' users alice bob eve
zstyle ':completion:*:ssh:*:hosts' hosts lenovo hp asus

执行ssh按后,补全显示如下:

$ ssh <TAB>
-- remote host name --
asus    hp      lenovo
-- login name --
alice   bob     eve

我想把标签remote host name改成hosts,login name改成users,但尝试以下命令没有效果:

zstyle ':completion:*:ssh:*:hosts' group-name 'hosts'
zstyle ':completion:*:ssh:*:hosts' description 'hosts'

解决方案

需要针对SSH补全的users和hosts上下文分别设置description样式,同时保留原有的基础分组配置。完整配置如下:

# 基础补全描述格式与分组设置
zstyle ':completion:*:*:*:*:descriptions' format '%F{green}-- %d --%f'
zstyle ':completion:*' group-name ''

# 自定义SSH补全的用户和主机列表
zstyle ':completion:*:ssh:*:users' users alice bob eve
zstyle ':completion:*:ssh:*:hosts' hosts lenovo hp asus

# 覆盖默认标签描述
zstyle ':completion:*:ssh:*:hosts' description 'hosts'
zstyle ':completion:*:ssh:*:users' description 'users'

修改后重新加载Zsh配置(执行source ~/.zshrc),再次按补全ssh时,显示就会变成:

$ ssh <TAB>
-- hosts --
asus    hp      lenovo
-- users --
alice   bob     eve

说明

之前的尝试无效是因为只针对hosts设置了description,且没有对users做同样配置;另外group-name设置为空的作用是让分组直接使用description的文本作为标签,所以只需针对对应补全上下文修改description即可覆盖Zsh内置的默认描述。

内容的提问来源于stack exchange,提问作者nyg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:25:14