Hacker News new | past | comments | ask | show | jobs | submit login
Neovim public release 0.1.0 (github.com/neovim)
233 points by robinhoodexe on Nov 1, 2015 | hide | past | favorite | 83 comments



I've been using nvim exclusively for four months now. Perfectly stable (I think even more so than my vim was, I use lots of crashy plugins) and a perfect drop in, basically nothing changed for me when I renamed nvim to vim on my systems.

I wonder what their roadmap is for a 1.0 release. Is it a specific feature set, or stability in their MessagePack APIs? Is it years off, or just pending some big bugs/refactorings?


I noticed block (vertical) selection copy/paste doesn't quite work the same as in vim.


How does it differ? For me it works as expected, though I am using nvim longer than vim, so maybe I do not know intricacies well.


Make a vertical copy from one buffer, try to vertically paste it in another buffer, at the end of some line.

In MacVim, the vertical rectangle pastes at the end of the existing lines.

In NeoVim, it pastes on a new set of lines.


really me ether?wierd


That's pretty impressive considering the amount of change they made. Keeping it small, compatible and adding modern features and design .. I'm tempted to read their repository just to learn about project management.


Yeah, there are some breaking changes and incompatibilities with vanilla vim...

For me the first one was that the plugin folder and the .vimrc file locations changed..

Comes from here:

https://github.com/ZyX-I/neovim/blob/42047acb4f07c689936b051...


Damn it, I was wondering why my newly upgraded copy of Neovim suddenly stopped reading my .nvimrc (which is a symlink to .vimrc) Now I can fix it. Thanks.


I went through this on Friday after a spontaneous update of neovim. The help docs are well maintained, see `:help nvim`, or read online here https://neovim.io/doc/user/nvim.html


So essentially there is little difference for end-users (yet)?


I think :terminal has changed the way I develop at least a little bit. I haven't checked out the async linters yet.


They're removed the encryption option because it's horribly broken in vim, and vim is a text editor not an encryption tool.


Good to see this project making progress, but I don't see a changelog. What's new?


There will be a post commenting on the release later this week, but the main things are:

- neovim now follows the XDG spec: ~/.vimrc is now ~/.config/nvim/init.vim, etc.

- the viminfo files were replaced by a new system, "shada" (for shared data)

- lots of default settings have changed so it is more sensible[^1] by default

The rest is all the new features (when compared with vim):

- async execution (`jobstart()` et al),

- the extensions to the plugin system, so plugins can run truly asynchronously,

- the rpc api, that allows for extended clients.

I might be fogetting some things, but these are imho the most outstanding things.

[^1]: https://github.com/tpope/vim-sensible



Yes, but that is not yet implemented. I'm really waiting for that, though!


I've been using NeoVim for a while now and have been all in all pretty impressed.

One thing I haven't been able to get to work though has been asynchronous plugins. It'd be great if I could get syntastic running in the background. Are there any good articles to read about getting this up and running?


The idea is that the plugins themselves implement asynchronous functionality. Neomake is a new plugin that checks syntax just like syntastic, but does so asynchronously. Another popular async plugin is vim-plug.

https://github.com/benekastah/neomake

https://github.com/junegunn/vim-plug


"neovim now follows the XDG spec"

Speaking as someone who only runs straight window managers and Xterms, I hate that XDG bullshit.


> Good to see this project making progress, but I don't see a changelog. What's new?

This appears to be the first release, so there's no previous neovim release to issue a changelog against.

https://github.com/neovim/neovim/releases


One could write a changelog against vim though.


This command will show documentation for that:

    :help vim-differences


I can't find one either but this issue filter should be helpful: https://github.com/neovim/neovim/issues?q=milestone%3A0.1-fi...


When I think about switching to Neovim, I feel disloyal and ungrateful to Bram Moolenaar. He has done so much for so many, and if Neovim takes off he won't walk away with much of a reward. How much code has been written in Vim - and almost every line for free.


That seems like a strange way to view things. What is he getting out of it now that he won't be getting out of it if neovim would take off? The only thing he has asked is that people donates to a few charities of his choice. Neovim has kept those recommendations front and center, and if it does take off it might end up extending the user base causing even more people to donate. That's not a bad legacy, is it?


It's open source. That's what's supposed to happen. Vim is great but the developer is by all accounts the bottleneck in any progress towards cleaning up the code, adding async support, letting people make susbstantial changes to how the project works so it's essentially stagnating. Neovim should give it a huge shot in the arm and make it possble/easier for more people to write better plugins. There's no downside to it; if you're happy sticking with vim that's totally awesome too, but I can't help but see too many new plugins being started for vim once this is out (well, v1.0 on all platforms; perhaps a bit too soon now) because..well, what would be the point?


What's the point? This is what makes open source projects awesome and most authors will obviously be glad that their projects are being picked up and expanded by more people.


For anyone "switching" from vim, I recommend looking at vim plugins with neovim-specific support/enhancements: https://github.com/neovim/neovim/wiki/Related-projects#plugi...


Neovim-hackernews? Coming soon, an email client in your editor...


I figure you've never used emacs ;)


This was a poke at emacs.


I have been using neovim for months now with no issues I can attribute to neovim. The terminal mode can be useful, although I still prefer my current tmux setup. I have been using it with linux and osx, building from source.

I suspect most users could download neovim, symlink their .vimrc/.nvimrc, alias vim=nvim and not be able to tell the difference.


As a note, one does not symlink to `~/.nvimrc` anymore. Things are now in `~/.config/nvim/` with the rcfile in the `~/.config/nvim/init.vim`. This was a bit of a surprise for me the other day when my `nvim` instance failed to pick up my settings and refused to identify a `backupdir`.


If that's the case why use it? I'm still holding out for Neovim's killer feature; I'm not switching just because they use more modern APIs or removed Amiga support; I don't care about those things as an end user.


Proper async plugins are the killer feature. For example, if you're using neovim then Syntastic doesn't block the UI when it runs checks. Also off the top of my head, built in terminal emulator and 24 bit color support and far easier integration with external programs. Eventually my hope is that we will have real vi-mode plugins for IDEs that actually load up (neo)vim, though those sort of things are still in their infancy.

I'm a very heavy vim user and have been using neovim for a while now. It causes me zero issues even following git master, but I can definitely notice improvements.


> Proper async plugins are the killer feature.

I hope there's more that than. I personally don't use any plugins for which this is a problem. Not doubting those plugins exist, but apparently you can get by as a Vim user without them.

I see potential for the embedding api. If I could run Vim on a server and connect to it from a web app I would find that to be very compelling. Maybe there are other features that will set it over the top, but I'm still waiting.


If you're using vanilla vim I don't think there's a whole lot neovim will offer you at present. I think there will eventually be some performance improvements in the core areas, but they haven't really started on that yet.

Async support is a big deal for a lot of people though (and it's neovims original raison d'etre). For example, not having :make (well, :Neomake) block on compile is pretty significant by itself. Under the hood getting real async tasks required/requires a ton of rewriting because of how Vim was architected. Those changes were made deliberately and weren't just so that they could use all these fancy new libraries.

So I guess I'd liken it to Windows when it went from the 98 days to WinNT/2000 - keeping things working about the same while laying the foundation for bigger improvements later.

On the other hand, I don't see much downside to moving to neovim either. It is interchangeable (in my experience) with vanilla.


> If you're using vanilla vim I don't think there's a whole lot neovim will offer you at present.

My vimrc is 80 lines, I don't feel it's vanilla at all, but I don't use :make or probably any other commands that launch subtasks so I guess this is what sets me apart.


I meant more with the plugins, but in any case regular vim isn't going anywhere either. I think there's eventually supposed to be hooks for building better GUIs and external integration, which will probably be the turning point when a lot more people switch over.


For me asynchronous plugins are a killer feature, which renders classic vim unusable for me.

I run linter every time I save, which made vim's UI lock for noticeable time on non trivially small files. With neovim linting is smooth as butter from UI/UX perspective. Also there is asynchronous make, and other possible features/plugins.


You can supposedly do Google docs style colaboritive editing with it (and the plugin supports Emacs and atom too).


I'm usually using gvim for performance. Peeked into neovim before but the only GUI I found was Neovim.app which performed horrible.

Anything new in that field?


I am in the same boat, I hope that having a working GUI is in the roadmap for 0.2.


So does anyone know what kind of magic happened in August? They're scanning the code using coverity and the graphs don't seem to make sense: (https://scan.coverity.com/projects/2227)

    1 Jul:  fixed 217, outstanding 91
    1 Aug:  fixed 220, outstanding 94
    1 Sept: fixed 216, outstanding 0
    1 Oct:  fixed 218, outstanding 0
How is that possible? Bug in coverity? "Creative counting"?


Our coverity build has been broken since August :/


Fixed is the lifetime total. It can go down if something is reclassified as not a bug after it's marked as fixed.


Does that mean ~90 items were marked "this is fine" in August?


Probably. Just based on the graph, I'd guess that in June someone started a push to get them to zero outstanding issues in Coverity, starting with the ones that were clearly bugs, and then in August they were down to just the ones that they thought were false positives.


I've been using neovim for over 6 months and can't go back to vim, mainly due to asynchronous linter.

In the last week neovim changed their config file location from `~/.nvimrc` to `~/.config/nvim/init.vim`, though config file AFAIK is fully backwards compatible to vim, as I use the same vimrc for neovim and vim.


Are you using neomake by any chance? I might switch from syntastic as neomake seems to support the linters I need (mainly eslint and hlint).


Yes - neomake replaces syntastic for me and it's no. 1 reason I am neovim user.

EDIT: and yeah, neomake would not be effective with classical vim.


Just switched and it might be a placebo effect, but everything from scrolling to switching files seems a bit...snappier. Is this due to the async improvements? Do plugins have to opt-in to be async or does the core re-implement previously synchronous functionality to be asynchronous?


Plugins must opt-in to asynchronous job-control.

There have been drastic changes to the event loop and redraw logic, which makes some operations feel "different" (some slower, some faster). We have not intentionally made any general performance improvements, because the performance bottlenecks of Vim/Neovim hinge on the regex engine (which is primarily maintained by Bram) and vimscript interpretation--nothing else.

Job control is implemented in Neovim for co-process (not in-process) coordination. This means that potentially long-running vimscript calculations can be offloaded to a child nvim process. But Neovim 0.1 does not have a faster vimscript engine per se.


Can I use my old vim configuration in NeoVim or do I need to rewrite my vimrc? Do my old vim plugins work in NeoVim or do I need to find new versions?


I did a `ls -s .vimrc .nvimrc` along with very few changes (like replacing Command-T with Command-P). Everything ran just fine. I still don't use nvim daily, mainly due to my old habits. Perhaps I should alias nvim as vim.


That changed recently to follow XDG specifications. Simuink locations should be changed accordingly. See https://github.com/neovim/neovim/wiki/Following-HEAD


Everything should work out of the box. Just symlink your configs and go.


In my experience, vim configuration and plugins tend to just work.


I didn't really considered Neovim until recently, as a serious vim user, I didn't really feel I want anything but original. I started using it because plugin for pairing was only working on it. I can say I was completely surprised and impressed with performance. I still use Vim, but I have Neovim handy and I could probably replace it and not even notice difference. Very impressive effort.


What pairing plugin are you using?



Great news, long overdue. Neovim has been quite stable for many months now. Most people I know use the nightly builds, which was fine until they introduced some BC breaking stuff this week, which threw everyone off.

Bunch of snobs on gitter criticizing users for installing nightlies and expecting stability... But that's what happens when you don't tag a release after almost two years of development


Play Music "Turn Me On" (feat. Nicki Minaj)

[Nicki Minaj:] Doctor, doctor, need you back home in bed Doctor, doctor, where you at? Give me something I need your love I need your love I need your loving You got that kind of medicine that keeps me comin'

My body needs a hero Come and save me Something tells me you know how to save me I've been feeling real low. Oh, I need you to come and rescue me

Oh!

[Chorus:] Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

[Nicki Minaj:] Oh, you make it, make it right My temperature is super high If I scream, if I cry It's only 'cause I feel alive

My body needs a hero Come and save me Something tells me you know how to save me I've been feeling real low, Oh, I need you to come and rescue me

Oh!

[Chorus:] Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on

[Bridge:] You've got my life in the palm of your hands (palm of your hands) Come and save me now I know you can, I know you can

D-d-d-d-don't let me die young, I just want you to father my young I just want you to be my doctor, we can get it crackin' chiropractor, I, I, I, I

I, I, I, I know you can save me And make me feel alive

[Chorus:] Make me come alive Come on and turn me on Touch me, save my life Come on and turn me on I'm too young to die Come on and turn me on Turn me on Turn me on Turn me on Turn me on


Neovim articles seem to be accompanied by a bunch of top-level comments saying how unreservedly wonderful it is and offering nothing constructive. It looks like shills (but I of course don't know the intent of any particular commenter).


Well, the first comment I see is someone worried about the open source vim project being used in an open source manner and the original vim author losing money or something, in addition to people saying they're happy about the new asnync plugins and properly managed, open to everyone development model, so there's really something for everyone here!


Good, now with proper XDG base directory specification support. Less clutter in $HOME at last.

I started using nvim primarily for 24 bit color themes support in the terminal. Some mild themes are way easier for the eyes.

Is anyone going to package it for Debian?


Already packaged for Debian nightly - check the installation instructions. I'm sure the releases will be too.


I mean in official Debian repos. I don't see neovim or nvim there yet:

* https://tracker.debian.org/search?package_name=nvim

* https://tracker.debian.org/search?package_name=neovim


There's a tracking bug here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752264

Current status seems to be working on packaging of dependencies first, since some of neovim's dependencies are either missing or out of date in Debian. A few of them have since been done (unibilium and libtermkey are now in Debian, libuv is updated), but a few are still in progress.


I see, thanks.


I've been using `nvim` on OS X and Arch Linux for the last few months. I am very pleased with it. Excellent stuff, and the newsletters were a great way of keeping the indiegogo backers informed.


Congrats to the team, I'm dying to switch myself but closely watching Windows support since it's unfortunately my primary work platform.


Release notes?


Check.


Neovim doesn't have a desktop version on OSX like Macvim or did I missed something?



Thanks, Checked them out. neovim.app is the most starred project but it's a shame they don't release binaries.


I tried to install it on Mac, but it fails on building phase.


If you use brew, its straightforward. Check this link https://github.com/neovim/homebrew-neovim/blob/master/README...


Is vimscript translated to lua or is that still WIP?


Still WIP.


what is this is this a bad web for


0.1




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: