Подтвердить что ты не робот

Как вы редактируете существующий текст (и перемещаете курсор) в терминале?

Я видел эту демонстрацию после того, как напечатал абзац текста (например, вы получили при вводе some-command --help), а затем перепрыгнул обратно до пары ключевых слов в тексте и изменил цвет текста после того, как он был уже распечатанных в терминале.

Это кажется сумасшедшим для меня. Как они это сделали?

Начиная думать об этом, я думаю, stdout и stdin являются технически "потоком IO", так что, возможно, это постоянная переменная, которая отслеживает положение курсора? Я помню, что делал что-то подобное при создании парсера языка.

Цель состоит в следующем: скажем, вы вводите следующее в консоль и выводите пустой массив, потому что в Node.js все это асинхронно, и мы не хотим каждый раз писать функцию async в консоли

$ node app.js
> App.User.all()
=> []

Затем, когда выполняется обратный вызов async, вы возвращаетесь и редактируете => [], чтобы включить результат:

$ node app.js
> App.User.all()
=> [#<User id:1>, #<User id:2>...]

Было бы здорово хотя бы знать, как реализовать, даже если есть много других проблем для работы (не связанных с этим вопросом. И я знаю, что вы можете определить глобальный обратный вызов и сделать что-то вроде App.User.all(_c)).

Как вы редактируете вывод терминала после его печати?

4b9b3361

Ответ 1

Наконец, оказалось, что "demo":

Ответ 2

Если вы работаете в Mac OX X, я считаю, что программа Eddie делает что-то вроде "редактирования вывода терминала после его печати". (см. "Эдди (текстовый редактор) в Википедии" ).

В меню файла выберите "Создать", а затем в разделе "Настройки/Настройки документа..." выберите "Окно оболочки". После этого попробуйте пару команд unix: date, ls, cal и т.д. Затем поместите курсор и отредактируйте их.

Я бы попробовал с Node, но я не смог его установить (Node) в Mac OS X 10.5.8.