Member-only story
Scheming with Vim: A Practical Setup for Scheme
For years, Emacs has been considered the go-to editor for Lisp and Scheme programming, largely thanks to powerful tools like Geiser. However, Neovim, with the right configuration and plugins, can offer an equally smooth and productive environment for Scheme coding. In this article, I’ll share my personal setup for writing Chicken Scheme and Racket code efficiently using Neovim.
Setting up Chicken Scheme with Neovim
When working with Chicken Scheme, I’ve followed recommendations available on the Chicken Scheme official site, along with the insights from Evan Hanson’s blog post, Editing Scheme in Vim.
Keyword lookup
One customization I’ve made is to adjust keywordprg
. Rather than simply using chicken-doc
, I've found that using:
setlocal keywordprg=chicken-doc\ scheme
provides results more aligned with my needs.
Completion and navigation
Here’s my concise yet effective after/ftplugin/scheme.vim
:
let b:is_chicken = 1
setlocal makeprg=csc\ %
setlocal complete+=,k~/.local/share/scheme/words
setlocal include=\^\(\(use\\|require-extension\)\s\+
setlocal includeexpr=substitute(v:fname,'$','.scm','')
setlocal…