tyl*_*erl 12
在低级别,您向终端程序发送一组控制字符,告诉它该做什么.这可能有点太复杂,无法手动管理.
因此,您可能希望查看像ncurses这样的控制台库,它可以为您管理所有这些复杂性.
特别是在程序退出之后神奇地出现的先前内容,这实际上是vim正在利用的xterm特性,并且大多数现代终端都支持.它被称为"备用屏幕"或简称为"altscreen".基本上你告诉终端程序"好的,现在切换到一个全新的屏幕,我们稍后会再回到另一个屏幕".
切换到备用屏幕\E[?47h的命令通常是,而切换回来的命令是\E[?47l For fun试试这个:
echo -e "\033[?47h"
Run Code Online (Sandbox Code Playgroud)
然后切换回:
echo -e "\033[?47l"
Run Code Online (Sandbox Code Playgroud)
或者对于一个更完整的解决方案,它依赖于你的shell来设置正确的东西(这些是vim通常使用的序列):
echo -e "\0337\033[?47h" # Save cursor position & switch to alternate screen
# do whatever
#Clear alternate screen, switch back to primary, restore cursor
echo -e "\033[2J\033[?47l\0338"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |