
Neovim v0.2.1 released - jdonaldson
https://github.com/neovim/neovim/commit/c67dd5acd0bb9f8d08789dfe6af27d9045e95fb4
======
badosu
One of Neovim's capabilities that seems really promising is enabling rich GUI
interfaces for an editor that does not simply emulate vim behaviour.

An instance of this is Oni[0].

\- [https://github.com/onivim/oni](https://github.com/onivim/oni)

~~~
dguaraglia
I really, _really_ want VSCode's Vim mode to be based on Neovim (they already
do some kind of Neovim integration.) I wish I had more time during my weekends
to collaborate on such a thing.

~~~
jamesgeck0
It's coming! From the VSCode Vim v0.10.0 path notes:

> One more thing. I apologize for less work being done on the main repo. Much
> of my effort recently has gone into the neovim version of this extension
> (still in development).

------
hyyypr
Nice to see things moving forward !

I've been a very happy neovim user for over a year now (on linux). My switch
was pre-vim 8 so the ability to have things (like plugins) run asynchronously
was a huge plus, but now vim has that too.

For me the biggest selling point is the plugin architecture, I've been a vim
user for over a decade now, and I'm only writing my own vim plugins now,
because neovim allows me to do that in the language of my choice (ie. not
VimL).

~~~
greenhouse_gas
My biggest pet peves of both neovim and vim8 is that there are like 5
different (and complicated) ways to get plugins, none of which are compatible
with the other.

Compare this to VSCode, Atom or IntelliJ.

~~~
superflyguy
There are always 5 different ways to do everything. For what it's worth, I've
gone with the simple vim.plug. I don't worry about whether it's compatible
with any other way of installing plugins. I just add a single line to my vimrc
file per plugin and type :PlugInstall.

~~~
bostonvaulter2
Is it easy to update the plugins as well?

~~~
mklein994
Yeah:

    
    
      :PlugUpdate
    

See [https://github.com/junegunn/vim-plug](https://github.com/junegunn/vim-
plug)

EDIT: formatting

------
joelthelion
Would it hurt to provide a five line summary of changes? This is completely
unreadable for someone who doesn't actively follow neovim development.

~~~
justinmk
Newsletter will be published in a few days.

~~~
joelthelion
I think OP should have waited for that newsletter to post here. And people
shouldn't upload changelogs like this. Of course, nobody has any control over
these things :)

~~~
jdonaldson
You do have some degree of control, you just have to do a better job of
persuading me why this was a bad idea.

~~~
joelthelion
If it's not you it will be someone else. People upvote the title, not the
content.

~~~
jdonaldson
etiquette stems from effective persuasion.

------
jdonaldson
Highlights include an api for a built in Lua(JIT) :
[https://github.com/neovim/neovim/pull/4411](https://github.com/neovim/neovim/pull/4411)

~~~
kosinus
Isn't LuaJIT stuck on Lua 5.1, and no longer in development?

~~~
_dcwr
It's 5.1 compatible plus some nice-to-haves from 5.2:
[http://luajit.org/extensions.html](http://luajit.org/extensions.html)

I wouldn't call it 'not in development' and even if, then 5.1 is a fine
version of Lua and LuaJIT is battle tested very well and rock solid still.
Changes in Lua 5.2 and 5.3 are breaking (and some are deep, like the ints, bit
ops, function environments) but most of 'usual' code is compatible between
5.1, 5.2 and 5.3.

I learned Lua 5.2 and then went back to 5.1 when 5.3 came out because I didn't
like the int stuff in 5.3 and didn't want to use an obsolete version (5.2)
with no upsides (5.1 has the upside of being compatible with LuaJIT).

~~~
wruza
If someone has mixed feelings from what FRex said here, but is not aware of
what Lua world consists of, let me explain. Js will be mentioned, so reader
can have a base level of understanding what happens and how good/bad it is.
_It is not js criticism_.

First of all, original 5.1 was a complete language with few technical problems
unsolved. These problems were hard and didn’t exist, say, in javascript,
because it has _no_ such primitives at all, not because 5.1 was bad. To name a
few fundamental: yield across pcall, C-call, for-iteraror; specific
metamethods for regular tables.

LuaJIT derived from 5.1 and then development went in parallel, never being
stopped or unmaintained. Original Lua experimented with features in 5.2 and
while it fixed and added few nice things, it used completely different env
resolution (which also doesn’t exist in javascript). 5.2 was also improved in
execution speed. LuaJIT specified that it will stick with original env scheme,
and personally I find it more powerful than new one. All others features were
backported from 5.2, so effectively LuaJIT is 5.2 with setfenv() still
working, not some obsolete chunk that you may try to guess from semantic
versioning, which doesn’t take place in Lua. Versions of Lua are NOT
“semantic”.

5.3 introduced things that personally I find mad, and it diverged from
5.1/5.2, which were pretty compatible if written with care (not more
incompatible than javascript is in different browsers; an order of magnitude
less so). So, the future of 5.3 is somewhat unclear _to me_. It is still good
language, thought, planned, experimenting, technical, non-crowd non-legacy
driven. It will show what’s wrong and what’s right, as all Lua versions
perfectly did.

To sum it up. If you’re going production, you can take any version of Lua, and
it will be still more compatible and feature-rich than different versions of
javascript. If you want all 5.1 design holes covered _and_ incomparable
execution speed, then you take LuaJIT in place of 5.1. If you want new
environments (read what they are before you want), take 5.2. If you want to
test new experiences and language design, take 5.3. But there is no
superiority in any version, unless you’re taking one of these perks to
extreme. These are different but similar languages with different strengths.

I know it’s all harder than just “5.1 < LJ < 5.2 < 5.3”, but what can you do?

~~~
nerdponx
Is this just Python 3 vs 2, with PyPy refusing to update to 3?

~~~
weberc2
Pypy supports Python 3...

~~~
RussianCow
I think the parent meant that as a hypothetical: The Lua situation would be
like the Python 2/3 situation if PyPy decided not to support Python 3.

------
eibrahim
Why should I use this over vim?

I am a web developer so I am mostly editing html, JavaScript, ruby and css
files.

I love my tmux + vim setup. Give me reasons to switch. I mean practical
reasons to switch not technical implementation niceties.

~~~
justinmk
You shouldn't feel compelled to switch, Nvim is intentionally user-compatible
with Vim.

But these days it also makes sense to ask instead "why should I use Vim?" The
version of Vim that you actually use probably wasn't installed by default on
your main development system. So installing Nvim is the same as upgrading Vim.

~~~
majewsky
What do you use as your main development system? I'm on an Arch Linux VM, so I
have an up-to-date Vim 8.0.

And since Vim 8.0 does terminals and asynchronous jobs now, I don't see much
value for Neovim _unless_ you have an IDE that integrates Neovim via its API.

~~~
gjjrfcbugxbhf
> unless you have an IDE that integrates Neovim via its API.

This will be the biggest win for Neovim. When something like pycharm/webstorm
vim support is moved to real vim rather than a reimplementation I will change.

------
bpizzi
I know this may sound quite weird, but I'm actually wondering what the
benefits could be from consuming neovim api from emacs.

Maybe this could lead to something like having a better modal editor than what
evil is already providing (and doing a great job at it), with emacs' benefits
like orgmod and magit?

What are my fellow hners thinking on that?

~~~
s0l1dsnak3123
As a Spacemacs user for over a year (and a neovim user for a few years before
that, and a vim user for a few years before that), I find that spacemacs does
a good job of emulating vim keybindings, but it isn't _exactly_ right. Having
neovim handling the keybindings and communicating what actions need to be
taken back to emacs would let me have the great flexibility of emacs' plugin
system, while retaining the vim keybindings in as authentic a manner as
possible.

~~~
nsomaru
Switched back to nvim from spacemacs because of this. Significant cognitive
dissonance when something is familiar but not exact.

Have decided that just going full emacs would be a better route if the pain is
going to be there anyways.

------
berfarah
My favorite thing in this release is that shift+tab works in the terminal now.

~~~
adtac
To unindent a visual selection? The "correct" way to do that is "<" in visual
mode.

~~~
tgb
What has always annoyed me about this is that < and > (de)indent but also
unselect the text and put you back in normal mode. Why? I often want to indent
more than once but don't want to count ahead of time how many it will take,
but that means I have to reselect the text N times. Is there a good way around
this?

Edit: just found that gv will reselect the last visual mode selection, which
makes this much less cumbersome.

~~~
superflyguy
Why don't you just hit . to repeat the last indent?

~~~
dhimes
This is the super easy way to do it.

------
JadeNB
How does one obtain Neovim v0.2.1 for Windows? The installation instructions
at [https://github.com/neovim/neovim/wiki/Installing-
Neovim](https://github.com/neovim/neovim/wiki/Installing-Neovim) point to
[https://github.com/neovim/neovim/releases/download/v0.2.0/nv...](https://github.com/neovim/neovim/releases/download/v0.2.0/nvim-
win64.zip) , and the obvious guess
[https://github.com/neovim/neovim/releases/download/v0.2.1/nv...](https://github.com/neovim/neovim/releases/download/v0.2.1/nvim-
win64.zip) doesn't exist.

~~~
justinmk
Releases page always has pre-built packages (look for "Downloads"):

[https://github.com/neovim/neovim/releases](https://github.com/neovim/neovim/releases)

I've updated the wiki URLs also, thanks for mentioning it.

------
zelos
Does anyone have any recommendations for NeoVim GUI client on OSX?

VimR is nice, but very buggy in my experience. I'm using Neovim.app at the
moment after fixing a few bugs in it, but it's got plenty of issues.

~~~
hannofcart
I wonder if you can build neovim-qt for OSX. I don't see what would stop you,
since Qt is available on OSX.

~~~
zelos
Thanks for the pointer. It builds and runs well. Font rendering is fine on my
MacBook's retina screen, but it looks terrible on my external monitor for some
reason.

------
agotterer
What are the benefits of neovim over vim 8?

~~~
DigitalJack
The main features of neovim from my point of view are the messagepack based
remote API letting you write plugins in any language. Many have bindings
already to go such as haskell and golang:
[https://github.com/neovim/neovim/wiki/Related-
projects](https://github.com/neovim/neovim/wiki/Related-projects)

This API, for example as let people write a vim plugin for VSCode that
actually runs neovim in the background.

It's pretty slick.

From a user point of view, more plugins is probably it. I don't know if vim
has it yet, but neovim has asynchronous process support, so repls and
terminals are easier to use.

------
lf-non
For emacs users, the Wilfred/remacs[1] project may be equally interesting.

It is an ambitious fork of emacs, written in rust.

[1] [https://github.com/Wilfred/remacs](https://github.com/Wilfred/remacs)

------
oblio
I wonder if it's stable on Windows now. I tried 0.2.0 but it felt more like a
proof of concept. To be honest the version number kind of implies that this is
not a super-stable version :)

~~~
justinmk
Every Neovim release is considered stable. The leading zero means we may break
backwards-compatibility in some cases (but we rarely do; we are considering
1.0 after 0.3 is finished).

~~~
oblio
For Windows, are you adopting a GUI as part of the packages supported by the
official devs? A GUI-less Windows editor isn't of much use, especially
considering the rather sorry state of Windows terminals (even with the
enhancements in Windows 10).

~~~
justinmk
The Windows packages include a GUI.

[https://github.com/neovim/neovim/releases](https://github.com/neovim/neovim/releases)

~~~
epage
Is the windows GUI advertised in any way, like screenshots, feature lists,
etc?

If it wasn't for your post, I wouldn't have known this even existed. Now that
I do know, I'm wanting to know more before I bother trying.

------
starikovs
I stopped using Neovim a few months ago because of sporadic freezes. I often
freezed when I was using :Glog and so on. Now I think I will give it a chance
again )

~~~
Spiritus
That sounds a lot like this issue with jemalloc and Neovim on macOS:

\-
[https://github.com/neovim/neovim/issues/5681](https://github.com/neovim/neovim/issues/5681)

\-
[https://github.com/neovim/neovim/issues/6950](https://github.com/neovim/neovim/issues/6950)

------
lotabout
Just wondering if it is possible to use neovim as lua REPL.

------
sandGorgon
they are releasing linux in AppImage format. Works pretty well!

------
baxtr
Oh good ol times... :wq

~~~
erikb
Actually, why do so many people still use :wq? Vim has :x which does the same
thing and saves a keystroke and saving keystrokes is what Vim is about, right?

~~~
AndrewOMartin
I didn't know about it until now. It might be because after a change I know I
want to :w, but haven't yet decided if I also want to :q.

~~~
erikb
In such a situation I also do the :w and :q separately without even
considering :x.

------
babyfrank
I've been a user for over a year now. For me the biggest selling point is the
plugin architecture.

