mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
79 lines
1.5 KiB
Plaintext
79 lines
1.5 KiB
Plaintext
import VTSequence from "@/components/VTSequence";
|
|
|
|
# Cursor Up (CUU)
|
|
|
|
<VTSequence sequence={["CSI", "Pn", "A"]} />
|
|
|
|
Move the cursor `n` cells up.
|
|
|
|
The parameter `n` must be an integer greater than or equal to 1. If `n` is less than
|
|
or equal to 0, adjust `n` to be 1. If `n` is omitted, `n` defaults to 1.
|
|
|
|
This sequence always unsets the pending wrap state.
|
|
|
|
If the current cursor position is at or below the [top margin](#TODO),
|
|
the highest point the cursor can move is the top margin. If the current
|
|
cursor position is above the top margin, the highest point the cursor
|
|
can move is the first row.
|
|
|
|
## Validation
|
|
|
|
### CUU V-1: Cursor Up
|
|
|
|
```bash
|
|
printf "\033[1;1H" # move to top-left
|
|
printf "\033[0J" # clear screen
|
|
printf "\033[3;1H"
|
|
printf "A"
|
|
printf "\033[2A" # cursor up
|
|
printf "X"
|
|
```
|
|
|
|
```
|
|
|_Xc_______|
|
|
|__________|
|
|
|A_________|
|
|
```
|
|
|
|
### CUU V-2: Cursor Up Below Top Margin
|
|
|
|
```bash
|
|
printf "\033[1;1H" # move to top-left
|
|
printf "\033[0J" # clear screen
|
|
printf "\n\n\n\n" # screen is 4 high
|
|
printf "\033[2;4r" # set scrolling region
|
|
printf "\033[3;1H"
|
|
printf "A"
|
|
printf "\033[5A" # cursor up
|
|
printf "X"
|
|
```
|
|
|
|
```
|
|
|__________|
|
|
|_Xc_______|
|
|
|A_________|
|
|
|__________|
|
|
```
|
|
|
|
### CUU V-3: Cursor Up Above Top Margin
|
|
|
|
```bash
|
|
printf "\033[1;1H" # move to top-left
|
|
printf "\033[0J" # clear screen
|
|
printf "\n\n\n\n\n" # screen is 5 high
|
|
printf "\033[3;5r" # set scrolling region
|
|
printf "\033[3;1H"
|
|
printf "A"
|
|
printf "\033[2;1H" # move above region
|
|
printf "\033[5A" # cursor up
|
|
printf "X"
|
|
```
|
|
|
|
```
|
|
|Xc________|
|
|
|__________|
|
|
|A_________|
|
|
|__________|
|
|
|__________|
|
|
```
|