3 ms·
One of the basic problems here is the semantics of "scroll". If you have a full screen of text and then "add a line at the bottom" then you're going to scroll e
by NovemberWhiskey 3y ago
One of the basic problems here is the semantics of "scroll". If you have a full screen of text and then "add a line at the bottom" then you're going to scroll everything up by one line. That's pretty clear.
Similarly, if you have a text editor that divides the screen into two horizontally-tiled buffers, you can define the scroll region (top margin/bottom margin) appropriately and have the same semantics.
But if you have vertically-tiled buffers (open Emacs, C-x 3) then the top margin/bottom margin model no longer works. If you "scroll" one of those buffers, you are doing it to both of them, and you need to overpaint the other one afterwards; on a fast enough connection that's invisible within standard terminal semantics but will have odd visual artifacts for a smooth scroll.
- o11c 3y agoThe TTY sequences to insert or move lines give all the information needed to avoid scrolling other parts of the screen. Like most other things in the comments here, this is addressed in the article.
- NovemberWhiskey 3y ago>The TTY sequences to insert or move lines give all the information needed to avoid scrolling other parts of the screen. Certainly for VT100 they do not - you can define the scroll region, but it's strictly "between line x and y" or "the whole screen" and you can only scroll up/down the entire region. The article only address smooth scrolling of entire lines. How do you "scroll only the buffer on the right side of the screen"?
- j4_james 3y agoOn later DEC terminals you could also set left and right margins (lookup DECSLRM). They didn't support smooth scrolling when those margins were enabled, but I don't see why a modern terminal emulator couldn't handle that.