A basic editor. Built as a little programming-toy when I get an itch for C.

2020 December

Just finished gearsix.net and created this project's own homepage!

CHANGELOG (upto 2020 December):


  • commands can now be chained ("!w!q")
  • bugfix to writing files
  • FILE command now accepts no arguments for FILEPATH to set output stream to NULL


  • added "?" commands for querying current the state of abe
    • they work the same as regular commands ("!") and use the same letters, but instead of carrying out the action it will print state
    • currently only used by the FILE cmd ("f", "!f", "?f") since nothing else holds state, for the FILE cmd it just prints the current open file.
  • commands now need to start with a newline


  • commands now use "!", not ""
  • added write command "!w" (better than writing asap)


  • existing file contents get printed when opened


first release!

  • basic i/o
  • quit using "\q"
  • set write target in argv[1]
  • change write target during runtime using "\f FILEPATH"
  • added -h argument to printout help
  • added README

currently any input is written asap.

abe (a basic editor), is just a little toy I started playing with when I wanted to properly understand streams (stdio.h) in the C language. Obviously, with I/O the first thing that comes to mind when you're trying to think of something to develop is a text editor!

Originally the idea was to create a text editor that was more about directing I/O streams (kind of like sed?), however it's started to evolve into a more standard terminal text editor (albiet an incredibly limited one), that's very similair to ed - which I really enjoyed playing around with for a bit.

The tool isn't currently very viable as an actual text-editor, I certainly wouldn't recommend using it for anything than very small, basic file writing (you can'e even navigate up/down lines in the currently open file at the moment). Most of the limitations come from my stubborness to stick to using the c std lib, which in modern day creates a lot of limitations.

My current goals with this are to create a useable text editor with as small and lean a program as possible.

See the README for more details on the tool.