Я пишу программу, которая печатает цветные линии, и чем больше я делаю с ней, тем больше у меня возникают проблемы с переносом строк.
Это своего рода терминал, написанный на php, вот подсказка:
$return = readline("\033[44m\033[1;37m{$this->text}>>\033[0m ");
Если я прокручиваю историю, мой текст сбивается на 10 символов, а если я набираю 21 символ и удаляю один, он очищает всю строку и начинает удалять символы из строки выше. Это на консоли шириной 47 столбцов
Если я попытаюсь добавить побеги
$return = readline("\[\033[44m\033[1;37m\]{$this->text}>>\[\033[0m\] ");
затем он печатает скобки ... даже если я добавлю двойную обратную косую черту.
\[\][timer]>>\[\]
Я нахожу то же самое для echo -e
, я действительно не уверен, что происходит.
И наконец, если я изменю PS1, он работает просто отлично.
[mike@crest ~]$ export PS1="\[\033[44m\033[1;37m\][timer]>>\[\033[0m\] "
[timer]>>
Что мне здесь не хватает?