High Priority
-------------

* Options: They should be typed, and scoped. An option should be global,
           buffer local, or window local. there should be a way to specify
           which locality an option support.

Medium Priority
---------------

* tweak editing model, some behaviours are not intuitive, maybe a line
  wise mode will be needed after all.

Low Priority
------------

* Data driven syntax highlighter.
* client server separation
* write a real BufferContent backend. Currently it's std::string...