跳至正文

终端 > 终端外观

终端提示符

在 ChatGPT 中打开 ↗
向 ChatGPT 询问关于此页面的内容
在 Claude 中打开 ↗
向 Claude 询问关于此页面的内容
已复制!

使用上下文芯片配置 Warp 的原生提示符,或使用您自己的 Shell 提示符 (PS1)。

Warp 支持两种提示符类型:Warp 提示符Shell 提示符 (PS1)

要切换提示符类型

  1. 打开 Settings(设置)> Appearance(外观)。
  2. Input(输入)下,将 Input type(输入类型)设置为 WarpShell (PS1)

当使用 Warp 提示符时,您可以右键点击提示符区域以复制整个提示符、当前工作目录、当前 git 分支、git 未提交文件计数等。

当使用 Shell 提示符时,您可以右键点击提示符区域以复制整个提示符,或在会话中之前运行的块中选择提示符的任何部分。

Warp 拥有一个原生提示符,它显示上下文芯片,展示诸如当前工作目录、git 分支、svn 状态、Kubernetes 上下文、pyenv、日期和时间等信息。当 Input type 设置为 Warp 时,Warp 提示符为默认设置。

要自定义 Warp 提示符显示的上下文芯片

  1. 右键点击提示符区域并选择 Edit prompt(编辑提示符)。

Right-click context menu showing the Edit prompt option

通过右键点击进行提示符编辑。

  1. 选择 Warp Prompt
  2. 拖放上下文芯片以配置您的提示符显示哪些信息。

Git 和 Subversion 上下文芯片显示您当前所在的本地分支,以及未提交的已更改文件数量。这包括任何已暂存或未暂存的新文件、修改过的文件和已删除的文件。

当您使用以下命令之一时,Kubernetes 上下文芯片会显示相关信息

kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl|etcd|fubectl

您可以通过配置 PS1 变量或安装受支持的 Shell 提示符插件来使用 Shell 提示符代替 Warp 提示符(请参阅 Shell 提示符兼容性表)。

要启用 Shell 提示符

  1. 打开 Settings(设置)> Appearance(外观)。
  2. Input(输入)下,将 Input type(输入类型)设置为 Shell (PS1)
  3. 在您的 Shell 的 RC 文件中配置 PS1 变量,或安装受支持的提示符插件。

Shell 提示符在 zsh 和 fish 中支持多行或右侧提示符,但在 bash 中不支持。但是,您不能拥有多行右侧提示符,只能拥有多行左侧提示符。

Shell工具是否有效?
bash | zshPS1有效
bash | zsh | fish | pwshStarship有效*
bash | zsh | fish | pwshoh-my-posh有效
zshPowerlevel10k有效*
zshSpaceship有效*
zshoh-my-zsh有效
zshprezto有效*
ssh有效
bashoh-my-bash不支持
bashbash-it不支持
bashSBP不支持
bashsynth-shell-prompt不支持
bash | zshPowerline-shell不支持
zshzplug不支持
fishtide不支持
fishoh-my-fish不支持

如果您在使用提示符时遇到问题,请查看下文或我们的 已知问题 以获取更多故障排除步骤。

已知某些 ~/.config/starship.toml 设置会导致 Warp 出错。使用 #DEL 处理以下行以解决已知错误

# Get editor completions based on the config schema
'' = 'https://starship.rs/config-schema.json'
# Disables the custom module
[custom]
disabled = false

对于 fish Shell(bash|zsh 可选),通过在您的 ~/.config/starship.toml 中放入以下内容来禁用 Starship 中的多行提示符

[line_break]
disabled = true

您可能还会看到与超时相关的错误。您可以在 ~/.config/starship.toml 中设置 command_timeout 变量来修复此问题。更多信息请参见 starship 文档

如果您的 默认 Shell/bin/bash,Starship 提示符可能无法正确渲染。要 绕过 该问题,我们建议您升级 bash,通过 echo $(which bash) 找到路径,然后将该路径放入 Settings(设置)> Features(功能)> Session(会话)> “Startup shell for new sessions”(新会话启动 Shell)。

如果您想在 zsh 上恢复 Starship 提示符后的附加行,请将以下内容添加到您的 ~/.zshrc 文件末尾: PROMPT="${PROMPT}"$'\n'

安装 Powerlevel10k (P10k) 提示符时,我们建议您使用 Meslo Nerd Font

P10K 可能会将箭头分隔符显示为灰色而不是彩色。这些字符的颜色由于 Warp 的最小对比度设置而被渲染为灰色。要 绕过 此问题,请转到 Settings(设置)> Appearance(外观)> Text(文本)> Enforce minimum contrast(强制最小对比度)并将其设置为“Never”。

Example of the grey dividers in p10k

p10k 中灰色分隔符的示例。

Warp 确实支持 p10k 1.19.0 及更高版本。确保您已安装最新版本,并在安装/更新 p10k 后重启 Warp。然后按 上述 说明启用自定义提示符,它应该可以正常工作。

此提示符可能会导致 Warp 输入编辑器中的预输入出现问题。要 绕过 该问题,请运行 echo "SPACESHIP_PROMPT_ASYNC=FALSE" >>! ~/.zshrc

尽管 Warp 对 prezto 的提示符有支持,但在 .zpreztorc 中启用 prezto 实用程序模块 是不受支持的,就像许多其他不兼容的自动补全 插件一样

我们建议使用 Warp 的默认提示符或安装受支持的工具之一,请参阅 兼容性表。您可以为 Warp 禁用不支持的提示符,如下所示

if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW
# Unsupported Custom Prompt Code
##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE
fi

iTerm2 Shell 集成会破坏 Warp,启用此功能后,您的自定义提示符将无法显示。如果您来自 iTerm2,请检查您的 dotfiles。我们建议为 Warp 禁用此集成,如下所示

if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW
test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE
fi