我刚刚安装了 Warp 终端,我很喜欢它。
但我想用 Starship 自定义提示,并且我的 iTerm2 终端上仍然有 Powerlevel10k。可以吗?
几个小时后,我成功在 Warp 上安装了 Starship,并且 iTerm(以及所有其他终端)上仍然有 Powerlevel10k,按照
Warp 文档所述修改我的
.zshrc
文件。
因此,在文件的开头,我包装了 Powelevel10k 初始化,以便仅在终端不是 Warp 时才激活它:
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
fi
if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
source ~/powerlevel10k/powerlevel10k.zsh-theme
fi
我将 Starship 初始化包装在文件末尾,仅用于 Warp:
if [[ $TERM_PROGRAM == "WarpTerminal" ]]; then
eval "$(starship init zsh)"
fi
如果仍然缺少提示,我会在@Christian回答中添加小提示:
if [[ $TERM_PROGRAM == "iTerm.app" ]]; then
test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
fi
shell 集成经常会导致问题(例如 https://github.com/warpdotdev/Warp/issues/1518) - 对我来说也是如此,条件初始化有助于解决问题。
如果其他人尝试过修复 Powerlevel10k 或 Starship 的技术但没有成功,请检查您是否安装了 Powershell。
我遇到了这个问题,我以为是因为 Powerlevel,但其实是因为 Powerline!
在我的
~/.bash_profile
中我有:
. /Users/dilraj/Library/Python/2.7/lib/python/site-packages/powerline/bindings/bash/powerline.sh
我更新为:
if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
# Powerline - Do not run in Warp.dev
. /Users/dilraj/Library/Python/2.7/lib/python/site-packages/powerline/bindings/bash/powerline.sh
fi
然后运行
source ~/.bash_profile
并退出并重新打开命令行界面!包裹现在对我有好处!