{"id":13596187,"url":"https://github.com/tpope/vim-fireplace","last_synced_at":"2025-05-14T07:09:12.932Z","repository":{"id":5780453,"uuid":"6994356","full_name":"tpope/vim-fireplace","owner":"tpope","description":"fireplace.vim: Clojure REPL support","archived":false,"fork":false,"pushed_at":"2024-11-01T19:25:28.000Z","size":930,"stargazers_count":1754,"open_issues_count":28,"forks_count":139,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-04-09T19:16:01.072Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.vim.org/scripts/script.php?script_id=4978","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tpope.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":"CONTRIBUTING.markdown","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"tpope"}},"created_at":"2012-12-04T04:30:48.000Z","updated_at":"2025-03-28T20:19:32.000Z","dependencies_parsed_at":"2024-01-08T18:03:39.277Z","dependency_job_id":"e2096920-9002-47b5-9030-76b68b47dd7d","html_url":"https://github.com/tpope/vim-fireplace","commit_stats":{"total_commits":657,"total_committers":57,"mean_commits":"11.526315789473685","dds":0.136986301369863,"last_synced_commit":"614622790b9dbe2d5a47b435b01accddf17be3e6"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fvim-fireplace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fvim-fireplace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fvim-fireplace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tpope%2Fvim-fireplace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tpope","download_url":"https://codeload.github.com/tpope/vim-fireplace/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092779,"owners_count":22013290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T16:02:11.502Z","updated_at":"2025-05-14T07:09:07.922Z","avatar_url":"https://github.com/tpope.png","language":"Vim Script","funding_links":["https://github.com/sponsors/tpope"],"categories":["Vim Script","Vim script","Clojure Tools, Libraries, and Frameworks","Editor Plugins"],"sub_categories":["JavaScript Libraries for Machine Learning"],"readme":"# fireplace.vim\n\nThere's a REPL in Fireplace, but you probably wouldn't have noticed if I hadn't\ntold you.  Such is the way with fireplace.vim.  By the way, this plugin is for\nClojure.\n\n## Installation\n\nFirst, set up [cider-nrepl][].  (If you skip this step, only a subset of\nfunctionality will be available.)\n\nInstall Fireplace using your favorite package manager, or use Vim's built-in\npackage support:\n\n    mkdir -p ~/.vim/pack/tpope/start\n    cd ~/.vim/pack/tpope/start\n    git clone https://tpope.io/vim/fireplace.git\n    vim -u NONE -c \"helptags fireplace/doc\" -c q\n\nYou might also want [salve.vim][] for assorted static project support.\n\n## Features\n\nThis list isn't exhaustive; see the `:help` for details.\n\n### Transparent setup\n\nFireplace talks to nREPL.  With Leiningen and Boot, it connects automatically\nusing the `.nrepl-port` file created when you run `lein repl` or `boot repl`.\nIf you are starting nREPL some other way, run `:FireplaceConnect host:port`.\nYou can connect to multiple instances of nREPL for different projects, and it\nwill use the right one automatically.  ClojureScript support is just as\nseamless with [Piggieback][].\n\nIf you're using the new [Clojure CLI][], you can follow the instructions for\n[running cider-nrepl with `clj`][cider-nrepl-via-clj].\nBriefly, `clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version \"0.21.1\"} }}'\n-m nrepl.cmdline --middleware \"[cider.nrepl/cider-middleware]\"` should do the trick.\nThe [cider-nrepl][cider-nrepl-via-clj] docs also show you how you can add an alias to\nyour user's `~/.clojure/deps.edn` file, letting you more simply run `clj -A:cider-clj`.\n\nOh, and if you don't have an nREPL connection, installing [salve.vim][]\nlets it fall back to using `java clojure.main` for some of the basics, using a\nclass path based on your Leiningen or Boot config.  It's a bit slow, but a\ntwo-second delay is vastly preferable to being forced out of my flow for a\nsingle command, in my book.\n\n[cider-nrepl]: https://docs.cider.mx/cider-nrepl/usage.html\n[cider-nrepl-via-clj]: https://docs.cider.mx/cider-nrepl/usage.html#via-clj\n[Piggieback]: https://github.com/nrepl/piggieback\n[Clojure CLI]: https://clojure.org/guides/deps_and_cli\n[classpath.vim]: https://github.com/tpope/vim-classpath\n[salve.vim]: https://github.com/tpope/vim-salve\n\n### Not quite a REPL\n\nYou know that one plugin that provides a REPL in a split window and works\nabsolutely flawlessly, never breaking just because you did something innocuous\nlike backspace through part of the prompt?  No?  Such a shame, you really\nwould have liked it.\n\nI've taken a different approach in Fireplace.  `cq`  (Think \"Clojure\nQuasi-REPL\") is the prefix for a set of commands that bring up a *command-line\nwindow* — the same thing you get when you hit `q:` — but set up for Clojure\ncode.\n\n`cqq` prepopulates the command-line window with the expression under the\ncursor.  `cqc` gives you a blank line in insert mode.\n\n### Evaluating from the buffer\n\nStandard stuff here.  `:Eval` evaluates a range (`:%Eval` gets the whole\nfile), `:Require` requires a namespace with `:reload` (`:Require!` does\n`:reload-all`), either the current buffer or a given argument.  `:RunTests`\nkicks off `(clojure.test/run-tests)` and loads the results into the quickfix\nlist.\n\nThere's a `cp` operator that evaluates a given motion (`cpp` for the\ninnermost form under the cursor). `cm` and `c1m` are similar, but they only\nrun `clojure.walk/macroexpand-all` and `macroexpand-1` instead of evaluating\nthe form entirely.\n\nAny failed evaluation loads the stack trace into the location list, which\ncan be easily accessed with `:lopen`.\n\n### Navigating and Comprehending\n\nI was brand new to Clojure when I started this plugin, so stuff that helped me\nunderstand code was a top priority.\n\n* `:Source`, `:Doc`, and `:FindDoc`, which map to the underlying\n  `clojure.repl` macro (with tab complete, of course).\n\n* `K` is mapped to look up the symbol under the cursor with `doc`.\n\n* `]D` is mapped to look up the symbol under the cursor with `source`.\n\n* `]\u003cC-D\u003e` jumps to the definition of a symbol (even if it's inside a jar\n  file).  `\u003cC-]\u003e` does the same and uses the tag stack.\n\n* `gf`, everybody's favorite \"go to file\" command, works on namespaces.\n\nWhere possible, I favor enhancing built-ins over inventing a bunch of\n`\u003cLeader\u003e` maps.\n\n### Omnicomplete\n\nBecause why not?  It works in the quasi-REPL too.\n\n## FAQ\n\n\u003e Why does it take so long for Vim to start up?\n\nThat's either [classpath.vim][] or [salve.vim][].\n\n## Self-Promotion\n\nLike fireplace.vim? Follow the repository on\n[GitHub](https://github.com/tpope/vim-fireplace) and vote for it on\n[vim.org](http://www.vim.org/scripts/script.php?script_id=4978).  And if\nyou're feeling especially charitable, follow [tpope](http://tpo.pe/) on\n[Twitter](http://twitter.com/tpope) and\n[GitHub](https://github.com/tpope).\n\n## License\n\nCopyright © Tim Pope.  Distributed under the same terms as Vim itself.\nSee `:help license`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpope%2Fvim-fireplace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftpope%2Fvim-fireplace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftpope%2Fvim-fireplace/lists"}