Closed Devon7 closed 6 months ago
Explain what you're trying to do and I'll reopen
I'm trying to get some instructions for beginners!
Following meta-dot sly down the rabbit hole, five minutes ago I stumbled across (sly-setup) which is not documented anywhere in plain sight, which fixes the trouble so perhaps it should be.
Before filing an issue I spent a good deal of time grovelling the sources, starting with the README.md file, which contains no mention of (sly-setup)
without which the mrepl map is undefined and therefore cannot be customised.
Peace
--Devon
P.S. I switched to sly because the slime repl is too dissimilar to shell mode. Sly is also missing commands but for all I know they may be present in some add-on which I have yet to discover.
C-d comint-delchar-or-maybe-eof * delete-char
RET comint-send-input . sly-mrepl-return
C-<down> comint-next-input *? forward-paragraph
C-<up> comint-previous-input *? backward-paragraph
<mouse-2> comint-insert-input */ mouse-yank-primary
M-? comint-dynamic-list-filename-completions */ sly-edit-uses
C-c C-a comint-bol-or-process-mark ?
C-c C-c comint-interrupt-subjob . sly-interrupt
C-c C-d comint-send-eof */ (documentation prefix)
C-c C-e comint-show-maximum-output */ sly-interactive-eval
C-c C-l comint-dynamic-list-input-ring */ sly-load-file
C-c RET comint-copy-old-input */ sly-expand-1
C-c C-n comint-next-prompt ?
C-c C-o comint-delete-output . sly-mrepl-clear-recent-output
C-c C-p comint-previous-prompt *? sly-pprint-eval-last-expression
C-c C-r comint-show-output *? sly-eval-region
C-c C-s comint-write-output *? (stickers prefix)
C-c C-u comint-kill-input *? sly-undefine-function
C-c C-x comint-get-next-from-history *? (connection prefix)
C-c C-z comint-stop-subjob *? sly-mrepl
C-c C-\ comint-quit-subjob ?
C-c SPC comint-accumulate ?
C-c . comint-insert-previous-argument ?
C-M-l comint-show-output * reposition-window
M-n comint-next-input . sly-mrepl-next-input-or-button
M-p comint-previous-input . sly-mrepl-previous-input-or-button
M-r comint-history-isearch-backward-regexp *? move-to-window-line-top-bottom
C-c M-o comint-clear-buffer . sly-mrepl-clear-repl
C-c M-r comint-previous-matching-input-from-input /
C-c M-s comint-next-matching-input-from-input /
. directly present in sly-mrepl-mode-map
* indirectly present in the sly mrepl
/ incompatible with the comint shell
? gratuitously incompatible with the comint shell
Sly worked here just out of the box (ok I use a Git clone). I never had to touch sly-mrepl or sly-setup.
Nobody else uses both sly and shell?
eshell sometimes but not often.
which contains no mention of (sly-setup) without which the mrepl map is undefined and therefore cannot be customised.
No, it can. Use eval-after-load
. It's in the manual, which I supposed you have also found in all your sophisticated grovelling.
Sophisticated, hee hee, nope, never heard of it, thanks! Would
(add-to-list 'load-path "~/.emacs.d/elpa/sly-1.0.43")
(add-to-list 'load-path "~/.emacs.d/elpa/sly-1.0.43/contrib")
(eval-after-load "sly-mrepl" '(message "post-MREPL"))
(require 'sly-mrepl)
be the, er, canonical way to go about this?
Peace
--Devon
P.S. Can you suggest a way that still works when the version is incremented?
be the, er, canonical way to go about this?
No need for the require, and if you're using ELPA, no need for the add-to-list statements either. Just use the eval-after-load and M-x sly, only these two things after package-install.
(require 'sly) sly (require 'sly-mrepl) ;; (file-missing "Cannot open load file" "No such file or directory" "sly-mrepl")
(dired "~/.emacs.d/elpa/sly-1.0.43/test") ; then try loading a file Load error for /Users/devon/.emacs.d/elpa/sly-1.0.43/test/sly-mrepl-tests.el: (file-missing Cannot open load file No such file or directory sly-mrepl)