gpt4 book ai didi

macos - ZSH 'Sticky' 提示符

转载 作者:行者123 更新时间:2023-11-29 09:28:08 28 4
gpt4 key购买 nike

我的 ZSH 主题使用 .zsh-theme 文件中的 RPROMPT='$(vbox_status)' 输出我的 Vagrant/VBox VM 的状态(其中 vbox_status调用 a script which outputs what's running ),像这样:

ZSH theme

但是,我想知道是否有一种方法可以使这个输出“粘性”,这样它就不会在每一行的末尾输出,而是停留在箭头指示的位置,并在任何时候简单地更新自己上面输出了一个新行。

例如。

enter image description here

最佳答案

您可以使用名为 tput 的命令执行此操作。

我已经制作了一个基本脚本,它将一个字符串放在屏幕的一角,这将帮助您入门。您可以通过删除内容和突出显示或其他任何方式使它变得更好,但这是一个起点:

#!/bin/bash
screen_w=$(tput cols) # Get screen width.
screen_h=$(tput lines) # Get screen height.
str=$* # String to put in corner.
string_w=${#str}
let "x = $screen_w - $string_w"

tput sc # Save current position
tput cup $screen_h $x # Move to corner
echo -ne $str # Put string in the corner
tput rc # Go back to saved position.
echo " >" # Some kind of prompt

所以你可以设置你的提示符来运行它(我调用了上面的脚本 pr.sh)

PS1=$(pr.sh $(date))

zsh 中可能会有所不同,但我相信您可以解决这部分问题。只需将 $(date) 部分更改为您的状态命令。 (pr.sh 必须在你的路径上)

这有点笨拙,但可以帮助您入门。使用 tput 可以做的事情几乎没有限制!

关于macos - ZSH 'Sticky' 提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24274456/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com