我正在用 Lisp 编写一个简单的 connect-4 程序,理想情况下每个玩家(红色、黑色)在显示游戏状态时都会有自己的颜色。有谁知道如何打印彩色 ASCII 字符?这通常是如何完成的?我使用的是 emacs 23,因此该解决方案可能特定于 emacs 本身。
无论如何,我已经检查了 hyperspec 看 FORMAT 是否可以做到这一点,但到目前为止运气不好。提前致谢。
最佳答案
Emacs 中文本的外观由faces 控制。可以通过覆盖 或文本属性 更改面孔。这是使用后者的示例:
;; Emacs-Lisp (insert (propertize "foo" 'font-lock-face '(:foreground "red")))
但是,如果游戏是在 SBCL 中实现的,您将需要一种从 SBCL 程序与 Emacs 通信的方法。看起来您正在使用 Slime,使用作为 Slime 一部分的 Swank 可能是最方便的:
;; Common-Lisp (swank::eval-in-emacs '(with-current-buffer (slime-repl-buffer) (insert (propertize "foo" 'font-lock-face '(:foreground "red")))))
关于emacs - 在 Lisp/Emacs 中打印彩色字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419225/