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

如何配置Powerline在本地Shell提示符中显示主机名

你改了only_if_ssh: false仍不生效,是因为默认shell主题的主机名段除了这个参数,还有两层判定逻辑没处理,按下面步骤配就行:

配置步骤
  • 不要改系统全局路径下的powerline文件,优先改用户目录下的配置:shell对应的主题文件路径是~/.config/powerline/themes/shell/default.json,如果你之前启用了自定义主题,就改对应自定义主题的文件就行。
  • 先找配置里的hostname段,很多默认配置会把这个段整个放在仅SSH环境触发的条件块里,这种情况下你改段内的参数根本不会生效,得把这个段移到外层,和用户名、当前工作目录这些常驻显示的段放在同一层级。
  • 调整主机名段的参数,删掉多余的条件判定字段,按下面的内容写就可以:
{
  "function": "powerline.segments.common.net.hostname",
  "priority": 10,
  "args": {
    "only_if_ssh": false,
    "show_full": false
  }
}

把priority设成10,是为了避免终端宽度不足的时候主机名被优先隐藏,刚好匹配你要始终显示的需求。

  • 保存配置之后执行powerline-daemon --replace重载powerline的后台服务,新开bash或者fish终端就能看到本地提示符里的主机名了。
踩坑排查
  • tmux用的powerline主题和shell主题是两套完全独立的配置,tmux能正常显示主机名,是因为tmux主题默认没加SSH环境的判定限制,和shell的配置互不影响,别搞混。
  • 如果改完还是不显示,执行powerline-config shell listerrors查下配置报错,JSON少写逗号、括号不匹配是最常见的问题。
  • 别去改/usr/share/powerline/下面的全局默认配置,用户目录下的配置优先级比全局高,你改了全局也会被用户配置覆盖,而且后续系统更新包的时候会直接把全局配置重置,白改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:33:00