Re: [dev] Plain text editor that sucks less - an alternative to VIM?

From: Maxime Coste <frrrwww_AT_gmail.com>
Date: Sun, 29 Jun 2014 16:25:13 +0100

On Sun, Jun 29, 2014 at 03:00:32PM +0300, Dimitris Zervas wrote:
> I think that a new text editor must be created, with text interface (and maybe GUI later).

Hello,

I have been working on an editor named Kakoune (http://github.com/mawww/kakoune)
that provides already a lot of that.

Being written in C++11 (and depending on boost until the standard C++ regex
library gets widely available), it will probably not please everyone in the
suckless comunity

> 1. Most vim bindings (not all, but most), just altered a bit in the way they behave.

Kakoune reverse the vi bindings (action, movement) to (selection, action), which makes
the whole thing much more consistent. Its based around multiple selections and use that
extensively. For example there is no global replace in Kakoune. You select the whole buffer,
the select all matches to a regex, and then you edit interactively all these selections.

This gives an expressivity similar to structural regex in sam, with the difference that it
is interactive.

I maintain some solutions to vimgolf challenges using Kakoune, and they
beat vim in several cases. (http://github.com/mawww/golf)

> 2. Fantastic syntax highlighting

Kakoune supports extensive syntax highlighting, I recently added support
for hierachical syntax. That means you can segment the code in regions
(comment, code, strings for most languages) and then highlight differently
in different regions. You can as well reference other highlighters so that
'<script language=Javascript>...</script>' can highlight its content using
the javascript highlighter while the rest of the document uses html.

> 3. Fantastic auto-completion (a small menu appears while you type and you press tab to accept or ctrl/alt to navigate).

this is implemented and relies on an external program to do the completion
work. I have a clang based c/c++ completion at the moment.

> 4. Code folding

Not implemented yet, mostly because I do not use folding and there has not
been much demand for that yet.

> 5. Snippet/template support

A basic version can easily be delegated to a separate program, more complicated
template (with support for specific zones to be edited by the user) would
probably require some support in the core code

> 6. Documentation while you type

Implemented, kakoune tries very hard to be self documenting and give help
for available commands.

> They may seem a lot and difficult, but they already exist here and there, just not all compiled in a suckless way.
> I've tried most of the said editors and I simply can't live without my beloved vim bindings.

Besides C++ (not a problem for me, but it seems the suckless comunity is not fan of the language)
Kakoune is designed around suckless ideas:

* Tries to remain quite simple (around 18000 lines of code).

* Relies a lot on external program, no integrated scripting but ways to
  interact with external tools (similar to what tmux does)

* No window management integrated, but a client server design allowing for
  multiple clients on the same session. That means you can use tmux, dvtm
  or your x11 window manager to manage editing windows.

* No threading or plugins, keep things simple, interact with external
  programs for complex features, asynchrounously if needed.

* Limited dependencies, ncurses and boost (with boost going away once
  gcc 4.9 gets more widely available).

Try it, tell me what you think.

Maxime.
Received on Sun Jun 29 2014 - 17:25:13 CEST

This archive was generated by hypermail 2.3.0 : Sun Jun 29 2014 - 17:24:10 CEST