Re: Getting started with Guile-Studio
Olivier Dion <[email protected]> Thu, 09 Apr 2026 08:43:02 -0400
| Newsgroups | gmane.lisp.guile.user |
|---|---|
| Message-ID | <873414uwx5.fsf@laura> |
Hi Spencer!
As far as I know, guile-studio is essentially a pre-default emacs and it
should have Geiser available already.
But I seem to be getting the same error as you:
$ guix shell --pure guile-studio
$ guile-studio
M-x geiser [No match]
Maybe the guile-studio package needs a litle care on the Guix side?
In any case, I think what you could do is to install emacs directly
instead. So start by uninstalling guile-studio and installing emacs:
$ guix remove guile-studio
$ guix install emacs
Then, you can install packages inside emacs directly.
I am really not a good emacs lisper, but here is my config that could
work for you. You just have to copy this into a emacs buffer and
evaluate the buffer with "M-x eval-buffer":
--8<---------------cut here---------------start------------->8---
(require 'package)
(setq package-archives
'(("melpa" . "https://melpa.org/packages/")
("elpa" . "https://elpa.gnu.org/packages/")))
(require 'use-package)
(setq use-package-always-ensure t)
(use-package geiser)
(setq geiser-smart-tab-mode 1)
(setq geiser-mode-smart-tab-p t)
(setq geiser-mode-start-repl-p t)
(setq geiser-repl-per-project-p t)
(setq geiser-repl-send-on-return-p nil)
(setq geiser-repl-history-filename "~/.emacs.d/geiser-history")
(use-package geiser-guile
:requires geiser
:custom (geiser-guile-load-init-file t))
(use-package paredit
:bind
(:map paredit-mode-map
("M-s" . nil)))
(use-package paren-face
:custom (paren-face-regexp "#?[](){}[]")
:config (global-paren-face-mode 1))
(use-package pretty-symbols)
(add-to-list 'auto-mode-alist '("\\.guile\\'" . scheme-mode))
(add-to-list 'auto-mode-alist '("\\.scm\\'" . scheme-mode))
(defun setup-lisp-family ()
(paredit-mode 1)
(pretty-symbols-mode t)
(turn-on-eldoc-mode)
(eldoc-add-command
'paredit-backward-delete
'paredit-close-round)
(eldoc-add-command 'electrify-return-if-match)
(show-paren-mode t))
(defun setup-geiser-repl ()
(pretty-symbols-mode t)
(turn-on-eldoc-mode)
(eldoc-add-command
'paredit-backward-delete
'paredit-close-round)
(eldoc-add-command 'electrify-return-if-match)
(show-paren-mode t))
(add-hook 'scheme-mode-hook #'setup-lisp-family)
(add-hook 'emacs-lisp-mode-hook #'setup-lisp-family)
(add-hook 'geiser-repl-mode-hook #'setup-geiser-repl)
(use-package ac-geiser)
(add-hook 'geiser-mode-hook 'ac-geiser-setup)
(add-hook 'geiser-repl-mode-hook 'ac-geiser-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'geiser-repl-mode))
--8<---------------cut here---------------end--------------->8---
Hopefuly this will help you getting started.
Cheers,
Olivier
On Thu, 09 Apr 2026, Spencer via General Guile related discussions <[email protected]> wrote:
> Is there a guide anywhere, or otherwise documentation on how to get started with Guile?
> I'm hoping to use https://elephly.net/guile-picture-language/manual.html#A-Picture-Vocabulary the Guile Picture Language as an excuse to try out hoot as recommended on this forum https://community.spritely.institute/t/vector-drawing-library-for-hoot/809.
>
> I now have Guile-Studio installed via guix, as recommended by the library but I'm completely stuck on how to run a program after it's been typed in.
>
> "M-x geiser" as suggested by the geiser docs does not seem to be found as a command, and none of the menu items seem to run the entire buffer to the terminal.
>
> Sorry if this is a super basic question, or if I'm totally off base here. I'm much more used to DrRacket.
>
> Thanks,
> - Spencer
--
Olivier Dion