emacs - 在 Lisp/Emacs 中打印彩色字符

标签 emacs lisp

我正在用 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/

相关文章:

emacs 函数 c-forward-sws : Wrong type argument: stringp, nil

emacs - 退格键删除后面的字符,而不是前面的字符

clojure - 按契约(Contract)库为 Common Lisp 设计?

oop - EIEIO 组合(通过自己的槽暴露包含对象的槽)

c - 将变量参数 LISP 函数映射到 C 函数 - C

emacs - VimGolf 有 Emacs 版本吗?

emacs - 如何摆脱 emacs 错误 "void-variable org-format-latex-options"?

emacs - 根据文件扩展名设置emacs注释样式

sqlite - Lisp cl-dbi - 如何在 sqlite 查询中嵌入控制字符

lisp - 从另一个列表的原子在 LISP 中构建列表