Hacker News new | ask | show | jobs
by chairmanwow 3487 days ago
I read that article and didn't get a good handle on any features that would motivate a transition from Vim. Any links you could provide?
3 comments

For me, I like:

- Neomake ( https://github.com/neomake/neomake ) which I use for async linting. I know this is now working in Vim 8, but I've been using Neovim for a while and this was exclusive for a while.

- Vim-test ( https://github.com/janko-m/vim-test ) uses `:term` for running your tests from within vim -- this is most useful because I have a shortcut to test from current editing file, etc. I know this is also possible in vim now.

- Mapping Meta keys in terminal -- opens up a bunch more shortcuts that weren't available before

- `inccommand` This I believe is only in neovim, and likely not enough for anyone to switch for

Cons: - Not in distros, gotta install manually via their PPA

Thanks for the link to Neomake - Neovim is still a first class citizen for it, and it was a pain to get it working on Vim (and several bugs for Vim have been filed, debugged and fixed in this process).
Thanks for making Neomake!
Regarding distros: Arch has it.. ;)
:term to run a terminal in a vim window.

Also, much more sensible defaults.

An embedded terminal emulator is exactly what Neovim should not have.
Care to elaborate?
Neovim's goal is remove cruft and shrink the codebase. Adding a terminal emulator, a completely orthogonal feature that makes no sense in a text editor to begin with, is contrary to this goal. They wasted time and worked on the wrong thing.
Vim already allows you to use :shell. Neovim took it a step further with the added benefit that you can treat the output as buffer text. Just because you can't see the advantages this gives developers doesn't mean it was a waste of time.
:shell is completely different. That's vim stepping out of the way while you run a subprocess. Moreover, vim having it is not an argument for Neovim to have it. If vim really had a terminal emulator Neovim should have removed it.
Cool, but why?
Avoiding multiple levels of window management, when you want to edit multiple files and have one or more additional terminals available.

For instance, I've used this to edit a manpage with a live preview to the side in another window. Doing the same thing with screen would require running vim inside screen, and doing window management with both screen (for terminals) and vim (for everything else).

I like being able to have a vim window that has a terminal in it, there are some cases where I just prefer to have it in my terminal environment rather than switching to another real window. Mostly this is for things where I want to be in the same directory as my editor to run greps through my source, etc...

It's also nice sometimes to do something and then be able to search through the history with "/". At times I've then gone back and cut and pasted between the terminal output and a document I was working on, rather than using my window manager cut and paste.

I was, however, fairly surprised that I could no longer ":sh" out to run something. Had to get used to ":term" or ":spl term://bash".

> I was, however, fairly surprised that I could no longer ":sh" out to run something

Honestly, :sh always felt weird in vim.

Either you are in a terminal, and Ctrl-Z is a much better experience, since you maintain your existing session.

Or you are in the GUI, and the terminal emulation is poor and slow.

Speaking practically, if you're using a terminal to use Neovim, you get consistent window management. If you're using one of Neovim's GUI clients, you also get a terminal in the GUI's frame.
no more confusing C-w and C-b in tmux, perhaps?
Same here. Scrolled through it and the only thing I got is that there is a command called ":smile" which is not worth switching to me.

Doesn't mean there is none, it's just hard to find.

:smile is a vim command that was introduced in the new version of vim, I'm not sure but it seems like they are making fun of it. There's always been a bit of hostility between the neovim people and Braam, last being the fact that Braam finally implemented jobs in Vim 8, but using a different API than neovim.