Joy is a modal line-based text editor written in Julia. This is a toy project; it is not a full-fledged text editor and parts of the foundation still need to be thought out. The goal of the project is a modal editor that is both implemented and extensible in Julia.
julia> Pkg.clone("https://github.com/lancebeet/Joy.jl")
To open existing text file:
julia> using Joy
julia> buffer = Joy.open("textfile")
To exit:
:quit()
To save:
:save("filename")
Reattaching to an existing buffer from the REPL:
julia> Joy.attach(buffer)
To edit files directly from the command line, add the following to your shell config file (.bashrc, .profile etc):
function joy() { julia -e "using Joy; Joy.open(\"$1\")"; }
Implemented features so far: Basic motions (stepping, word movements, find char, EOL, end/beginning of file), basic search, insert mode (with before/after/EOL init), replace single char, deleting/yanking/pasting with custom registers and arbitrary motions, command mode (very primitive), macro record/recall to custom registers, constructors for custom regex word movement functions, single-level undo, primitive syntax highlighting.
vi-like movement
Command mode for evaluation of Julia expressions
Applying arbitrary Julia maps to the entire buffer
Editing/sourcing of its own configuration
On-the-fly custom word types