如何在 Powerline-Plain [Bash-it] 主题的提示符上显示彩色主机名?

How can I show colored hostname on the prompt in Powerline-Plain [Bash-it] theme?

提问人:KaMZaTa 提问时间:7/30/2017 更新时间:10/4/2022 访问量:2034

问:

我想在 Powerline-Plain [Bash-it] 主题的提示开头显示主机名。

类似于:MYHOSTNAME root /var/www

这是默认外观:root /var/www

我想为每个不同的主机名分配不同的随机和固定颜色。

电力线 bash-it

评论


答:

0赞 Drasz 1/12/2018 #1

\h 是在 bash 提示符中显示主机名所需的内容。为了使它以某种颜色显示,您需要将该部分包裹在您喜欢的颜色代码中。例如,像这样,您可以在 root 时定义颜色 RED。

USERCOLOR='\[\e[1m\]'
NORMCOLOR='\[\e[m\]'
# If I am root, set the prompt to bright red
if [ ${UID} -eq 0 ]; then USERCOLOR='\[\e[1;31;7;47m\]'; fi
PS1="[$USERCOLOR\h$NORMCOLOR]\\n\#-\\$> "
-1赞 nwinkler 1/6/2020 #2

Bash-it Powerline 文档中所述,可以使用该名称将主机名添加到 Powerline 提示符:hostname

提示的内容可以“重新排序”,所有“段”(每条信息)都可以占据任何位置。目前可用的细分市场有:

  • aws_profile- 显示AWS_PROFILE环境变量的当前值
  • battery- 电池信息(您需要启用电池插件)
  • clock- 当前时间,采用 HH:MM:SS 格式
  • cwd- 当前工作目录,包括完整的文件夹层次结构 (c.f. wd)
  • hostname- 计算机的主机名
  • in_vim- 如果从 vim 在 :terminal 中运行,则显示标识符
  • k8s_context- 显示当前的 kubernetes 上下文
  • last_status- 上次运行命令的退出状态
  • python_venv- Python 虚拟环境信息(支持 virtualenv、venv 和 conda)
  • ruby- 当前 ruby 版本(如果使用 rvm)
  • node- 当前节点版本(仅支持 nvm)
  • scm- 版本控制信息,git
  • user_info- 当前用户
  • wd- 工作目录,类似于 cwd,但不显示完整的文件夹层次结构,只显示您当前所在的目录。
  • shlvl- 显示当前 shell 级别(基于 SHLVL 环境变量),但前提是您不在 root shell 中
  • dirstack- 显示当前目录堆栈级别(基于 DIRSTACK 环境变量),但前提是堆栈不为空
  • history_number- 显示当前历史记录
  • command_number- 显示当前命令编号

可以定义一个变量来设置提示段的顺序:

POWERLINE_PROMPT="user_info scm python_venv ruby cwd"

基于此,您可以将段添加到变量中(例如,在您的 Bash 配置文件中):hostnamePOWERLINE_PROMPT

export POWERLINE_PROMPT="hostname user_info scm python_venv ruby cwd"

这会将主机名添加为提示中的第一个条目。

Bash-it 中目前没有为提示片段分配随机颜色的功能。

0赞 KaMZaTa 10/4/2022 #3

只需覆盖文件中的变量并添加如下内容:POWERLINE_PROMPT.bashrchostname

export POWERLINE_PROMPT=${POWERLINE_PROMPT:="hostname user_info scm python_venv ruby node cwd"}