Wednesday, August 17, 2016

Re: Vim 8 pre-announcement

2016-08-18 0:17 GMT+03:00 Bram Moolenaar <Bram@moolenaar.net>:
>
> Skywind3000 wrote:
>
>> > Hello Vim users,
>> >
>> > Work on Vim 8.0 is coming close to an end. I hope version 8.0 can be
>> > released in about two weeks.
>> >
>> > This is a last chance to modify new features in a way that is not
>> > backwards compatible. Once 8.0 is out we can't make changes that would
>> > break plugins.
>>
>> Can we have a binary mode in channels ? Which could be used to implement
>> a virtual terminal inside vim in VimScript.
>>
>> According to the ":help channel", There is a "raw" mode in channels, but it
>> will treat the whole message as a string, not a binary data.
>
> Raw mode is nearly binary. The only limitation I'm aware of is that it
> can't handle NUL bytes. And since there is no way to deal with binary
> data anyway in Vim script, it's probably the only thing possible.

Neovim handled this just fine from the very beginning: just callback
receives not a string, but a `readfile(,'b')`-style list. Though it
led to some confusion (line `"abc\n"` may be received as `['abc', '']`
or `['ab']` and `['c', '']`, but some plugin authors thought that
Neovim is waiting for line to finish, so `'ab'` in the second example
is the whole line), this is the only normal way to represent binary
data in VimL. Another variant is a list like `[0x61, 0x62, 0x63,
0x0A]` which has very high overhead.

>
> An alternative is NL mode, then you get lines at a time where NUL bytes
> have been changed to NL bytes. But it will be stuck waiting for the
> next NL.
>
> --
> This planet has -- or rather had -- a problem, which was this: most
> of the people living on it were unhappy for pretty much of the time.
> Many solutions were suggested for this problem, but most of these
> were largely concerned with the movements of small green pieces of
> paper, which is odd because on the whole it wasn't the small green
> pieces of paper that were unhappy.
> -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
>
> /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
> /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
> \\\ an exciting new programming language -- http://www.Zimbu.org ///
> \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
>
> --
> --
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: