There have been lots of times that I've wanted to be able to keep my hand on the keyboard when editing, rather than running off to the mouse all the time. There's an implementation of VIM in Javascript but I figured I would learn something by doing it myself. My goal is vi, not vim, since I don't need anything that sophisticated.
The first step is implementing the line-oriented part of vi, called ex, based on the manual from the sourceforge project. My version is based on bililiteRange, and depends on the bililiteRange utilities and undo plugin.
Use it simply as bililiteRange(textarea).ex('%s/foo/bar/');
, passing the ex command to the ex()
function. The biggest difference from real ex is that this uses javascript regular expressions, rather than the original ex ones. Thus s/\w/x/
rather than s/[:class:]/x/
, and use ?/.../
rather than ?...?
to search backwards (the question mark is used in Javascript regular expressions so I don't want to use it as a delimiter).
ex
’ »