跳转到主要内容

另一个bash/zsh自定义提示脚本

项目描述

Project Status: Active — The project has reached a stable, usable state and is being actively developed. CI Status coverage pyversions MIT License

GitHub | PyPI | 问题

jwodder-ps1 是另一个用于在 Bash 和 zsh 中自定义 Git-感知命令提示符的程序。与所有其他程序不同,我写了这个,所以它更好。

https://github.com/jwodder/ps1.py/raw/master/screenshot.png

功能

  • 让您知道您是否在 $MAIL 中有邮件

  • 显示 chroot、virtualenvConda 环境提示前缀

  • 如果当前目录路径过长,自动截断它

  • 显示当前 Git 仓库的状态(见下文)

  • 支持 Bash 和 zsh

  • 可选地仅输出 Git 状态,如果您想将其与自己的提示字符串结合使用

安装 & 设置

jwodder-ps1 需要 Python 3.9 或更高版本。您还需要一个 Bash 或 zsh shell 来设置程序,并且需要安装 git v1.7.10+ 来获取 Git 仓库的状态信息。

使用 pip 或类似工具安装 jwodder-ps1 命令,建议使用 pipx 安装来自 PyPI 的同名包。

如果您使用 Bash,请将其配置为使用 jwodder-ps1 作为提示符,在您的 ~/.bashrc 文件的末尾添加以下行

PROMPT_COMMAND="$PROMPT_COMMAND"'; PS1="$(jwodder-ps1 "${PS1_GIT:-}")"'

如果您使用 zsh,请在您的 ~/.zshrc 文件的末尾添加以下内容

precmd_jwodder_ps1() { PS1="$(jwodder-ps1 --zsh "${PS1_GIT:-}")" }
precmd_functions+=( precmd_jwodder_ps1 )

如果您只想使用脚本的 Git 状态部分并将其与您的提示符字符串结合,请将 PS1 赋值替换为您想要的提示符,在您想要 Git 状态字符串的地方插入 $(jwodder-ps1 --git-only "${PS1_GIT:-}")

根据 jwodder-ps1 的安装方式和您的 PATH 值,您可能需要使用 jwodder-ps1 可执行文件的完整路径。

配置 jwodder-ps1 后,打开一个新的 shell 并享受它!

如果 Git 集成导致您遇到麻烦(无论是由于某些东西损坏还是因为它运行得太慢),可以通过在命令行上运行 PS1_GIT=off 来暂时禁用它。

用法

jwodder-ps1 [<options>] [<git flag>]

jwodder-ps1 命令输出一行包含当前目录的样式提示字符串。默认情况下,样式化格式适用于 Bash 的 PS1 变量,但可以使用 --ansi--zsh 选项来更改格式。

jwodder-ps1 只接受一个可选参数。如果此参数为“off”,则禁用 Git 集成。如果为其他值或未指定,则启用 Git 集成。

选项

--ansi

直接显示输出格式

--bash

格式化输出以在 Bash 的 PS1 中使用(默认)

-G, --git-only

仅输出 Git 状态字符串(包括前导分隔符);如果没有在 Git 仓库中或命令行上给出“off”,则输出空行

--git-timeout SECONDS

如果运行 git status 花费的时间超过指定的秒数(默认:3),则禁用 Git 集成

--no-hostname

不在提示符字符串中包含本地主机名

-T THEME, --theme THEME

选择用于着色提示元素的主题。可用的主题有 dark(默认,用于与浅色背景上的深色文本一起使用)和 light(用于与浅色背景上的深色文本一起使用)。

--zsh

格式化输出以在 zsh 的 PS1 中使用

-V, --version

显示版本信息并退出

-h, --help

显示用法信息并退出

Git 状态符号

当在 Git 仓库内时,在提示符的末尾添加了一些符号,以显示当前 HEAD 和其状态。除了 @ 分隔符和 HEAD 本身外,当不相关时,将省略单个符号。从左到右,符号依次为

  • @ — 分隔符

  • + (加粗浅黄色) — 表示存在已隐藏的更改

  • HEAD 名称(浅绿色):当前分支的名称(如果有),或当前签出的标签的名称(如果有),或当前提交哈希的短形式。当仓库处于分离的 HEAD 状态时,此名称为浅蓝色。

    如果字符串过长,则会被截断。

  • +n(绿色)— HEAD 相对于上游领先多少个提交

  • -n(红色)— HEAD 相对于上游落后多少个提交

  • * — 表示工作树中是否有已暂存或未暂存的更改

    • 绿色:存在已暂存更改

    • 红色:存在未暂存更改

    • 加粗浅黄色:既存在已暂存又存在未暂存更改

  • +(加粗红色)— 表示工作树中存在未跟踪文件

  • [STATE](洋红色)— 如果有任何活动,显示 Git 当前正在进行的活动

    • [BSECT] — 二分查找

    • [CHYPK] — cherry-pick

    • [MERGE] — 合并

    • [REBAS] — 变基

    • [REVRT] — 反转

  • !(加粗红色)— 表示存在合并冲突的路径

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

jwodder_ps1-0.7.2.tar.gz (14.5 kB 查看哈希)

上传时间 源代码

构建分发

jwodder_ps1-0.7.2-py3-none-any.whl (13.7 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面