Lisp in Vim with Slimv or Vlime (2019)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • cl-annot

    Discontinued Python-like Annotation Syntax for Common Lisp

  • I've been really happy with slimv. There are a few things missing that I'd like to have were I to find myself working on a really large program with a bunch of other programmers, though I suspect the commercial Lisps offer a good approximation. Besides the trivial things like more auto-refactoring tools (thanks to cross-referencing I can at least get a list of all the locations something is used and jump to edit them one by one if necessary) and project organization tools (I've started using @export from https://github.com/m2ym/cl-annot rather than going back to my package definition to keep adding symbols to the export list) I'd like a better line debugger. It hasn't been a hurdle so far because what's there is good enough (as the article describes, when you hit the debugger you get your stack, you can inspect stuff in the frame, you can recompile and then restart computation from a frame instead of aborting the whole thing). If your declaim settings are right you can also step your code and so on within vim but it's kind of clunky, I'd rather launch a dedicated GUI that's at least as nice as the old Insight GDB wrapper. When inspecting complex data I've started to use the McCLIM app Clouseau: https://github.com/McCLIM/McCLIM/tree/master/Apps/Clouseau I bound ,ci to call (clouseau:inspect) on the symbol and that launches a nice enough GUI to explore it. (Repeated periodically in a thread also serves as a poor man's variable watcher...) A handful of other vim plugins make the full experience even better (even when not writing lisp).

    It's been pretty amusing watching the LSP landscape evolve for other languages, it's almost like swank for CL. But it's rather nice to have the server be embedded in the process itself. On my personal web server I have a compiled lisp binary running, but I shipped it with swank listening on a local port, so if I want to change something without rebuilding and redeploying I can just SSH in while forwarding port 4005, connect to the lisp image with my local editor, and recompile functions or whatever. At my last job I also inserted ABCL into the huge Java app on my dev box and had it start a swank server, letting me connect with vim and mess around -- it was mostly useful for quickly launching system tests which otherwise had a dedicated clunky browser UI, and writing some code to quickly extract or insert data. I had some designs to write some webdriver tests in Lisp and demo how the debugging experience when one fails can be much better (not having to restart the whole flow because a UI element changed its class name or whatever and threw an exception) so as to introduce the language to the broader company officially, but never got around to it before I left.

  • McCLIM

    Discontinued An implementation of the Common Lisp Interface Manager, version II

  • I've been really happy with slimv. There are a few things missing that I'd like to have were I to find myself working on a really large program with a bunch of other programmers, though I suspect the commercial Lisps offer a good approximation. Besides the trivial things like more auto-refactoring tools (thanks to cross-referencing I can at least get a list of all the locations something is used and jump to edit them one by one if necessary) and project organization tools (I've started using @export from https://github.com/m2ym/cl-annot rather than going back to my package definition to keep adding symbols to the export list) I'd like a better line debugger. It hasn't been a hurdle so far because what's there is good enough (as the article describes, when you hit the debugger you get your stack, you can inspect stuff in the frame, you can recompile and then restart computation from a frame instead of aborting the whole thing). If your declaim settings are right you can also step your code and so on within vim but it's kind of clunky, I'd rather launch a dedicated GUI that's at least as nice as the old Insight GDB wrapper. When inspecting complex data I've started to use the McCLIM app Clouseau: https://github.com/McCLIM/McCLIM/tree/master/Apps/Clouseau I bound ,ci to call (clouseau:inspect) on the symbol and that launches a nice enough GUI to explore it. (Repeated periodically in a thread also serves as a poor man's variable watcher...) A handful of other vim plugins make the full experience even better (even when not writing lisp).

    It's been pretty amusing watching the LSP landscape evolve for other languages, it's almost like swank for CL. But it's rather nice to have the server be embedded in the process itself. On my personal web server I have a compiled lisp binary running, but I shipped it with swank listening on a local port, so if I want to change something without rebuilding and redeploying I can just SSH in while forwarding port 4005, connect to the lisp image with my local editor, and recompile functions or whatever. At my last job I also inserted ABCL into the huge Java app on my dev box and had it start a swank server, letting me connect with vim and mess around -- it was mostly useful for quickly launching system tests which otherwise had a dedicated clunky browser UI, and writing some code to quickly extract or insert data. I had some designs to write some webdriver tests in Lisp and demo how the debugging experience when one fails can be much better (not having to restart the whole flow because a UI element changed its class name or whatever and threw an exception) so as to introduce the language to the broader company officially, but never got around to it before I left.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • conjure

    Interactive evaluation for Neovim (Clojure, Fennel, Janet, Racket, Hy, MIT Scheme, Guile, Python and more!)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts