Thanks for the suggestions everyone. Acme looks extremely neat. Mouse chording is a strange concept (which doesn't play nicely with my laptop mouse), but the idea of building an IDE around customised short shell commands is really appealing. As for text editing specifically, the idea of piping a buffer through sed rather than a custom implemented search-and-replace utility is really interesting. Ditto spell checking. Compared with a vim-like editor, navigating through a buffer seems much more painful - but perhaps I haven't found the right strategy yet. The lack of syntax highlighting, and the ugly GUI (which can't be run in console mode) are unfortunate.
About syntax highlighting in particular, my naive suggestion would be to constantly pipe the input file/buffer through a program which decorates it with appropriate ANSI colour codes, which could then be interpreted by your preferred reader. This sounds absurd in terms of performance, but I don't understand how implemented syntax highlighters do anything different - presumably new tokens can make pretty much arbitrary changes to the underlying syntax tree, and yet vim (for example) will re-highlight an entire file quite happily. Regarding "can this be done" - I can't be sure. But for "is this even useful" - surely yes? I happen to have syntax highlighting in my text editor. Why not in my shell/terminal/pager? Why should they implement them differently? I happen to have tab completion in bash, and with a vim plugin. Why are they unconnected? For what it's worth (I know this is not particularly fashionable) - I'm much more interested in separating separable features than implementing the same feature set in less code. You may be right that these are not really separable features, but if they *are* separable, then it's not persuasive to me that they can be implemented in a small number of lines. All the best, Dan