【问题标题】:Change zsh theme if too long如果太长,请更改 zsh 主题
【发布时间】:2021-03-26 13:19:43
【问题描述】:

如果我有一个使用 %~/ 获取当前目录路径的 ohmyzsh 主题。有没有办法告诉它,如果行长需要换行,只使用当前目录而不使用完整路径?

【问题讨论】:

    标签: themes zsh oh-my-zsh


    【解决方案1】:

    不完全是,但 Zsh 实际上可以做得比这更好!您可以使用%-X<Y<Z%<< 来确保在提示后始终至少保留 X 个字符,方法是修剪 Z 的左侧并将修剪的部分替换为 Y。(请注意,Y 本身总是按字面打印,而任何 prompt escape sequences 在里面它不会被扩展。如果你想设置不同于 Z 的 Y 样式,你必须在 %X<Y< 之前和之后放置提示符转义符。)

    例如:

    PS1=$'\n%-40<...<%~%<<%# '
    

    这是做什么的:

    • 如果扩展 %~ 会在行上留下 40 个或更多字符的空格,则将其完全扩展。
    • 否则,在%~ 的左侧打印一个... 并从%~ 的扩展左侧剪掉字符,直到我们的提示在该行上留下正好40 个字符的空白空间。
    • 在此之后始终展开 %# (因为它出现在 %&lt;&lt; 之后)。

    这样做的好处是即使在您调整终端大小时它也适用于当前提示。试试吧,你会发现它会在你调整大小时动态添加或删除字符。

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 2019-07-20
      • 2020-10-03
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      • 2015-03-09
      • 1970-01-01
      相关资源
      最近更新 更多