Skip to content

jlgw/Joy.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Joy

Build Status

Coverage Status

codecov.io

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.

How to install

julia> Pkg.clone("https://github.com/lancebeet/Joy.jl")

How to use

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

Releases

No releases published

Packages

No packages published

Languages