alternate screen介绍

在利用xterm.js实现终端搜索高亮时需要能够识别终端当前是否在vi编辑器模式,调查后发现xterm.buffer.active.type可以用来实现。

查看对应类型定义发现值只有两种normal和alternate。不明白为什么叫alternate,所以进一步调查,原来这个概念来源于terminal下的alternate screen。这里整体介绍下。

https://static.1991421.cn/2022/2022-07-28-224538.jpeg

alternate screen-备用屏幕

  1. 该中文翻译采用苹果的中文翻译,xshell叫终端替换屏幕
  2. alternate screen是临时性交互输入内容的屏幕,最终还要返回。比如VI模式下,屏幕显示区域与正常模式一样,当激活备用屏幕时,原屏幕内容被保存,当退出备用屏幕时,源内容被恢复。
  3. 所以xterm下的normal/alternate概念并非是原创,而是终端本身的设计上就这两种模式,普通和备用

写在最后

xterm.js只是xterm的一种实现,为了更好的理解xterm.js还是需要多了解xterm-终端模拟器的一些设计。

相关文档