Posted September 22, 2025 by screwtape
#NicCLIM #Common LIsp #Common Lisp Interface Manager #Map editor #Introduction
I will go over the big evolutions of NicCLIM here, uniquely, quickly.
The way NicCLIM has come to work is that you make spacetime-boxes which are like xygrid × z × time.
NicCLIM is a 2D table grid editor, but your layer conceivably has an up, down, past and future (as well as past and future neighbors through time).
Because the maps and networks of maps is eventually too large to fit in memory at once, NicCLIM keeps simple lisp data files in your working directory and only has one map=layer loaded at once normally.
So just a layer editor, kind of. It looks like this, though annoyingly here I was entering unicode characters that McCLIM does not render yet:
The useage is just a little bit like vi. You move a cursor around a 2D tabled map of your current layer, and either put things into your cursor, or your cursor into things, or change your cursor.
Like vi, I included storing macros (lists of actions) and the ability to re-execute those lists of actions, e.g. from different starting positions.
Unlike vi, NicCLIM is hosted by a common lisp image. So while vi’s “lisp mode” may “never be implemented”, NicCLIM also lets you directly sing out to the host common lisp, similar to the macro system.
The host common lisp can also control NicCLIM (that is what is happening in the GIF).
Honestly, this blog post I just wrote is quite good: https://screwlisp.small-web.org/lispgames/NicCLIM-example-html-table/ I noticed that I sometimes missed steps like “download the file from https://lispy-gopher-show.itch.io/nicclim “ or “compile and load that file into your lisp image” in some of my earlier notes.
At a high level (see that article for a practical example)