[dev] [ANNOUNCE] vis-0.2

From: Marc André Tanner <mat_AT_brain-dump.org>
Date: Fri, 25 Mar 2016 09:44:08 +0100

Hi,

I'm pleased to announce a new version of vis, a vim-like text editor:

 http://www.brain-dump.org/projects/vis/vis-0.2.tar.gz

This release brings the following new features and bug fixes:

 - new build system using a hand written ./configure script based on the
   one used by musl. Makefile compatible with both GNU and BSD make. Manually
   tweaking config.mk is still supported.

    $ ./configure && make && sudo make install
    
 - more robust `make standalone` target to build self contained binary for Linux
 - runtime configurable key mappings via :{un,}map{,-window} (see README)
 - history support for :, / and ? prompt implemented as a regular file
 - syntax highlighting files are also looked up relative to the binary location
 - improved ENOSPC handling when saving, avoid data loss for regular files
 - new Lua API to allow user defined motions and text objects as Lua functions
 - new text object ii to match based on lexer token / syntax coloring
 - new text object i<Tab> to match blocks with same indentation
 - shift-tab in insert mode aligns cursors by inserting spaces
 - improved large file support by omitting the display of absolute line numbers
 - ~ takes immediate effect and moves cursor to the left
 - improved (, ), {, }, t, T, f, T motions
 - improved aw text object, removed recursive key binding for ib
 - <End> in insert/replace mode moves to the end of the line
 - % moves to the next 'special' character if not already on one
 - fix L to move to last line of window
 - implement nn% to move to given percentage in bytes (not lines) of the file
 - improved cursor placement after yank/shift operators and filter commands
 - :e is an alias for :edit
 - color definitions can be specified in terms of terminal color numbers
 - Y only yanks from current position to end of line
 - when displaying relative line numbers, 0 is replaced by the absolute line number
 - fix outdated and incorrect VIS_PATH in man page
 - improved gv selection restore
 - selection is kept when using shift operators in visual mode
 - fix # and * motions to only match whole words
 - <C-v> in insert mode recognizes <Enter>/<Tab> and is applied to all cursors
 - <C-r> in insert/replace mode is applied to all cursors
 - new motions + and - to move to start of next/previous line
 - syntax highlighting lexers have been updated to latest upstream release
 - :w ! <cmd> pipes a range to an external command and displays output in a new window
 - :langmap command to specify key mappings for non-latin keyboard layouts
 - improved color column display
 - improved Lua error reporting, stack traces are displayed in a dedicated window
 - support to append to general purpose registers via "A-"Z
 - new registers "_ (blackhole), "0 (yank), "/ (last search), ": (last command)
 - support for _AT_: and @/ to repeat last command / search
 - support for "* "+ (system clipboard) via a helper script vis-clipboard
 - standard registers are used for macros (previously they were distinct)
 - <C-a> and <C-x> functionality to increment/decrement numbers in decimal/hex/octal
 - gf and <C-w>gf to open file name under cursor
 - text objects gn and gN matching last search term
 - display NUL (^_AT_) and DEL (^?) bytes correctly
 - fix display issue when dealing with lots of Unicode multibyte characters
 - searches now respect ^ and $ to match start/end of line
 - fixed possible infinite loop when searching backwards
 - color theme is now also used when no language specific syntax highlighting is applied
 - in multiple cursor mode the primary cursor will by default blink
 - <C-u> and <C-d> try to change the primary cursor to the prev/next cursor
 - better handling of optional lpeg runtime dependency
 - more pedantic debug build flags and various code cleanups

Due to changes to the Lua API you might have to update your visrc.lua
configuration file. In particular vis is now a "real" lua object hence
you have to use

 vis:command('set number')

instead of

 vis.command('set number')

In the (long term) future I would like to work on:

 - improving multiple cursor/selection support

   I ported the structural regular expression based command language
   of Rob Pike's sam editor for Plan 9 to vis.

    https://github.com/martanne/vis/tree/sam

   It probably still contains various bugs, but the initial results
   seem promising.

   Could be something to test if you do not have anything else to do
   over Easter ;)

 - improving vi(m) compatibility where it makes sense and experiment with
   ways to improve its grammar. For the former vis' support for dot
   (repeat), counts and macros should be improved. See also existing
   bugs on the github issue tracker.

   As an example for the latter 3>2> should shift 3 lines by 2 indentation
   levels.

 - improving the test suite. I imported some vimgolf challenges,
   solving these will likely uncover more bugs.

    https://github.com/martanne/vis/tree/test/test/vim/golf

   Tests comparing vis structural regular expression support to sam's
   reference implementation would also be very useful. Help very much
   welcome.

 - improve/extend the Lua API for in process extensions. It should
   be possible to implement stuff like vim-surround or language specific
   automatic indentation based on it.

 - introducing a language agnostic RPC interface eventually allowing a
   client/server architecture.

 - using a built in regular expression library instead of relying on libc

Thanks to all contributors in particular Christian Hesse, Erlend
Fagerheim, Markus Teich, Michael Reed, Richard Burke, Silvan Jegen and
Dimitry (xomachine).

-- 
 Marc André Tanner >< http://www.brain-dump.org/ >< GPG key: 10C93617
Received on Fri Mar 25 2016 - 09:44:08 CET

This archive was generated by hypermail 2.3.0 : Fri Mar 25 2016 - 09:48:12 CET