Как установить цветную подсказку GHCi в Powershell - PullRequest
4 голосов
/ 28 марта 2020

Я искал решения в Интернете и нашел некоторую полезную информацию следующим образом:

  1. Установить ANSI Terminal Control включенным по умолчанию в Win10 в соответствии с Гленн Слейден * Ответ 1007 *.

  2. Установите приглашение в файлах конфигурации ghci.conf в соответствии с здесь и здесь

Моя конфигурация следующая:

:set prompt "\ESC[33mImported Modules: %s\n\ESC[34m\x03BB> \ESC[0m"
:set prompt-cont "\ESC[31m > \ESC[0m"

При загрузке ghci она не работает (см. Следующий снимок экрана)

enter image description here

Похоже, что вступает в силу только первая escape-последовательность ASCII \ESC[33m, а остальные последовательности не отображаются.

Далее я внесу следующие изменения в соответствии с на вики :

:set prompt "\ESC[33m\STXImported Modules: %s\n\ESC[34m\STX\x03BB> \ESC[0m\STX"
:set prompt-cont "\ESC[31m\STX > \ESC[0m\STX"

Это лучше, но все еще кажется, что работает только первая escape-последовательность, а другие последовательности игнорируются.

enter image description here

На этот раз я думаю, что рендеринг escape-последовательностей, вероятно, связан с escape-символом \n, поэтому я добавляю \n в конце каждой последовательности и удаляю \STX следующим образом:

:set prompt "\ESC[33mImported Modules: %s\n\ESC[34m\x03BB> \ESC[0m\n"
:set prompt-cont "\ESC[31m > \ESC[0m\n"

Теперь он работает, как и ожидалось, но должен внести некоторые дополнительные \n, что вызывает уродливое расположение.

enter image description here

Теперь у меня нет идей, почему ему требуется дополнительный \n для правильной визуализации escape-последовательностей в приглашении GHCi и Как решить эту проблему.

Спасибо за любую информацию!

...