如何在Shell中临时禁用Powerlevel10k(p10k)?
临时关闭Powerlevel10k的简单方法
问题描述
我想临时关闭p10k几分钟用来截图,本来以为执行export PS1='$ '就行,但p10k的实现更复杂,执行后PS1会被持续重置:
09:07:00 ~/git/gcloud-k8s main !1 ?4 ❯ echo $PS1 | cut -c 1-40 ${$((_p9k_on_expand()))+}%{${_p9k__raw_m }:-${${${_p9k__m:#-*}:+${${_p9k__1g+${(p }}${_p9k__2-${_p9k__2l-${${:-${_p9k__bg 09:07:10 ~/git/gcloud-k8s main !1 ?4 ❯ export PS2=fred 09:07:40 ~/git/gcloud-k8s main !1 ?4 ❯ echo $PS2 | cut -c 1-40 fred 09:07:45 ~/git/gcloud-k8s main !1 ?4 ❯ export PS1='$ ' 09:08:05 ~/git/gcloud-k8s main !1 ?4 ❯ echo $PS1 | cut -c 1-40 ${$((_p9k_on_expand()))+}%{${_p9k__raw_m }:-${${${_p9k__m:#-*}:+${${_p9k__1g+${(p }}${_p9k__2-${_p9k__2l-${${:-${_p9k__bg
请问有没有简单方法可以在当前Shell中临时关闭p10k?
解决方案
方法1:用p10k自带命令临时禁用
直接执行:p10k configure --disable切换后提示符会变成极简样式。要恢复p10k,执行:
p10k configure --enable方法2:清空precmd钩子再自定义提示符
p10k靠precmd钩子持续重置PS1,先清空这个钩子:precmd_functions=()然后设置自己需要的提示符:
export PS1='$ '恢复时重新加载p10k配置:
source ~/.p10k.zsh方法3:启动纯净子Shell(适合截图场景)
直接开一个不加载任何配置的子Shell,彻底避开p10k:zsh -f这个子Shell的提示符是默认的
%,截图完成后输入exit就能回到原来的p10k环境。
内容的提问来源于stack exchange,提问作者Marvin
相关产品推荐
相关产品推荐

