有哪些 TUI 库支持非全屏模式?

目前只找到这一个有明确表示支持 non-fullscreen

非全屏模式是什么意思?less(1) 是全屏,Zsh/Fish 补全界面是非全屏?或者 fzf 和 fzf --height=50% 分别是全屏和非全屏?

是的。

也许这是很基本的特性,所以通常 TUI 库不会刻意强调?没写过这一类应用,不太了解。

是不是进入 Raw Mode,然后只改动当前位置(如第10行第1列)到右下角(如第25行第80列)的矩形区域,程序退出前清除该区域就 OK 了?

貌似这样就行了:

#!/bin/sh

# 进入 Raw mode
stty raw -echo

# 保存光标位置
printf "\0337"

printf "Press any key to quit"
read -n1

# 恢复光标位置
printf "\0338"

# 清除当前位置到右下角间的内容
printf "\033[J"

# 退出 Raw mode
stty -raw echo
3 个赞