A clever little console text editor. Written in C, forked out of mle.
Install main deps first:
$ apt install tree cmake libpcre-dev patch # or brew install / apk add
tree command is for browsing directories. It's optional but you definitely want it.
If you want to try the experimental plugin system, you'll need to install LuaJIT and pkg-config:
$ apt install libluajit-5.1-dev pkg-config # brew install luajit pkg-config, etc
Clone the repo with its submodules:
$ git clone --recursive https://github.com/tomas/eon.git
And off you go!
To disable the plugin system open the Makefile and comment the WITH_PLUGINS line at the top. You can also run
make eon_static in which case you'll get a static binary.
You can open
eon by providing a directory or a file name. In the first case, it'll show a list of files within that directory (provided you installed the
$ eon path/to/stuff
In the second case it will, ehm, open the file.
$ eon index.js
You can also pass a line number if you want to:
$ eon index.js:82
Or simply start with an empty document:
To open a new tab within the editor, you can either hit
Ctrl-N. The former will open a new file browser view, and the latter will start a new empty document.
As you'll see,
eon fully supports mouse movement, so you can move around by clicking in a tab, and you can also click the middle button to close one. Double click is supported (word select on editor view and open file in file browser view) as well as text selection. Like you'd expect on the 21st century. :)
eon have a very sane set of default keybindings.
Ctrl-Z performs an undo and
Ctrl-Shift-Z triggers a redo.
Ctrl-F starts the incremental search function. To exit, either hit
Meta keys are supported, so you can also hit
Shift+Arrow Keys to select text and then cut-and-paste it as you please. Last but not least,
eon supports multi-cursor editing. To insert new cursors, either hit
Ctrl+Alt+Up/Down. To cancel multi-cursor mode hit
Ctrl-D or the
The reason why
eon has two keybindings for a few things is because every terminal supports a different set of key combos. The officially list of supported terminals is currently xterm, urxvt (rxvt-unicode), mrxvt, xfce4-terminal and iTerm. Please don't try to use
eon from within the default OSX terminal, as most key combos won't work so you won't get the full
eon experience. If you really want to, then read below for a few configuration tips.
If you want to disable the mouse mode you can toggle it by hitting
Shift-Backspace. This is useful if you want to copy or paste a chunk of text from or to another window in your session.
Setting up OSX Terminal
Apple's official terminal doesn't handle two 'meta' keys simultaneously (like Ctrl or Alt + Shift) and by default doesn't event send even the basic escape sequences other terminals do. However you can change the latter so at least some of the key combinations will work. To do this, open up the app's Preferences pane and open the "Keyboard" tab within Settings. Tick the "Use option as meta key" checkbox, and then hit the Plus sign above to add the following:
- key: cursor up, modifier: control, action: send string to shell --> \033Oa - key: cursor down, modifier: control, action: send string to shell --> \033Ob - key: cursor right, modifier: control, action: send string to shell --> \033Oc - key: cursor left, modifier: control, action: send string to shell --> \033Ob - key: cursor up, modifier: shift, action: send string to shell --> \033[a - key: cursor down, modifier: shift, action: send string to shell --> \033[b - key: cursor right, modifier: shift, action: send string to shell --> \033[c - key: cursor left, modifier: shift, action: send string to shell --> \033[b
These will let you use Shift and Control + Arrow Keys. Note that you might have some of these combinations assigned to Mission Control functions (e.g. Move left a space). In this case you'll need to decide which one you'll want to keep. My suggestion is to remove them given that most of these commands can be accessed via mouse gestures anyway.
Setting up xfce4-terminal
By default Xfce's terminal maps Shift+Up/Down to scroll-one-line behaviour. In order to deactivate this so you regain that mapping for
eon, just untick the "Scroll single line using Shift-Up/Down keys" option in the app's preferences pane.
A bunch of stuff, but most importantly:
- finish the plugin API (currently in the works)
- provide the ability to customize keybindings
- autocompletion (keywords, code snippets, etc), probably via a plugin
- language-specific syntax highlighting (it currently uses a generic highlighter for all languages)
- ability to customize colours for syntax highlight and parts of the UI
- update this readme
Original code by Adam Saponara. Refactoring and additional features by Tomás Pollak. Contributions by you, hopefully. :)
(c) Apache License 2.0