All pages

Install and first steps

Install

Each release has a binary for Linux (x86_64 and aarch64) and macOS (Apple silicon). It's a single file. Unpack it and put it on your PATH:

tar xzf imp-*.tar.gz
install -m 755 imp-*/imp ~/.local/bin/

On macOS, clear the download quarantine first: xattr -d com.apple.quarantine ~/.local/bin/imp.

To build from source you need Rust and a C compiler:

git clone https://github.com/apisandipas/imp && cd imp
make install

With Nix, run nix profile install github:apisandipas/imp. On NixOS, use this rather than the binary.

A few things imp uses if you have them:

Program For
wl-copy, xclip, xsel or pbcopy The system clipboard
rg (ripgrep) Searching a project
Language servers, such as rust-analyzer Code intelligence; see LSP
git The git interface; see Git

Start it

Command What happens
imp Opens a window with the start screen: recent files and projects
imp notes.txt Opens a file
imp src/ Opens a file browser on a directory
imp --tui Runs in the terminal instead of a window

Without a display, over SSH for example, imp runs in the terminal by itself. To use imp for git commit messages and the like, set export EDITOR="imp --tui".

In the window, C-= and C-- zoom and C-0 resets.

Edit like Vim

imp starts in Vim's normal state. Motions, operators, text objects, counts, ., registers, macros, marks, visual mode, search and :s all work as in Vim. See Vim for the details.

Key What it does
i Insert text; <esc> goes back to normal
:w Save
:q Close the window
u / C-r Undo and redo

Prefer Emacs keys? Press C-z to switch to Emacs state, and again to switch back. See Emacs state.

The space menu

Press SPC in normal state and a menu shows what comes next. Each letter opens a group:

Key Group
SPC f Files: SPC f f finds a file, SPC f r recent files, SPC f s saves
SPC b Buffers: SPC b b switches, SPC b d closes
SPC w Windows: SPC w v splits right, SPC w s splits below
SPC p Projects: SPC p p switches, SPC p f finds a file in the project
SPC s Search: SPC s p searches the project
SPC g Git: SPC g g opens the git status
SPC c Code: language server actions
SPC o Org and terminals
SPC h Help
SPC t Toggles

SPC SPC finds a file. You don't need to learn these by heart: the menu always shows them. When you pause after g, z, [, ] or C-w, imp shows the keys that can follow those too. See Leader and modes.

Run any command

M-x lists every command. Type part of a name to narrow the list. Each command shows its key, if it has one, and what it does.

Get help

Key What it does
SPC h k Press a key, and see what it runs
SPC h f Look up a function and read its docs
SPC h o Look up an option
:help Open the help

See Live Scheme and help.

Next

Make imp yours: Configuring init.scm.