/home/ /patches/ /releases/ /source/ /news/ /wiki/ /rss/

The text editor sim

sim is a simple, interactive, multi-file text editor designed for screens with monospaced font. It is heavily inspired on the 'vim' and 'sam' text editors, hence the name sim. The main goal of this software is portability. It only depends only on the C89 standard, and tries to minimize the usage of system calls as much as possible, making it easy (or not even necessary) to port to another environment.

Version 0.2 released

This version adds stability and new features to sim:

  • Simplified do/undo functionality
  • Improved the change() command
  • Introduced dot(), yank() and paste() commands
  • Deleted text can now be pasted
  • Now appends a newline character on the file
  • Now zeroes the file buffer when closing a file
  • Bugfix: searched for words beyond current file buffer
  • Bugfix: crashed if file had no name while saving
  • Bugfix: crashed if opened file did not exist

Additionally, two new patches have been released alongside version 0.2: removewhitespace and pipe. Both can be downloaded from /patches/

Download the latest release

Clone the repository:
git clone git://ssnf.xyz/sim



If you want to contribute to the sim project, make sure to read the mailing list guidelines below so that your post does not get ignored.

There are two kinds of patches: the ones you consider necessary for the project (upstream patches), and the ones that you consider that fit your personal taste (personal patches). For the former type of patch, please submit them on the 'hackers' mailing list, and for the latter, they should be sent to the 'dev' mailing list.

All patches must be sent as inline text, for easier review.

Mailing lists

  • dev@ssnf.xyz - for general discussion/bug reports about the projects hosted on my servers and for personal patch sharing.
  • hackers@ssnf.xyz - for upstream patch discussion.
  • news@ssnf.xyz - for news updates on my projects (read-only)

List commands

Replace LIST with your desired list name.

  • LIST+subscribe@ssnf.xyz - subscribe to the mailing list. (read/write)
  • LIST+subscribe-digest@ssnf.xyz - subscribe to the digest version of the mailing list. (read/write)
  • LIST+subscribe-nomail@ssnf.xyz - subscribe to the nomail version of the mailing list. (write)
  • LIST+unsubscribe@ssnf.xyz - unsubscribe to the mailing list.
  • LIST+unsubscribe-digest@ssnf.xyz - unsubscribe to the digest version of the mailing list.
  • LIST+unsubscribe-nomail@ssnf.xyz - unsubscribe to the nomail version of the mailing list.
  • LIST+get-N@ssnf.xyz - retrieve message number N from the list's archive.
  • LIST+help@ssnf.xyz - get more information about commands or how the mailing list works.


  • Don't send HTML mails. Use plain-text UTF-8.
  • Don't top-post. Bottom-post.
  • When creating new posts on the mailing lists, make sure the subject is prepended with the project name you're refering to.

    For example:

    	Subject: [sim] cursor behaving weirdly
  • If submitting a patch, append [patch] to the project name and if it is a personal patch, apply the following syntax to your subject (SHORTHASH is the upstream commit that the patch was made for):
    	Subject: [sim][patch] patchname-YYYYMMDD-SHORTHASH.diff

    Mail not following these guidelines will be ignored.