Do you hate yourself and/or freedom? You might be interested in this project then. It's a fork (or maybe a branch) of GNU nano 2.3.2 with hacky Lua scriptability. By 'scriptability', I mean the ability to programmatically filter, modify, and generate raw input before it gets processed by nano -- about as hacky as it gets, but also kind of powerful in a way.
$ # First, make sure liblua 5.2 development files are on your system $ $ sudo apt-get install liblua5.2-dev # or equivalent $ $ # Now you're ready. $ $ git clone https://github.com/adsr/nlua.git $ cd nlua $ ./autogen.sh $ ./configure --enable-nlua $ make $ $ # The nlua binary is now at ./src/nano $ $ sudo make install # Only do this if you want to replace /usr/bin/nano
In your nanorc file, e.g.,
~/.nanorc, add a line like the following...
...which specifies a Lua script to execute at runtime. Make sure it's an absolute path.
The Lua script is a just a regular Lua script with two special functions,
nlua_filter_input is invoked when a user sends input to nano. You can either swallow it, modify it, or let the input pass through unaltered. You can also generate more input with
nlua_unget_input which stuffs nano's internal key buffer. Take a look at
.nanolua in this repo for some examples.