{"id":19238243,"url":"https://github.com/olical/vim-scheme","last_synced_at":"2025-06-12T14:32:26.567Z","repository":{"id":66128291,"uuid":"129740824","full_name":"Olical/vim-scheme","owner":"Olical","description":"Interact with MIT Scheme from Neovim (deprecated, use Conjure instead!)","archived":false,"fork":false,"pushed_at":"2021-03-17T11:12:13.000Z","size":21,"stargazers_count":30,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-21T06:42:08.226Z","etag":null,"topics":["mit-scheme","neovim","scheme","sicp","vim"],"latest_commit_sha":null,"homepage":"https://github.com/Olical/conjure","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Olical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2018-04-16T12:35:16.000Z","updated_at":"2025-04-03T15:31:08.000Z","dependencies_parsed_at":"2023-02-21T20:30:50.127Z","dependency_job_id":null,"html_url":"https://github.com/Olical/vim-scheme","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Olical/vim-scheme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fvim-scheme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fvim-scheme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fvim-scheme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fvim-scheme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Olical","download_url":"https://codeload.github.com/Olical/vim-scheme/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Olical%2Fvim-scheme/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259482688,"owners_count":22864796,"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":["mit-scheme","neovim","scheme","sicp","vim"],"created_at":"2024-11-09T16:29:59.872Z","updated_at":"2025-06-12T14:32:26.542Z","avatar_url":"https://github.com/Olical.png","language":"Vim script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vim-scheme\n\n## Deprecation!\n\nHello, intrepid Lisper! You've stumbled into a project I started around 2018 which has since been completely superseded!\n\nYou should use [Conjure](https://github.com/Olical/conjure) instead, it's the descendent of this project and is _far_ more advanced. It (at the time of writing) has support for the following languages with more to come:\n\n * Clojure + ClojureScript\n * Fennel\n * Janet\n * Hy\n * MIT Scheme\n * Guile\n * Racket\n\nIt's built in Fennel, a Lisp compiled to Lua, using [Aniseed](https://github.com/Olical/aniseed) and it's actively maintained. I promise that Conjure's UX will make working with MIT Scheme so much more pleasant.\n\nIf that hasn't convinced you, please do continue to read, this plugin still works (I think), but I think you'll love Conjure.\n\nRegardless, have a great day!\n\n@Olical\n\n## Introduction\n\n\u003e Warning: Currently depends on [vim-sexp][] for selecting forms.\n\nThis plugin allows you to evaluate [Scheme][] from within your buffer. It delegates evaluation to an [mit-scheme][] REPL started by a Vim/Neovim `:terminal` command.\n\nI wrote this tool to make working through [SICP][] easier, I thought I'd put it out there for use by other Lisp enthusiasts that can't (or won't) leave their beloved modal environment of choice.\n\nSince I'm a [Clojure][] developer by day (and night), I named the commands and bindings after [vim-fireplace][].\n\n## Installation\n\nUse your favourite plugin manager, mine is [vim-plug][].\n\n```viml\nPlug 'Olical/vim-scheme', { 'for': 'scheme', 'on': 'SchemeConnect' }\n\n\" You'll need vim-sexp too for selecting forms.\nPlug 'guns/vim-sexp'\n\n\" And while you're here, tpope's bindings make vim-sexp a little nicer to use.\nPlug 'tpope/vim-sexp-mappings-for-regular-people'\n```\n\n## Usage\n\nThe plugin defines the following things:\n\n * `:SchemeConnect` which starts a REPL in a terminal buffer.\n * `cp{motion...}` evaluates the result of the motion, so `cpaf` is the current form your cursor is on.\n * `cpp` is a shorthand version of `cpaf`, can come in pretty handy.\n * `\u003clocalleader\u003erc` is bound to `SchemeConnect`.\n * `\u003clocalleader\u003err` issues a restart, great for getting out of an error state.\n * `\u003clocalleader\u003ere` evaluates the outer most / top level form and jumps the cursor back to where it was.\n * `\u003clocalleader\u003erf` evaluates the entire file and jumps the cursor back to where it was.\n\n\u003e Note: The `re` and `rf` mappings use the `s` mark for jumping back to where your cursor was at the time of the evaluation. As long as you're not using the `s` mark for anything you shouldn't notice. This can be remapped or even improved in a PR.\n\n## Configuration\n\nYou may set `g:scheme_split_size` to change the size of the terminal that's created when you connect.\n\n```viml\nlet g:scheme_split_size = -10\n```\n\nThanks to [@markx][] you can set `g:scheme_executable` to change the name of the Scheme you wish to work with. If you'd like to work with Racket, for example, you can use this.\n\n```viml\nlet g:scheme_executable = \"racket\"\n```\n\nThe plugin mappings are currently set up for `scheme` or `racket` by default, you may have to pull request in more if you'd like to use them with another filetype.\n\n## Unlicenced\n\nFind the full [unlicense][] in the `UNLICENSE` file, but here's a snippet.\n\n\u003eThis is free and unencumbered software released into the public domain.\n\u003e\n\u003eAnyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\n\nDo what you want. Learn as much as you can. Unlicense more software.\n\n[unlicense]: http://unlicense.org/\n[scheme]: https://en.wikipedia.org/wiki/Scheme_(programming_language)\n[clojure]: https://clojure.org/\n[mit-scheme]: https://www.gnu.org/software/mit-scheme/\n[sicp]: https://mitpress.mit.edu/sites/default/files/sicp/index.html\n[vim-sexp]: https://github.com/guns/vim-sexp\n[vim-fireplace]: https://github.com/tpope/vim-fireplace\n[vim-plug]: https://github.com/junegunn/vim-plug\n[dotfiles]: https://github.com/Olical/dotfiles\n[@markx]: https://github.com/markx\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folical%2Fvim-scheme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folical%2Fvim-scheme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folical%2Fvim-scheme/lists"}