Re: Getting started with Guile-Studio

MSavoritias <[email protected]> Thu, 9 Apr 2026 16:51:27 +0300
Newsgroups gmane.lisp.guile.user
Message-ID <[email protected]>
fyi Doom Emacs also has a scheme/guile mode and quite a few things to 
help with indentation. Its what I am using. It also has autocomplete and 
a bunch of other nice defaults to make Emacs usable.

You just uncomment them to enable them and run doom upgrade && doom sync


MSavoritias

On 4/9/26 15:43, Olivier Dion wrote:
> 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