【问题标题】:xtermjs, few questions regaring the usagexterm js,关于使用的几个问题
【发布时间】:2020-08-21 13:31:41
【问题描述】:

在努力使用xtermjs,还有一些官方文档没有涉及到的问题,至少我没找到。

  1. 我了解当我在终端中使用某些应用程序时,例如Vim 终端需要切换到备用缓冲区,在我退出应用程序后,终端切换回正常缓冲区。对吗?

  1. 要在缓冲区之间切换(以及总体控制终端行为),我需要使用控制序列。不是xterm.js独有的东西,而是终端之间统一的通用模式和控制顺序?

  1. 根据文档,切换到备用缓冲区的控制序列是CSI ? Pm h,参数为47

DECSET DEC 私人设置模式 CSI ? pm h 设置各种终端属性。

在哪里

paramAction 47 - 使用备用屏幕缓冲区。


  1. 如何将此控制序列与 xterm.js 一起使用,例如,我想切换到备用缓冲区。 terminal.write(...) 中应该使用什么字符串?

【问题讨论】:

    标签: terminal pty xtermjs


    【解决方案1】:
    1. 是的,请参阅此问题中的描述Using the “alternate screen” in a bash script

      备用屏幕被许多“用户交互”终端应用程序使用,如 vim、htop、screen、alsamixer、less,...它就像终端内容的不同缓冲区,在应用程序退出时消失,所以整个终端都恢复了,看起来应用程序没有输出任何东西

    2. 是的,ANSI escape code

      ANSI 转义序列是带内信号的标准,用于控制视频文本终端和终端仿真器上的光标位置、颜色和其他选项。某些字节序列,大多数以 Esc(ASCII 字符 27)和 '[' 开头,被嵌入到文本中,终端查找并解释为命令,而不是字符代码。

      • 切换到备用缓冲区的控制序列:CSI ? 47 h
      • 切换到常规缓冲区的控制序列:CSI ? 47 l
    3. 应用控制序列切换到备用缓冲区的代码:

    terminal.write("\x9B?47h"); //CSI ? 47 h
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-12
      • 2011-08-24
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多