powerline-shell
1.1、powerline-shell简介
是什么 ?:powerline-style prompt generator for zshbashfish, and tcsh
开发语言:Python
源码仓库:https://github.com/b-ryan/powerline-shell
1.2、通过pip安装powerline-shell
pip install powerline-shell
1.3、通过编译源码安装powerline-shell

step1、安装依赖

安装时gitpipCPython
运行时CPython

step2、安装powerline-shell

pip install git+https://github.com/b-ryan/powerline-shell

说明:上面这个命令等同于如下的命令:

git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install
1.4、安装powerline-fonts字体

某些配置可能会用到这种字体。

1.5、bash中使用powerline-shell

step1、在~/.bashrc中加入如下内容

function _update_ps1() {
    PS1=$(powerline-shell $?)
}

if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

step2、使上面的配置生效

source ~/.bashrc

注意:如果您的操作系统是macOS, 您应该修改的配置文件是~/.bash_profile,而不是~/.bashrc

1.6、zsh中使用powerline-shell

step1、在~/.zshrc中加入如下内容

function powerline_precmd() {
    PS1="$(powerline-shell --shell zsh $?)"
}

function install_powerline_precmd() {
  for s in "${precmd_functions[@]}"; do
    if [ "$s" = "powerline_precmd" ]; then
      return
    fi
  done
  precmd_functions+=(powerline_precmd)
}

if [ "$TERM" != "linux" ]; then
    install_powerline_precmd
fi

step2、使上面的配置生效

source ~/.zshrc
1.7、fish中使用powerline-shell

step1、在~/.config/fish/config.fish中加入如下内容

function fish_prompt
    powerline-shell --shell bare $status
end

step2、使上面的配置生效

source ~/.config/fish/config.fish
1.8、~/.config/powerline-shell/config.json

~/.config/powerline-shell/config.jsonpowerline-shell的配置文件。

默认的,这个配置文件是不存在的,您可以通过如下命令生成:

mkdir -p ~/.config/powerline-shell
powerline-shell --generate-config > ~/.config/powerline-shell/config.json

现在您可以对它进行编辑了。

1.9、直接修改powerline-shell的源码

注意:如果通过修改~/.config/powerline-shell/config.json配置文件无法做到您要的效果,您才考虑直接修改源码。

定位powerline-shell的安装目录,如果是使用pip安装的,通过如下命令就可以获得:

pip show powerline-shell

powerline-shell的安装目录是${Location}/powerline_shell

${Location}/powerline_shell/segments目录下存放的就是各种情形下的配置 (Python脚本), 直接修改这些Python脚本即可。

1.9.1、隐藏某个segment

如果您只是想隐藏某个segment,比如,您不想显示您的主机名称,您可以直接将${Location}/powerline_shell/segments/hostname.py中的最后3行中的powerline.append(host_prompt, powerline.theme.HOSTNAME_FG, powerline.theme.HOSTNAME_BG)语句注释掉即可。

您只要是不想展示哪个segment,就把对应的powerline.append的语句注释掉即可。

1.9.2、给git本地仓库加上分支符号

${Location}/powerline_shell/segments/git.pybranch = branch_info['local']修改成branch = u'\uE0A0 ' + branch_info['local'], 如下:

效果图: