You can use indentation provided by a SLIME contribution:
You may want to add that to the list slime-contribs- see Loading Contribs in the SLIME manual.
One can add it to the list of SLIME contributions:
(add-to-list 'slime-contribs 'slime-cl-indent)
From the CL side the function you are looking for is swank::eval-in-emacs to which you pass a the code you want to evaluate in emacs. You can see an example here, to make emacs run the graphivz command and open the resulting png in a buffer. From the emacs side the function you are looking for is slime-eval (found in slime.el)
I think geiser-mode may provide what you are looking for at least for guile and racket, but apparently not MIT Scheme. I know that provides M-. to jump to symbol definition in environment, completion, and inline documentation help. Take a look at the introduction, and cheat sheet for a quick overveiw of features.
Alternative, it does appear mit-scheme has ...
I also considered binding M-. to a wrapper function [...] but I want the "else" clause to do whatever M-. would have done if evil wasn't enabled.
You could bind it to a conditional binding, the manual explains it for menu items, but it works for key bindings as well, (elisp) Extended Menu Items:
the extended format binding looks like this:
I think the following should mostly do what you want
(defvar w3m-dedicated-window nil)
(defun w3m-browse-url-dedicated-window (url &optional new-session)
(let ((w3m-pop-up-windows t))
(if (and w3m-dedicated-window
(w3m-browse-url url ...
It is simple as:
Open your lisp file with fibonachi function
Issue M-x slime
Place you cursor over fibonachi function and press C-c C-c to evaluate/compile it in Slime.
switch to slime window and call (fibonachi 10)
Screenshot example with hello-world function:
I found, it is more appropriate to add into contribs 'slime-indentation. it will load slime-cl-indent.
And after that, you can use this code to choose required indentation style:
(setq lisp-indent-function 'common-lisp-indent-function)
(setq common-lisp-style "sbcl")
Available styles are: basic, classic, modern and sbcl. All of them are defined in slime-...
The examples I'm aware of use either XEmacs or SXEmacs (a fork of XEmacs) and their module/FFI support to extend them with C or existing C functions.
wand-mode: Combines FFI and the imagemagick library for simple image manipulation, such as red-eyes removal.
xwem: Emacs as window manager. Nuff said.
I recall Steve Youngs (the SXEmacs maintainer) speaking ...
According to commit 2e5538a the long deprecated function slime-face-inheritance-possible-p has been removed from slime in May 2015.
You probably installed the package slime-repl via marmalade, where it is currently listed as version 20100404, e.g. being from 2010 and thus very old.
As of now (October 2015) the package slime also contains the slime-repl.el ...
You should be able to permanently change the face via the customization facility. Try:
M-x customize-face slime-repl-inputed-output-face
Then you can change the foreground color directly, and if you save the changes (Apply and Save), the changes will be stored for future use.
Note that this requires that slime is already started before you can make the ...
The easiest way is to parametrize the call slime-eval, using funcall and a defvar/defcustom and take advantage use of sly's retro contrib, which allows the user to refer to the slynk pacage by the name of swank. Besides the replacing (slime-eval ...) with (funcall org-babel-lisp-eval-fn ...) the other thing we must do is to require slime or sly when ...
(add-to-list 'auto-mode-alist '("\\.cl\\'" . slime-mode))
(add-to-list 'auto-mode-alist '("\\.asd\\'" . slime-mode))
to your init/config file. Then files with those extensions will use slime-mode by default. This pattern of (add-to-list 'auto-mode-alist '("\\.EXTENSION\\'" . MODE)) is a good way to have files with the extension EXTENSION open ...
For what it may be worth, the solution suggested above did not work in its original form but it works with evil-normal-state-map:
(define-key evil-normal-state-map (kbd "M-.")
`(menu-item "" evil-repeat-pop :filter
,(lambda (cmd) (if (eq last-command 'evil-repeat-pop) cmd))))
You can achieve this by adjusting the value of display-buffer-alist:
(quote (("\\*inferior-lisp\\*" display-buffer-pop-up-frame
This setting tells Emacs that a buffer with the name matching the regular expression "\*inferior-lisp\*" should be displayed in a new (pop-up) frame.
(You can also customize ...
slime-repl-mode overrides in slime-repl-mode-map the key-binding for electric-pair-delete-pair. The override is not very surprising. It is just backward-delete-char-untabify. The binding in global-map is delete-backward-char. If you do not really need the untabify part in the repl removing the override shouldn't do any harm.
Just put the following Elisp ...
Thanks to @Dan for suggesting to use autoload.
Instead of detecting the file type, I binded the load to the slime function, like this:
(autoload 'slime "path/to/slime-helper.el "Launch SLIME" t nil)
Evaluating this expression tells Emacs to automatically load the
library slime-helper.el from load-path, when slime is called for the
first time—either ...
It still works. You need to have the file in the contrib directory under .emacs.d/elpa/slime-20170319.1601, then do something like
(push 'slime-repl-ansi-color slime-contribs)
to enable it.
It interfaces with slime through the slime-repl-emit function.
Not sure if that's applicable here, but there is a chance to do that on the CLOS level, if the CLOS implementation supports the meta-object protocol (MOP).
Using Clozure CL - a Common Lisp implementation - here. This maybe a little bit different depending on the implementation.
; we need to define a new meta-class, which is a subclass from
According to the doc-string of the variable split-window-preferred-function, the value should be a "[f]unction called by 'display-buffer' routines to split a window." The default value is split-window-sensibly, which has a semi-lengthy doc-string that talks about (in part) the variables split-height-threshold and split-width-threshold; and, those variables ...
You are using the wrong kind of quotes. I just tried:
(setq foo “bar”)
and got the same error. This command worked for me:
(setq foo "bar")
So you need to change all instances of “ to " (and probably also ‘ to ').
Using (slime) by itself already splits the buffer, so a separate function to split the buffer is unneeded. By itself it's a one-liner, but to avoid annoying questions and unintended restarts, we need one more statement to check if a slime process is already running:
(add-hook 'lisp-mode-hook '(lambda ()
(unless (get-process "...
For years I've used the rgr/context-help solution from the EmacsWiki for this, with some slight tweaks. A few aspects still bothered me, though, so this question inspired me to write a new variant of that as a global minor mode. Among other differences, this utilises help-xref-interned to display all (variable, function, face) kinds of help for a symbol ...
This is an extremely late answer, but two additional possibilities exist:
emacs-firefox-remote and jss. Neither has unfortunately been maintained in a rather long time.
The former does seem to at least have the ability to connect to firefox, retrieve some sort of information, and disconnect, though not very much else.
The latter is designed to be more ...
If you use the slime version that matches swank-js then everything just works. Specifically, I checked out the 2012-02-12 slime branch and made sure that slime-js.el was in that slime/contrib directory and everything just worked!
SLIME from package-install can be finicky at times.
git clone https://github.com/slime/slime
(add-to-list 'load-path "~/git/slime")
After this, M-x slime. It will take a short time to compile
before the first run. Try sbcl if Clozure doesn't work (I'm using sbcl and I just installed it on my laptop).