Hi, What follows is a quick overview of recent changes made to vis, my vim-like editor:
https://github.com/martanne/vis I've been using it for some time now and most of my needs are covered. I hope to get a release out later this year. Unfortunately I probably won't have time to work on it during the next couple of weeks. Therefore it seems like a good time to get more testing feedback. What is still missing? Which bug/feature needs to be fixed/implemented for your daily usage? Recent changes in no particular order include: - multiple cursors/selection support This is all brand new and quite rough around the edges. For example selections are not merged if they overlap. I have a couple of ideas for further improvements but currently not enough time to pursue them. For now the (somewhat arbitrary, suggestions for better alternatives welcome) recognized key bindings are, in normal mode: CTRL-J create a new cursor on line below CTRL-K create a new cursor on line above CTRL-P remove least recently added cursor CTRL-N select word the cursor is currently over, switch to visual mode CTRL-A try to align all cursor on the same column ESC if a selection is active, clear it. Otherwise dispose all but the primary cursor. In visual mode: CTRL-N create new cursor and select next word matching current selection CTRL-X clear (skip) current selection, but select next matching word CTRL-P remove least recently added cursor CTRL-O creates a new cursor at the start of every line covered by the current selection - undo tree implementation with corresponding :later and :earlier commands - :! filter implementation, also used for :read and :read ! - :substitute implementation in terms of sed(1) - integration of slmenu/dmenu for a file open dialog (e.g. :open *.[ch]) - more robust file save implementation (e.g. does no longer destroy links, tries to preserve xattrs and hence SELinux labels if enabled) - detection of file changes outside the editor when saving - improved handling of file truncation on mmap-ed files - insertion of verbatim characters based on Unicode code point (CTRL+V unnnn) - option to display special symbols for white spaces :set show newlines=1 tabs=1 - highlight of matching symbols (e.g. parenthesis) when cursor is over them - try to preserve column position when moving across lines - ui separation, all curses related stuff isolated into one file - introduction of some testing infrastructure for both low level unit tests and high level editor tests (see test branch) - dump piece chain and undo tree as graphviz graph (see text-dump branch) Things I would ideally like to fix/implement before a release: - improvements to repetition command (i.e. dot .) #44 - implement a minimal vim compatible swap/lock file #58 - history support for command and search prompt (although duplicating shell/readline functionality inside the editor still feels wrong) - increase test coverage (see test branch) Long term goals/ideas: - eliminate remaining global state, expose vis frontend as a library - improvements to search functionality / efficient regex engine - introduction of a proper (libuv based?) mainloop - RPC interface #59 / client+server architecture - quickfix functionality - revise syntax highlighting code, investigate whether already existing syntax definitions from other editors could be reused - runtime key binding support? - code completion (using slmenu/dmenu)? As always comments and especially patches welcome! Thanks, Marc -- Marc André Tanner >< http://www.brain-dump.org/ >< GPG key: CF7D56C0