Live data from Hacker News

Neovim v0.5

github.com

21–30 of 213 posts

Re: Neovim v0.5

#23
post #7

The best developers and engineers I’ve known all used Neovim. Coincidence?

You don't know enough developers or engineers. Much like; "If you find that you are always the smartest person in the room, you are in the wrong room."

Healthy communities are diverse not homogeneous. You get tunnel-vision if everybody always do things the same way. I use vim on all my servers. I tried neovim awhile ago, but found that muscle memory kept typing vim instead of (nvim/neovim whichever the program executable name is), so I made an alias and tried that for awhile.

I want to use/learn emacs too but never seem to have the time.

Re: Neovim v0.5

#24
post #10

For those out there trying to "learn" vim, give neovim 0.5 a try! I've been using neovim HEAD (0.5 pre-release) for a while and it has been awesome. It all started with this config [0] and from there and haven't tried (as before) to join a vim cult but instead to use it as a tool that works for me (i.e. use mouse scroll to browse around, use arrows on insert mode, and other vim sins) Little by little I've been lookin…

Wow, I’ve been a vim user for like 8+ years and didn’t know about 0p even though I run into that problem all the time. I had even re-bound yank/paste to use a different register. Thanks for the pointer!

This is what I love about vim, there’s always something new to learn.

Re: Neovim v0.5

#25
post #19

Is anybody else uncomfortable about the idea that an LSP client is now baked into the editor (as opposed to being a plugin)? Are there big performance gains to this approach? While LSP is great, it basically came from nowhere in the last couple of years. My concern: what if something definitively better comes along in another couple years, and we're "stuck" with this baked into the editor? For context, using ALE, I'v…

For anyone else wondering:

LSP means Language Server Protocol [0]

ALE means Asynchronous Lint Engine [1]

[0] https://microsoft.github.io/language-server-protocol/

[1] https://github.com/dense-analysis/ale

Re: Neovim v0.5

#26
post #21

Could someone sell me on why I should switch to this from regular Vim?

I've been using the nightly builds for a while now, and the language server support works very well, but for me the most exciting part of Neovim is Lua. Lua isn't the headlining feature of v0.5, but the API has still grown a lot since the last release.

As an example of why I love Lua support, I wrote a small file finding plugin for myself because I wasn't satified with the many alternatives (not a huge fan of fuzzy-matching). It took only a couple days to have a working plugin, and it has been fun to extend it with new features over the last month. The Lua API is relatively straightforward, and it really lowers the bar for writing plugins and small helper functions to add to your config.

Switching from Vim is not necessary, but Lua support alone was enough to convince me to give it a try, and is the main reason I have stayed with Neovim.

Re: Neovim v0.5

#27
post #21

Could someone sell me on why I should switch to this from regular Vim?

Integrated LSP is quite nice (and the ecosystem around it is just getting started), but it’s not the thing I’m most excited about.

My favourite new thing is actually tree-sitter. Currently it’s being hyped for better syntax highlighting (which is nice), but I’m most excited about defining text objects on language constructs. I really don’t like trying to shoehorn words, sentences and paragraphs to deal with parameters, scopes, functions etc. Having language-aware text objects for these is really neat.

I don’t think it’s anything that would be impossible to get working in Vim, but being built-in is pretty nice.

Re: Neovim v0.5

#28
NeoVim is very tempting to me. I've been tweaking my Emacs config for 5 years, and I'm very happy with it, but only on my Ubuntu computers. On Windows, Emacs runs like garbage (slow, no double-buffering). I might have to switch to NeoVim, at least on Windows.

Re: Neovim v0.5

#29
post #21

Could someone sell me on why I should switch to this from regular Vim?

lots of stuff. but mainly:

* ease of getting started. nvim is just vim, you can bring over your vim config and it'll just work.

* integrated lsp. you could have vscode like auto completion natively

* tree-sitter. google it to believe it

and much, much more

Re: Neovim v0.5

#30
post #7

The best developers and engineers I’ve known all used Neovim. Coincidence?

> The best developers and engineers I’ve known all used Neovim. Coincidence?

Generally I rather advise we not do this!! This is a baiting question & one built around superficial narrow-dimensional assessments of "best". But sure, Friday, I've got summer hours: why not write a little homage to what I think is compelling & makes vim such a life-long joy to ongoingly immerse myself into, let's talk some about why I think vim makes some users feel unmatchedly free in a way they would never put down:

Vim's origins as the most user-hostile text-editor known to man (ed) is an interesting origin story. Ed excelled at automation, at writing little scripts to modify programs, in a non-interactive fashion.

This excellence as an automated text editing system stems, in my view, from Ed/Vim's notion of Text Objects, ed/vim's way of telling the editor about where you want to go/what you want to select in a file. The editor as a bunch of buffers (opened files), named registers (which is basically a 1-dimensional (many points) rather than 0-dimensional (point) clipboards), text-objects that can select spots in buffers ("lines 4-7", "the first two characters of this line"), and commands that can be run on text-objects is an incredibly powerful set of general purpose abstractions for doing any variety of text processing task, and there's a nice break down of responsibilities for what does what in this system.

The shake out is cool. Macros in this system are nothing but a stream of commands dropped into a register, with the ability to replay that stream: it basically didn't require adding anything to the existing system to get macros in vim, because vim was already text-driven enough by it's nature.

Text-objects[1] deserve some special mention as a standout component of this system. They are an incredible leap, giving us huge expressivity when we want to cite or reference some part of the screen.

I've always called vim "spellcasting on the fly", as in the ability to combine a bunch of ad-hoc text-objects & commands , but the irony is that it's origin, ed, while yes sometimes used for interactive editing, was quickly primarily used for automation, for rote processing. It's about building a sophisticated model of being able to reference a spot in a document, possibly as the document changes around you over time, & doing certain things. The rote-based/automated use of ed is so core to vim's magic: the power of text-objects to cite specific things on the page, in a endless variety of ways, and then to issue modifications & updates to these powerful text-object's you've named is a wonderful combination of powers, for both rote/automated processing, and on-the-fly/interactive processing.

Vim is far & away the most interesting model of text-editing there is. There are countless editors out there, with wonderful features, and great integration, but by george you just cannot beat (rather, we have not beat) the power of having a sophisticated powerful expressive model for what text is, and how to get to parts in the text, that vim brings. If you want a way to edit text that let's your brain be free to express how to move through & talk about text, that has powerful scripting to let you build & extend your palette of commands, (neo)vim is unmatched.

Epistemic status: 0.2, unresearched, probably a lot of disambiguation/clarifying needed, some liberties taken with the timeline of when exactly what happened.

[1] https://blog.carbonfive.com/vim-text-objects-the-definitive-...

Post reply on HN