3 Geiser is a generic Emacs/Scheme interaction mode, featuring an
4 enhanced REPL and a set of minor modes improving Emacs' basic scheme
5 major mode. The main functionalities provided are:
7 - Evaluation of forms in the namespace of the current module.
10 - Namespace-aware identifier completion (including local bindings,
11 names visible in the current module, and module names).
12 - Autodoc: the echo area shows information about the signature of
13 the procedure/macro around point automatically.
14 - Jump to definition of identifier at point.
15 - Access to documentation (including docstrings when the
16 implementation provides it).
17 - Listings of identifiers exported by a given module.
18 - Listings of callers/callees of procedures.
19 - Rudimentary support for debugging (list of
20 evaluation/compilation error in an Emacs' compilation-mode
23 Currently supported implementations are Guile and PLT.
25 - Guile works only with the development, vm-based binary. Be sure
26 to customize `geiser-repl-guile-binary' to point to a correct vm
28 - PLT Scheme 4.1.5.5 or better required.
34 (load-file "<path-to-geiser>/elisp/geiser.el")
36 This installs all supported Scheme implementations. You can list
37 explicitly the ones that you want by setting the variable
38 `geiser-impl-installed-implementations' *before* loading geiser.el.
41 (setq geiser-impl-installed-implementations '(plt guile))
43 On opening a scheme file, Geiser will try to guess its Scheme,
44 defaulting to the first in the list.
46 - Check the geiser customization group for some options with:
48 M-x customize-group RET geiser RET
50 In particular, customize `geiser-repl-<impl>-binary' (in
51 geiser-repl), which should point to an executable in your path.
53 - To start a REPL, M-x geiser.
57 *** In Scheme buffers:
59 |---------------------+-------------------------------------------------|
60 | C-c C-z | Switch to REPL |
61 | C-c C-s | Specify Scheme implementation for buffer |
62 |---------------------+-------------------------------------------------|
63 | M-. | Go to definition of identifier at point |
64 | M-, | Go back to where M-. was last invoked |
65 | C-c C-e m | Ask for a module and open its file |
66 |---------------------+-------------------------------------------------|
67 | C-M-x | Eval definition around point |
68 | C-c M-e | Eval definition around point and switch to REPL |
69 | C-x C-e | Eval sexp before point |
70 | C-c C-r | Eval region |
71 | C-c M-r | Eval region and switch to REPL |
72 |---------------------+-------------------------------------------------|
73 | C-c C-m x | Macro-expand definition around point |
74 | C-c C-m e | Macro-expand sexp before point |
75 | C-c C-m r | Marcro-expand region |
76 | C-u C-c C-m [x,e,r] | (With prefix, macro expansions are recursive) |
77 |---------------------+-------------------------------------------------|
78 | C-c C-k | Compile and load current file |
79 | C-c C-l | Load current file |
80 |---------------------+-------------------------------------------------|
81 | C-c C-d d | See documentation for identifier at point |
82 | C-c C-d m | See a list of a module's exported identifiers |
83 | C-c C-d a | Toggle autodoc mode |
84 |---------------------+-------------------------------------------------|
85 | C-c< | Show callers of procedure at point |
86 | C-c> | Show callees of procedure at point |
87 | C-c C-x f | See a generic's methods signatures |
88 |---------------------+-------------------------------------------------|
89 | M-TAB | Complete identifier at point |
90 | M-`, C-. | Complete module name at point |
91 | TAB | Complete identifier at point or indent |
92 | | (If `geiser-mode-smart-tab-p' is t) |
93 |---------------------+-------------------------------------------------|
97 |----------------+-------------------------------------------|
98 | C-c C-z, C-c z | Start Scheme REPL (if it's not running) |
99 |----------------+-------------------------------------------|
100 | M-. | Edit identifier at point |
101 | TAB, M-TAB | Complete identifier at point |
102 | M-`, C-. | Complete module name at point |
103 |----------------+-------------------------------------------|
104 | M-p, M-n | Prompt history, matching current prefix |
105 |----------------+-------------------------------------------|
106 | C-c k | Compile and load scheme file |
107 | C-c l | Load scheme file |
108 |----------------+-------------------------------------------|
109 | C-c d | See documentation for identifier at point |
110 | C-c m | See module documentation |
111 | C-c a | Toggle autodoc mode |
112 |----------------+-------------------------------------------|
114 *** In the documentation browser:
116 |-----------+----------------------------------------------|
117 | n/p | next/previous page |
118 | l | previous page |
119 | SPC/S-SPC | scroll up/down |
120 | TAB/S-TAB | next/previous link |
121 | k | kill current page and go to previous or next |
123 | c | clean browsing history |
124 | M-. | edit identifier at point |
125 | C-cz | switch to REPL |
127 |-----------+----------------------------------------------|
129 *** In backtrace (evaluation/compile result) buffers:
131 - Default error navigation keys used by Emacs' compilation mode
132 (e.g. M-g n, M-g p for next/previous error).