【发布时间】:2021-10-01 08:40:38
【问题描述】:
我正在使用 Emacs、Slime 和 Common Lisp (SBCL)。 Nyxt 只是 package 的名称。
在 SLIME 的 REPL 中,调用变量会检索以下表达式:
NYXT> history-entries-over-threshold
(#<HISTORY-ENTRY {10131F2903}> #<HISTORY-ENTRY {10131F28D3}>
#<HISTORY-ENTRY {10131F28A3}> #<HISTORY-ENTRY {10131F2873}>
#<HISTORY-ENTRY {10131F2843}> #<HISTORY-ENTRY {10131F2813}>
#<HISTORY-ENTRY {10131F27E3}> #<HISTORY-ENTRY {10131F27B3}>
#<HISTORY-ENTRY {10131F2783}> #<HISTORY-ENTRY {10131F2753}>
#<HISTORY-ENTRY {10131F2723}> #<HISTORY-ENTRY {10131F26F3}>
#<HISTORY-ENTRY {10131F26C3}> #<HISTORY-ENTRY {10131F2693}>
#<HISTORY-ENTRY {10131F2633}>)
我可以右键单击表达式的任何部分,菜单中会出现Inspect选项。然后,缓冲区显示元素列表,我可以检查每个元素。
尽管有鼠标的成功经验,我还是想用键盘。这似乎是可能的,因为 Slime 将命令 slime-repl-inspect 绑定到 C-c I。问题是它不对我有用。
按下C-c I 后,提示缓冲区会询问预期的值。我插入了我用鼠标单击的值:
Inspect value (evaluated): (#<HISTORY-ENTRY {10131F2903}> #<HISTORY-ENTRY {10131F28D3}>
#<HISTORY-ENTRY {10131F28A3}> #<HISTORY-ENTRY {10131F2873}>
#<HISTORY-ENTRY {10131F2843}> #<HISTORY-ENTRY {10131F2813}>
#<HISTORY-ENTRY {10131F27E3}> #<HISTORY-ENTRY {10131F27B3}>
#<HISTORY-ENTRY {10131F2783}> #<HISTORY-ENTRY {10131F2753}>
#<HISTORY-ENTRY {10131F2723}> #<HISTORY-ENTRY {10131F26F3}>
#<HISTORY-ENTRY {10131F26C3}> #<HISTORY-ENTRY {10131F2693}>
#<HISTORY-ENTRY {10131F2633}>)
不幸的是,REPL 抛出了一个错误:
illegal sharp macro character: #\<
Line: 1, Column: 2, File-Position: 2
Stream: #<SB-IMPL::STRING-INPUT-STREAM {100676A913}>
[Condition of type SB-INT:SIMPLE-READER-ERROR]
如何使用键盘实现与鼠标检查相同的结果?
【问题讨论】:
标签: emacs common-lisp introspection slime