Z-Y*_*Y.L 5 haskell prompt colors ghci
我在网上搜索了解决方案,找到了一些有用的信息,如下:
以下是我的配置:
:set prompt "\ESC[33mImported Modules: %s\n\ESC[34m\x03BB> \ESC[0m"
:set prompt-cont "\ESC[31m > \ESC[0m"
Run Code Online (Sandbox Code Playgroud)
加载时ghci
,不起作用(见下面的截图)
看来只有第一个 ASCII 转义序列\ESC[33m
生效,其余序列都没有渲染。
接下来我根据wiki进行如下修改:
:set prompt "\ESC[33m\STXImported Modules: %s\n\ESC[34m\STX\x03BB> \ESC[0m\STX"
:set prompt-cont "\ESC[31m\STX > \ESC[0m\STX"
Run Code Online (Sandbox Code Playgroud)
更好了,但似乎仍然只有第一个转义序列有效,而其他序列被忽略。
这次我猜测转义序列的渲染可能与转义字符有关\n
,所以我\n
在每个序列的末尾添加并删除,\STX
如下所示:
:set prompt "\ESC[33mImported Modules: %s\n\ESC[34m\x03BB> \ESC[0m\n"
:set prompt-cont "\ESC[31m > \ESC[0m\n"
Run Code Online (Sandbox Code Playgroud)
现在它可以按预期工作,但必须引入一些额外的\n
,这会导致布局丑陋。
现在我不知道为什么需要一些额外的东西\n
才能在 GHCi 提示符中正确渲染转义序列以及如何解决这个问题。
感谢您提供任何信息!