Unscrolling the screen¶
This is a small extension to the SD (Pan up) escape code from the VT-420 terminal. The SD
escape code normally causes the text on screen to scroll down by the specified
number of lines, with empty lines appearing at the top of the screen. This
extension allows the new lines to be filled in from the scrollback buffer
instead of being blank.
The motivation for this is that many modern shells will show completions in a block of lines under the cursor, this causes some of the on-screen text to be lost even after the completion is completed, because it has scrolled off screen. This escape code allows that text to be restored.
If the scrollback buffer is empty or there is no scrollback buffer, such as for
the alternate screen, then the newly inserted lines must be empty, just as with
the original SD
escape code. The maximum number of lines that can be
scrolled down is implementation defined, but must be at least one screen worth.
The syntax of the escape code is identical to that of SD
except that it has
a trailing +
modifier. This is legal under the ECMA 48 standard
and unused for any other purpose as far as I can tell. So for example, to
unscroll three lines, the escape code would be:
CSI 3 + T
See discussion here.
Added in version 0.20.2.
Also supported by the terminals: