Getting started
Macros is an Emacs-style, GPU-rendered code editor that you script in Steel — a fast, embedded Scheme. The entire editing experience — commands, keymaps, modes, even the git interface — is written in Steel source that ships with the binary, and every bit of it is yours to read, rebind, and rewrite.
This page gets you installed and oriented. When you're ready to make it yours, head to Configuration and Scripting with Steel.
Install
Download a build for your platform from the downloads page, or build from source:
git clone https://github.com/kgwinnup/macros
cd macros
cargo run --release
Macros runs on macOS, Windows, and Linux. It's native — built on Zed's GPUI framework — so there's no Electron and no web runtime.
First launch
On first launch you get a *scratch* buffer and the built-in default configuration. Macros uses standard Emacs keybindings by default. If you prefer Vim-style modal editing, add (evil-mode) to your config (see Configuration).
The fastest way to learn the editor is from inside it:
- Press C-h t to open the interactive tutorial. It's a normal editable buffer — you read and practice the commands right there.
- Press M-x (that's Alt-x) to open the command palette and fuzzy-search every command.
- Press C-h b to list all active keybindings.
Notation: C-x means hold Control and press x. M-x means hold Meta (Alt/Option) and press x, or press Esc then x. C-x C-f is a two-key chord: C-x followed by C-f.
The essential keys
Whether or not you use modal editing, these editor-level commands always work:
| Key | Command | Does |
|---|---|---|
| C-x C-f | find-file |
Open a file |
| C-x C-s | save-buffer |
Save |
| C-x b | switch-buffer |
Switch buffers (Helm) |
| C-x k | kill-buffer |
Close the current buffer |
| C-x o | other-window |
Move focus to the next pane |
| C-x 2 / C-x 3 | split | Split below / to the right |
| C-x 1 | delete-other-windows |
Close other panes |
| M-x | execute-extended-command |
Run any command by name |
| C-g | keyboard-quit |
Cancel / escape the current action |
| C-x C-c | quit |
Quit Macros |
If you enable modal editing, you move around in Normal state with h j k l and enter Insert state with i. See Modal editing.
Where to go next
- Configuration — your
init.scm, editor options, and config file locations. - Example config — a real, annotated
init.scm(evil +SPCleader) to read and crib from. - Keybindings — the full default keymap and how to rebind any key.
- Getting help — discover commands and bindings without leaving the editor.
- Scripting with Steel — define your own commands, keymaps, and modes.