Appearance
Delete lines (DL)
ESC [ N MDL deletes N lines at the cursor row, scrolling lines below upward within the scroll region. The sequence is
ESC [ N M (default N=1). Blank lines are inserted at the bottom margin. The complement of IL (insert lines).
DL is part of the terminal editing toolbox that predates full-screen repainting. Instead of redrawing every row, an application can delete lines inside the scroll region and let the terminal shift the remaining content. It is still useful for efficient editors, but correctness depends on honoring margins and inserting blank rows at the far edge.How this is testedautomated
Write 3 lines, move to row 2, send
Write 3 lines, move to row 2, send
\x1b[1M (DL 1), verify LINE3 moved up to row 1.The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.
Analysis2026-05-17
Supported by 11 of 12 terminals (92%). Not supported by: vt100.js. Part of the Modern TUI baseline. Notes: vt100.js: DL (delete lines) not implemented in vt100.js baseline emulator.
Supported by 12 of 14 backends (86%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Kitty | 0.46.2 | ✓ yes | |
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |