我可以使用ANSI转义序列实际保存多个光标位置吗?

时间:2018-05-21 13:36:53

标签: bash ansi cursor-position

根据this source,这些是可以对光标进行的操作:

- 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 :(得分:1)

ANSI终端没有光标位置的内存。如果您需要这样复杂的事情,您必须自己跟踪光标位置。

要做出正确的工作并且很棘手。您最好使用ncurses