Могу ли я сохранить несколько позиций курсора, используя escape-последовательности ANSI? - PullRequest
0 голосов
/ 21 мая 2018

Согласно этому источнику , это операции, которые можно выполнить с курсором:

- Position the Cursor:
  \033[<L>;<C>H
     Or
  \033[<L>;<C>f
  puts the cursor at line L and column C.
- Move the cursor up N lines:
  \033[<N>A
- Move the cursor down N lines:
  \033[<N>B
- Move the cursor forward N columns:
  \033[<N>C
- Move the cursor backward N columns:
  \033[<N>D

- Clear the screen, move to (0,0):
  \033[2J
- Erase to end of line:
  \033[K

- Save cursor position:
  \033[s
- Restore cursor position:
  \033[u

Таким образом, вы можете сохранить положение курсора, используя \033[s, а затемвосстановите его, используя \033[u.Но что, если я хочу сохранить несколько позиций курсора?

Например, допустим, я хочу сохранить две позиции курсора, и затем , восстанавливая их.Значения будут стерты правильно?Итак, мой вопрос: есть ли способ, используя экранированные последовательности ANSI или нет , сохранить несколько позиций курсора, чтобы восстановить их позже в bash?

1 Ответ

0 голосов
/ 21 мая 2018

Терминал ANSI не имеет памяти позиций курсора.Если вам нужно что-то сложное в этом роде, вам придется самостоятельно следить за положением курсора.

Это большая работа, и сложно разобраться в этом.Вам гораздо лучше использовать ncurses.

...