【问题标题】:SLIME: How to use the result from the repl as plain text?SLIME:如何将 repl 的结果用作纯文本?
【发布时间】:2013-08-02 15:43:03
【问题描述】:

在 slime 在 REPL 中打印 Lisp 表单后,它会在其上添加一些属性,使其以后能够自省/扩展它等。有时它非常有用,但有时我想重新使用结果就像文字一样。

从表单中删除这个特殊属性的快速方法是什么?

【问题讨论】:

  • substring-no-properties?
  • @abo-abo 这有点长...我也可以选择区域然后M-x facemenu-removal-all,但我认为有一些与 SLIME 相关的方式(它还必须 GC 连接到的对象该文本)。
  • 你的意思是ielm中的*?
  • @VsevolodDyomkin 对我不起作用:(我有一个对象,它将print-object 定义为要打印为列表,但是当我想使用打印的内容时,就好像它是列表一样,我仍然得到我的底层对象而不是列表。
  • @abo-abo Emacs Lisp 没有这样的问题,因为您无法定义自定义打印功能(或者我认为如此)。

标签: emacs common-lisp slime


【解决方案1】:

只需将最后一个输出打印到一个字符串中:

(princ-to-string *)

稍微扩展一下:SLIME 实现了类似 presentations 的东西,这是 Symbolics 为其动态 Windows 用户界面引入的。 Lisp 对象的表示可以有多种形式:文本和图形。他们总是记住原始对象 - 这使它们可以点击/激活。使用 Dynamic Windows,您还可以选择文本演示文稿并将输出作为文本复制到编辑器 killring。我猜 SLIME/Emacs 可以做类似的事情。

【讨论】:

    【解决方案2】:

    您只需右键单击演示文稿并选择漂亮打印,或将点移动到演示文稿并调用M-x slime-pretty-print-representation-at-point。这将在另一个缓冲区中漂亮地打印演示文稿。

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 2023-03-25
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多