johnsonjh / vce

vce: Visual Code Editor (personal fork)

Home Page:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


VCE, the Visual Code Editor, is a small, fast, and portable text editor for terminals.

It is designed to provide a simple, consistent editing experience between modern Unix and retro computers.

VCE is the text editor for my simple retro software suite, which includes an assembler, linker, archiver, and disassembler.

VCE is built upon Anthony's Editor.


People seem to not like CP/M ED very much. I can somewhat understand this. After all, what is the point of having today's video terminals if we are still using yesterday's line editors?

Originally I was going to use qe from CP/Mish but I could not get qe to work properly on a modern terminal.

I learned about VDE from a video by the CP/Mish author but unfortunately VDE is not open source.

I really liked the look and feel of VDE. I also figured I could go even simpler. And so, VCE was born.

I also wanted to experiment with the gap buffer technique found in Anthony's Editor. Specifically, when working with systems that are memory constrained, I wanted to have a way of knowing how much space is remaining in memory to work with. There is a rest counter at the top right of VCE with that information.


make for Unix, make cpm for CP/M, make dos for MS-DOS.


usage: vce [file]


  • ^E : up
  • ^S : left
  • ^D : right
  • ^X : down
  • Esc-g : goto line
  • Esc-l : redraw screen
  • Esc-s : save
  • Esc-q : quit (does not prompt saving)
  • Esc-v : display version number

Arrow keys will also move the cursor on Unix terminals.

You must press Enter after saving to continue working.


For those in jurisdictions that recognize the public domain, VCE is placed into the public domain.

For those in jurisdictions that do not recognize the public domain, VCE is released under the ISC License.

See LICENSE for a copy of the ISC license.


ANSI terminals and the MS-DOS console only (for now...).

No automatic newline at EOF.


I don't have any CP/M terminals. I have VT52 emulation via tnylpo but that is it. More terminal support would be good.

Terminal size should be autodetected, at least on Unix.

CP/M might be real slow on real hardware.

CP/M garbles the display of the first few characters after typing your first keystroke.

The display ticks up one if you are the very bottom of a file and begin writing. It would be nice to fix that.

It's always possible that the rest counter is incorrect.

No Unicode. Hopefully that can be accomplished.

ezoic increase your site revenue


vce: Visual Code Editor (personal fork)

License:ISC License


Language:C 97.3%Language:Makefile 2.7%