У меня есть скрипт ruby, который одновременно и асинхронно получает и отображает сообщения с сервера, а также разрешает ввод данных пользователем на консоли. Когда сообщение получено, оно в настоящее время записывается в середине того, что печатает пользователь. Сам вход не искажен, но выглядит ужасно. В идеале это сохранит текущий ввод пользователя, выведет сообщение, а затем восстановит ввод в следующей строке. Я сделал это в c, перехватывая каждое нажатие клавиши, но все, что я помню, это то, что это было серьезной проблемой. Я довольно новичок в ruby, поэтому я не уверен, есть ли хороший способ сделать это или как это сделать.
Пример: пользователь печатает >abcde
, и приходит сообщение hello
, а пользователь вводит fgh
после. Консоль теперь будет показывать:
>abcdehellofgh
и пользователь может продолжить ввод в конце. Я хотел бы показать:
hello
>abcdefgh