我正在尝试查找是否有可能(以及如何执行此操作)使用zsh在终端的顶部放置一条固定的线。我想在这行中保留一些系统信息(例如cpu使用情况,磁盘可用空间,ram的使用情况等),以保留经典的“滚动行为”。
我会在桌面上的窗口终端中使用它。
任何想法/建议都会非常感激,谢谢!
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
并且(如果需要)不断地更新它并不难,但是保持滚动行为将非常困难,即使使用just也不可能zsh
。
这样做的原因是,回滚缓冲区是由终端而不是由维护的zsh
。到终端的任何输出都在光标的当前位置完成。如果在光标位置或之后已经打印了任何内容,它将被覆盖。没有办法插入任何东西。
除非将游标显式设置为某个位置,否则它将位于最后一个输出的末尾,大多数情况下,它将位于终端的最底部。如前所述,将光标放在第一行,编写一些内容并将其重置到其先前位置非常容易。但是,打印状态行之前第一行中的所有内容都将被覆盖。zsh
只能写到终端,不能从前一个输出中读取。因此,无论状态栏覆盖什么,都无法恢复。
如果在终端中向上滚动,则先前打印的状态行将与终端的其余内容一起向下移动。如果命令的输出高于终端,则至少将覆盖一行。
tmux
是终端多路复用器。它实际上在您的终端中运行一个终端(或其中的更多终端)。zsh
并且其中启动的任何程序都将在“内部”终端中运行。同时状态行将被打印到“外部”终端,并且不会干扰外壳的输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句