Как мне «перемотать» строки на терминале? - PullRequest
0 голосов
/ 07 ноября 2019

Если я вывожу кучу текста, не создавая новую строку, а затем выполняю «\ r», он возвращается к первому «столбцу» в текущей строке, что позволяет мне «перезаписать» существующий текст. Это включает все виды «индикаторов прогресса» и еще много чего.

Однако как мне «перемотать» к предыдущему ряду? Или несколько строк?

В одной моей строке информации очень часто не хватает места, и если она преодолевает ограничение (120 символов в Windows), все это «разваливается» и начинает выводить новые строки (или переноситьтекст таким образом, что он, кажется, делает новые строки). По этой причине я хочу иметь возможность постоянно перематывать несколько строк, чтобы можно было выводить данные для нескольких строк, которые постоянно обновляются, как при использовании трюков "\ r" для одной строки.

Например:

This is the first line, which is quite long. It goes on for quite some time, so that it reaches 120 characters. Now it's
up. This is on a new line. Now I want to go back to the beginning of "This is the first line", on the previous row.

Возможно ли это вообще? В конце концов, мы не использовали вывод бумаги в течение нескольких десятилетий, поэтому, надеюсь, это ...

1 Ответ

0 голосов
/ 07 ноября 2019

Я не думаю, что это возможно простым способом. Если консоль Windows не запущена с параметром ENABLE_VIRTUAL_TERMINAL_PROCESSING. В этом случае вы можете выполнить комплексное управление в окне консоли, используя ESC-последовательности

https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences

Также прочитайте второй ответ там:

https://superuser.com/questions/413073/windows-console-with-ansi-colors-handling

Возможно, в нем описан способ включения обработки ANSI по умолчанию в окне консоли.

В противном случае вы можете либо ограничить вывод до 119 символов, либо увеличить ширину буфера консоли в окне консоли. свойства.

...