Search code examples
emacscommon-lispintrospectionslime

Why Slime inspect only works with mouse click and not with the keyboard command?


I am using Emacs, Slime, and Common Lisp (SBCL). Nyxt is just the name of the package.

In the SLIME's REPL, calling a variable retrieves the following expression:

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}>)

I can right-click in any part of the expression and there will be the Inspect option in the menu. Then, a buffer shows the list of elements and I can inspect each one of them.

Despite the successful experience with the mouse, I would like to use the keyboard. This seems to be possible since Slime has the command slime-repl-inspect bounded to C-c I. The problem is that it does not work for me.

After pressing the C-c I the prompt-buffer asks for the value to be expected. I insert the value that I clicked with the mouse:

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}>)

Unfortunately, the REPL throws an error:

 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]

How can I achieve the same result of the mouse inspection using the keyboard?


Solution

  • There is C-c C-v C-i to inspect the presentation at point, so no need to enter the value again. You can take a look at the active keybindings with C-h b, then search for inspect.