I used Vis full time for a two weeks a couple of months ago. It was pretty nifty. (I'm Emacs user so this was an time-bounded experiment).

Vis is a great of example of the suckless philosophy and of Guy Steele's point about removing the need of features by having synergy between other features. For example they have an immutable piece table to support undo by just moving a pointer. This would mean that as the buffer remains open one would use more and more memory. Instead of implementation a 'garbarge collector' they chose to automatically close a file when its not shown on the screen.

> Instead of implementation a 'garbarge collector' they chose to automatically close a file when its not shown on the screen.

Does that mean you lose the ability to undo actions when you switch buffers? That sounds horrible if you're editing multiple files.

That's not the case, as there are no hidden buffers in vis. If a file is open, it is shown on the screen as either a horizontal or a vertical split. That's the only way to edit multiple files.

Sounds like it's missing a few key features.

Yeah. I love vim's persistent undo. Combine that with the undotree[0] plugin and you never have to worry about losing changes.

It would be really hard for me to switch to an editor without persistent undo.

[0] https://github.com/mbbill/undotree