gpt4 book ai didi

plugins - 终端中 zsh 顶部的固定行

转载 作者:行者123 更新时间:2023-12-05 00:24:27 26 4
gpt4 key购买 nike

我正在尝试查找是否有可能(以及如何做到这一点,如果是的话)使用 zsh 在终端顶部放置一条固定线路。我想在这一行中加入一些系统信息(例如 cpu 使用情况、磁盘可用空间、ram 使用情况等),以保留经典的“滚动行为”。

我会在桌面的窗口终端中使用它。

Something like this

任何想法/建议都会非常感激,谢谢!

最佳答案

而不是在 zsh 中尝试这样做我建议使用 tmux为了那个原因。如果您在 ~/tmux.conf 中设置以下内容它应该具有预期的效果:

set -g status-position top
set -g status-right '#(system-information-command)'
set -g status-intervall 10
它将在顶部放置一个状态栏,打印 system-information-command 的第一行的输出并每 10 秒更新一次。
推理:
虽然从 zsh 中在终端的第一行打印一些东西是相当容易的。并且 - 如果需要 - 不断更新它并没有那么难,保持滚动行为将非常困难,如果不是不可能的话,仅使用 zsh .
原因是回滚缓冲区由终端维护,而不是由 zsh 维护。 .到终端的任何输出都在光标的当前位置完成。如果在光标位置或之后已经打印了任何内容,它将被覆盖。没有办法插入任何东西。
除非将光标明确设置到某个位置,否则它将位于最后一个输出的末尾,大部分时间位于终端的最底部。如前所述,将光标放在第一行,写一些东西并将其重置到之前的位置非常容易。 但是打印状态行之前第一行中的任何内容都将被覆盖。 zsh只能写入终端,不能从之前的输出中读取。因此,无论状态栏覆盖什么,都无法恢复。
如果您在终端中向上滚动,先前打印的状态行将与终端的其余内容一起向下移动。如果命令的输出高于终端,则至少会覆盖一行。 tmux是终端多路复用器。它本质上在您的终端内运行一个终端(或更多终端)。 zsh然后在其中启动的任何程序都将在“内部”终端中运行。同时状态行将被打印到“外部”终端,并且不会干扰 shell 的输出。

关于plugins - 终端中 zsh 顶部的固定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26415293/

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