This is a follow-up of my recent command line-editor review here on my blog. There, I was looking at nice edit (ne), micro, and kaaedit. As I was teaching recently a new Internet of Things (IoT) class - Home and Building Automation, I was looking for simple to use command editors for my new IoT framework ulnoiot. emacs and vi were not "comfortable" enough to expose my students to. Having to use git, ssh, and the command line was enough of a challenge to pose, so I wanted to go easy with the editor. I wanted something that behaved very normally and transparently even in the remotely accessed command line. It needed to even support the mouse.
Therefore, I had these new requirements:
- Having something menu-like to select commands from
- Allow cut, copy, paste, and quit with ctrl-c, ctrl-x, ctrl-v, and ctrl-q
- Support for mouse/touch cursor positioning, mouse selection and menu navigation even when using ssh (from any os: Windows, MacOS, Linux, Android, iOS)
- Linewrap without breaking the lines
- Syntax highlighting
- Enough performance to work comfortably on a Raspberry Pi 1 or the Orange Pi Zero
As just mentioned, vi and emacs didn't qualify for point 1. I took a look at spacemacs and some extra configurations which made emacs qualify for all points, but point 5. Therefore, spacemacs might be a nice choice on a beefier single board computer or when using ulnoiot on a laptop or desktop, but it really felt sluggish on small Raspberry Pis or the Orange Pi Zero. The same is unfortunately true for micro - I wonder how it can be so slow as it should actually be compiled in go.
kaa and ne, both don't support mouse integration (point 2). After quite some tinkering and tweaking of configuration files, I managed to get mcedit to behave like a comfortable editor (use this configuration for CUA mode), passing all 5 requirements but 3. I also looked at tilde (described later), but I could not manage to compile it on the arm based single board-computers, so I had to relax requirement 3 for my class and used mcedit.
Meet tilde, an underrated great command line editor which just works as you expect it to work. Check it out at: http://os.ghalkes.nl/tilde/ It is extremely fast, very low footprint, and integrates all before-mentioned points.
You also find binary versions for all major distributions. This makes installing tilde in these distributions very easy.
However, they are only available for desktop platforms. If you are not running Arch-Linux on one of these other platforms (which compiles it directly from the AUR), you have to compile it yourself. I had quite some trouble compiling the developer version of tilde (I even opened an issue for that here). However, after some trial and error, I managed to compile tilde, both for the Raspberry Pi and on the Orange Pi Zero under armbian.
If you want to compile it yourself just install ulnoiot, enter its environment and type install_tilde or modify my install_tilde script to suit your own environment.
I think, this solves my command line editor hunt for a while. On the fly spell checking would be nice (yes vim and emacs have this, I know), but I would love to see tilde to show up more often as the command line editor default. I will definitely use it a lot in the future for my teaching.