Projects / rho


Rho is a small, very powerful console-based POSIX text editor and mini-IDE with Bash/Emacs key bindings. A configuration file allows the user to create macros using not only any internal function but anything available to a shell command. Keyboard macros (Ctl-Alt-A through Z) can be sourced into the editor for each kind of task, the next sourcing overwriting the last. Rho also allows an unlimited number of templates (sh, awk, python, etc.) to be injected into executable buffers which trap stdout and stderr.

Operating Systems

Recent releases

  •  04 Feb 2012 17:37

    Release Notes: This release is a port to OS X. The port has been provided by a contributor. For POSIX users, rho is unchanged. See the README in the distribution for ported compilation instructions.

    •  24 Jan 2012 23:52

      Release Notes: In rho.docmdline, the ability to open a non-existent file was restored so that you can use "rho newfile" instead of "rho" and then "^X^W newfile". A call was added to remove any dangling tempfiles. A few more unused variables were removed. The command for relocation of the cursor line (^U n ^L) was documented.

      •  27 Dec 2011 23:20

        Release Notes: The envar fillcol has been restored so that the word-wrap column can be set at runtime. Also, list-buffers works in multiple windows now, and the buffer list can be paged up and down.

        •  25 Dec 2011 15:47

          Release Notes: The on-line help has been brought up to date with the editor's current functionality. The Macros section has been reworked so that all legacy elements have either been removed or are noted as no longer present in the cases where the examples are still useful.

          •  24 Dec 2011 00:08

            Release Notes: Buffer.purge_sbuffers was added to purge all sourced buffers. Sourcing a file of macros and key bindings now frees all prior sourced macros and clears the key bindings. Bind.unbind_key was fixed so that it properly determined whether a key was in use. This fixed certain bind_to_key calls. Bind.new_binding was also fixed, even though it worked fine in what should have been a broken state. Bind.clear_sbinding was added in order to clear the key bindings of unsourced buffers.

            Recent comments

            21 Dec 2011 17:49 BD5

            Enough with the daily versions - it's obvious you're doing this just to get on the main page as often as possible.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.