jpalardy/vim-slime

A vim plugin to give you some slime. (Emacs)

Vim Script

2,072

654 commits

updated Aug 16, 2026

See the code

README

vim-slime

Demo

vim-slime session with R

What is vim-slime?

What is SLIME?

SLIME is an Emacs plugin to turn Emacs into a Lisp IDE. You can type text
in a file, send it to a live REPL, and avoid having to reload all your code
every time you make a change.

So, what is vim-slime?

vim-slime is a humble attempt at getting _some_ of the SLIME features into Vim.
It works with any REPL and isn't tied to Lisp.

Grab some text and send it to a target:

vim-slime sends text to a REPL through a target

The target contains a REPL, maybe Clojure, R or python. If you can type text into it, vim-slime can send text to it.

Why do this? Because you want the benefits of a REPL (instant feedback, no need to reload ...) and the benefits of using Vim (familiar environment, syntax highlighting, persistence ...).

More details in the blog post.

Targets

Configure vim-slime for your desired target:

" for all buffers
let g:slime_target = "tmux"

" and/or as a buffer-level override
let b:slime_target = "wezterm"

" if not explicitly configured, it defaults to `screen`

Many targets are supported, check their documentation for details:

Installation

Use your favorite package manager, or use Vim's built-in package support (since Vim 7.4.1528):

mkdir -p ~/.vim/pack/plugins/start
cd ~/.vim/pack/plugins/start
git clone https://github.com/jpalardy/vim-slime.git

You can try vim-slime in Docker before committing to anything else.

Usage

Put your cursor over the text you want to send and type:

ctrl-c ctrl-c --- the same as slime

(You can just hold ctrl and double-tap c.)

The current paragraph — what would be selected if you typed vip — is automatically selected.

To control exactly what is sent, you can manually select text before calling vim-slime.

Vim Style Mappings

To send text using vim-style mappings, such as slime operator+motion or slime operator+text object see the appropriate section of the advanced configuration documentation.

Config prompt

vim-slime needs to know where to send your text, it will prompt you. It will remember your answers and won't prompt you again.

If you want to reconfigure, type:

ctrl-c v --- mnemonic: "variables"

or call:

:SlimeConfig

Language Support

vim-slime might have to modify its behavior according to the language or REPL you want to use.

Many languages are supported without modifications, while others might tweak the text without explicit configuration:

Advanced Configuration

If plain vim-slime isn't doing exactly what you want, have a look at advanced configuration.

jpalardy/vim-slime

A vim plugin to give you some slime. (Emacs)

Vim Script

2,072

654 commits

updated Aug 16, 2026

See the code

README

vim-slime

Demo

vim-slime session with R

What is vim-slime?

What is SLIME?

SLIME is an Emacs plugin to turn Emacs into a Lisp IDE. You can type text
in a file, send it to a live REPL, and avoid having to reload all your code
every time you make a change.

So, what is vim-slime?

vim-slime is a humble attempt at getting _some_ of the SLIME features into Vim.
It works with any REPL and isn't tied to Lisp.

Grab some text and send it to a target:

vim-slime sends text to a REPL through a target

The target contains a REPL, maybe Clojure, R or python. If you can type text into it, vim-slime can send text to it.

Why do this? Because you want the benefits of a REPL (instant feedback, no need to reload ...) and the benefits of using Vim (familiar environment, syntax highlighting, persistence ...).

More details in the blog post.

Targets

Configure vim-slime for your desired target:

" for all buffers
let g:slime_target = "tmux"

" and/or as a buffer-level override
let b:slime_target = "wezterm"

" if not explicitly configured, it defaults to `screen`

Many targets are supported, check their documentation for details:

Installation

Use your favorite package manager, or use Vim's built-in package support (since Vim 7.4.1528):

mkdir -p ~/.vim/pack/plugins/start
cd ~/.vim/pack/plugins/start
git clone https://github.com/jpalardy/vim-slime.git

You can try vim-slime in Docker before committing to anything else.

Usage

Put your cursor over the text you want to send and type:

ctrl-c ctrl-c --- the same as slime

(You can just hold ctrl and double-tap c.)

The current paragraph — what would be selected if you typed vip — is automatically selected.

To control exactly what is sent, you can manually select text before calling vim-slime.

Vim Style Mappings

To send text using vim-style mappings, such as slime operator+motion or slime operator+text object see the appropriate section of the advanced configuration documentation.

Config prompt

vim-slime needs to know where to send your text, it will prompt you. It will remember your answers and won't prompt you again.

If you want to reconfigure, type:

ctrl-c v --- mnemonic: "variables"

or call:

:SlimeConfig

Language Support

vim-slime might have to modify its behavior according to the language or REPL you want to use.

Many languages are supported without modifications, while others might tweak the text without explicit configuration:

Advanced Configuration

If plain vim-slime isn't doing exactly what you want, have a look at advanced configuration.

Project health

Overall

4.9/10

Maintained

5/10

Code review

7/10
OpenSSF Scorecard

Significant stargazers

Marc Jakobi

297 followers · starred May 2025

Hiroaki Hayashi

112 followers · starred Apr 2021

Fredrik Ekre

274 followers · starred May 2022

Paul Ivanov

532 followers · starred Jul 2024