Hacker News new | ask | show | jobs
by hyyypr 3139 days ago
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).

4 comments

I use both vim and neovim and kick in a butt that neovim provides for vim has been awesome. It really helps make things better for all of us.
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.

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.
Is it easy to update the plugins as well?
Yeah:

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

EDIT: formatting

There are too many options, I agree. But vim-plug is ultra easy. In my opinion, it should be the recommended package manager.
Pathogen is very simple, imho.
I second this. Pathogen is beyond simple... Just `git clone`
or even Emacs.
> 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.

My (perhaps uncharitable) understanding, as a dedicated vim user with no thought of switching, is that vim has that because of Neovim. (On rereading, I guess this is what desireco42 (https://news.ycombinator.com/item?id=15650991) means by the "kick in a butt that Neovim provides for vim".)

You can write Vim plugins in other languages as well.
Technically true, but practically worthless.

Python example:

  import vim

  # Show current directory in Vim
  cwd = vim.eval('getcwd()')
  cmd.command(':Explore %s | redraw' % cwd)
Ref: https://geoff.greer.fm/2015/01/15/why-neovim-is-better-than-...
This is a little unkind. Vim has actual APIs for most things you'd want to do. Ex: https://github.com/camgunz/u300Blog/blob/master/u3b.vim#L307

It's not complete coverage, but it's not "the API is just a thin Python wrapper around Vim commands as strings" as your comments suggest.

It looks to me like more than half of that is a thin wrapper around strings.

I'm not trying to be mean or mislead. I've used vim for decades, and emacs too for that matter. My favorite editors by far.

Haha yeah I'm not trying to be shitty with you.

Vim gives you buffer, window, cursor and range, plus eval and command. The eval/command stuff is a "shim", insofar as you have to wrap them yourself if you want more programmatic access; like you'd have to do `def getcwd(): vim.eval('getcwd()')` But for a lot of what you want to do, you're messing with buffer/window/cursor. I wouldn't call it a full-featured scripting API, and certainly Neovim's is better, but your posts suggested all the scripting API was was just an entry point to ex commands. There's a lot more than that, to the extent that it covers most of what you want to do.