HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
tpope
vim-fireplace
Vim Script2013–2022
tpope / vim-fireplace

vim-fireplace

fireplace.vim: Clojure REPL support

15Distinct people
16Mentions
0Explicit recommenders
1.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

fireplace.vim: Clojure REPL support

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year16 dated mentions

Observed mentions: 2013-03-18 13:10:10 UTC to 2022-12-13 01:25:56 UTC.

02468102013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 9 mentions; 2 submissions, 7 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC927
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC202
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC202
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
fireplace.vim There's a REPL in Fireplace, but you probably wouldn't have noticed if I hadn't told you. Such is the way with fireplace.vim. By the way, this plugin is for Clojure. Installation First, set up cider-nrepl. (If you skip this step, only a subset of functionality will be available.) Install Fireplace using your favorite package manager, or use Vim's built-in package support: mkdir -p ~/.vim/pack/tpope/start cd ~/.vim/pack/tpope/start git clone https://tpope.io/vim/fireplace.git vim -u NONE -c "helptags fireplace/doc" -c q You might also want salve.vim for assorted static project support. Features This list isn't exhaustive; see the :help for details. Transparent setup Fireplace talks to nREPL. With Leiningen and Boot, it connects automatically using the .nrepl-port file created when you run lein repl or boot repl. If you are starting nREPL some other way, run :FireplaceConnect host:port. You can connect to multiple instances of nREPL for different projects, and it will use the right one automatically. ClojureScript support is just as seamless with Piggieback. If you're using the new Clojure CLI, you can follow the instructions for running cider-nrepl with clj. Briefly, clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.21.1"} }}' -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]" should do the trick. The cider-nrepl docs also show you how you can add an alias to your user's ~/.clojure/deps.edn file, letting you more simply run clj -A:cider-clj. Oh, and if you don't have an nREPL connection, installing salve.vim lets it fall back to using java clojure.main for some of the basics, using a class path based on your Leiningen or Boot config. It's a bit slow, but a two-second delay is vastly preferable to being forced out of my flow for a single command, in my book. Not quite a REPL You know that one plugin that provides a REPL in a split window and works absolutely flawlessly, never breaking just because you did something innocuous like backspace through part of the prompt? No? Such a shame, you really would have liked it. I've taken a different approach in Fireplace. cq (Think "Clojure Quasi-REPL") is the prefix for a set of commands that bring up a command-line window — the same thing you get when you hit q: — but set up for Clojure code. cqq prepopulates the command-line window with the expression under the cursor. cqc gives you a blank line in insert mode. Evaluating from the buffer Standard stuff here. :Eval evaluates a range (:%Eval gets the whole file), :Require requires a namespace with :reload (:Require! does :reload-all), either the current buffer or a given argument. :RunTests kicks off (clojure.test/run-tests) and loads the results into the quickfix list. There's a cp operator that evaluates a given motion (cpp for the innermost form under the cursor). cm and c1m are similar, but they only run clojure.walk/macroexpand-all and macroexpand-1 instead of evaluating the form entirely. Any failed evaluation loads the stack trace into the location list, which can be easily accessed with :lopen. Navigating and Comprehending I was brand new to Clojure when I started this plugin, so stuff that helped me understand code was a top priority. :Source, :Doc, and :FindDoc, which map to the underlying clojure.repl macro (with tab complete, of course). K is mapped to look up the symbol under the cursor with doc. ]D is mapped to look up the symbol under the cursor with source. ]<C-D> jumps to the definition of a symbol (even if it's inside a jar file). <C-]> does the same and uses the tag stack. gf, everybody's favorite "go to file" command, works on namespaces. Where possible, I favor enhancing built-ins over inventing a bunch of <Leader> maps. Omnicomplete Because why not? It works in the quasi-REPL too. FAQ Why does it take so long for Vim to start up? That's either classpath.vim or salve.vim. Self-Promotion Like fireplace.vim? Follow the repository on GitHub and vote for it on vim.org. And if you're feeling especially charitable, follow tpope on Twitter and GitHub. License Copyright © Tim Pope. Distributed under the same terms as Vim itself. See :help license.
Read the full README on GitHub

What Hacker News says

16 sources
I haven't used vim in years but there's a package by Tim Pope: https://github.com/tpope/vim-fireplace This is a key piece of the REPL workflow: you rarely type into the REPL, you use commands in your editor to select code and run it in a REPL. The idea is that you eval stuff in the same place you type, and that gets run in the same environment over and over again without having to restart it or redefine the data you're using to iterate your functions.
In Clojure is a trinity of language, REPL, and structural editor
Brief overview of the landscape: For clojure/clojure-py/clojurescript, I start out with vim-sexp[0] (for vim motions over sexpressions; some people prefer the more common paredit.vim[1]), rainbow-parenthesis.vim[2], and vim-clojure-static[3] (for indention rules, syntax highlighting, etc). You'll want those regardless of which way you use to interact with Clojure. On top of that, you probably want some way to access a REPL. The top contenders seem to be: fireplace[4] (NREPL-based quasi-repl) slimv[5] (SLIME for CL, Clojure, Schemes, etc) vimux[6]/tslime[7] (copies from vim registers to a tmux/screen window where you presumably run lein repl or something) fireplace works pretty well. In theory, it can pick up the rest of the clojure world's nrepl middleware for advanced features. In practice, nobody seems to be doing this. I haven't looke
Read the rest
d into the codebase to figure out how to add support for various nrepl middleware, but it should be possible. slimv doesn't seem to be as popular in Clojure land. Most new development is based around nrepl, but you get some (not all) of its functionality thanks to ritz[8] being abstracted. I use vimux and normal vim shortcuts/macros to abstract my workflow. I like being able to handle cljs and clj in the same manner that I handle Python, Hy, Perl, and JavaScript. This is probably the route that requires the most vim knowledge and comfort with programming your lisp environment to make work. [0] - https://github.com/guns/vim-sexp [1] - https://github.com/vim-scripts/paredit.vim [2] - https://github.com/kien/rainbow_parentheses.vim [3] - https://github.com/guns/vim-clojure-static [4] - https://github.com/tpope/vim-fireplace [5] - https://github.com/kovisoft/slimv [6] - https://github.com/benmills/vimux [7] - https://github.com/kikijump/tslime.vim [8] - https://github.com/pallet/ritz
In Ask HN: How to get started with a modern Lisp
> Ask the Clojure people how THEIR IDE support is Good from what I understand. Counterclockwise for Eclipse (https://code.google.com/p/counterclockwise/) received commercial support and sponsorship last year and is under active development. Chris Granger's Light Table (http://www.chris-granger.com/lighttable/) is an interesting contemporary look at an IDE. Tim Pope's fireplace (https://github.com/tpope/vim-fireplace) adds inline evaluation, a repl and some other tools to Vim. There's emacs of course.
In Scala: sharp and gets things cut
To get most of the benefits of this in Vim, try Vim fireplace. https://github.com/tpope/vim-fireplace Everything you want but the debugger. You'll have to get Ritz on its own for that. I usually develop with clojure code on Vim in one terminal window and a repl running in another terminal. It's really nice to have them working together in the background with nRepl and Fireplace. I wrote a nice hack so that line numbers and file names in stack traces are useful in functions I've updated in my files over the nRepl transport.
In Clojure Debugging: Emacs, nREPL, and Ritz

Showing the 15 most recent of 16 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.