top | item 39202722

Neovide – A simple, no-nonsense, cross-platform GUI for Neovim

148 points| frankjr | 2 years ago |neovide.dev | reply

139 comments

order
[+] frankjr|2 years ago|reply
If you're wondering why you might want to use this instead of just launching Neovim directly in a terminal, then for me the answer is performance. Everything is silky smooth, much smoother than in Kitty/Alacritty. And to disable those annoying animations, just put this in your config.

  vim.g.neovide_cursor_animation_length = 0
  vim.g.neovide_scroll_animation_length = 0
[+] wadim|2 years ago|reply
How do you handle multiple projects at the same time, with a tiling window manager? The nice thing about the terminal is the possibility of having layouts, tabs and so on. Or using tmux/zellij with a terminal that doesn't support these more advanced features.
[+] esamatti|2 years ago|reply
I've actually found the animations helpful even thought was initially skeptical: Because it visualises the vim motions it makes it much clearer what is happening. Especially if you make a mistake you'll see it much more clearly what it actually did. Also when making longer cursor jumps it is easier to see where it went.

I'm sure they will help a lot also when learning Vim for the first time.

But the be fair, the default animations are bit much but they can be toned down.

[+] the_duke|2 years ago|reply
I just tested again after a while.

Input latency is very notably worse than in the terminal, at least on Linux + sway. (alacritty or kitty)

[+] behnamoh|2 years ago|reply
I actually liked those animations and enabled a similar functionality in VSCode:

        "editor.cursorSmoothCaretAnimation": "on",
[+] snapplebobapple|2 years ago|reply
As an alternative, try foot. I love that terminal, it just works.
[+] anpep|2 years ago|reply
Should I take this opportunity to switch to Neovim for once? I've attempted using vim/neovim/emacs, etc. many times but it's just so confusing to me.

Why would I go over the trouble of debugging my editor for simple stuff like having LSP completions and semantic highlighting? It's insanely difficult for me to wrap my mind around vim packages, configs, etc., when VSCode/GoLand/et al. do a pretty darn job being decent editors that you don't need to hack on and just work out of the box.

Don't get me wrong, I'm not throwing shade on vim/emacs, I'm just wondering what am I missing since everyone's been super happy and productive with vim for ages, and if I'm approaching these tools the wrong way...

[+] bartq|2 years ago|reply
Friend... don't try to "switch". Just use multiple tools at the same time. I personally use all: Neovim (great writing/editing experimence, LSP+Treesitter+fzf allow you to get really far), Emacs (for Magit), VS Code (if Neovim or Emacs breaks I can still edit the code ;)) and WebStorm to run tests using nice and rich UI. Don't try to limit yourself artficially.
[+] wint3rmute|2 years ago|reply
I suggest you try something like LunarVim[1] or NvChad[2] for a ready-to use IDE-like neovim configuration.

I had the same problem with configuring (neo)vim, it's simply too much work to get a reasonable IDE experience. Using an already well tested and documented configuration helped me to make the switch.

[1] https://www.lunarvim.org/

[2] https://nvchad.com/

[+] Rudism|2 years ago|reply
I think if you're happy with the experience that the IDEs you mentioned provide you, then there is very little reason to switch.

Being familiar with vi keybindings can be useful if you ever find yourself on a minimal system with no other editors available, but the subset of knowledge you need in that situation would be much smaller than if you wanted to use Neovim as your primary development environment. I think Emacs/Vim/Neovim and the like are better suited to users who actually enjoy the process of configuring stuff like LSPs and code completions in a way that's fine-tuned to their personal preferences and works the same across all programming languages.

[+] nsm|2 years ago|reply
If you are happy and productive with your current editor(s), no, you don’t need to spend valuable time picking up and configuring another one. Save the effort for when you actually need it.

Despite what others may say to convince you otherwise, this is the only correct answer ;)

[+] cassepipe|2 years ago|reply
I feel you, I feel the same. I just like modal editing too much. Even though I have to remap CapsLock to Escape to make that usable.

I feel naked without those commands at my fingertips. It's not even about speed, without it it's like... it's like woodworking with a table knife

If I were to take up modal editing now, I'd go for Helix. It's a better editing paradigm (Kakoune inspired) and it aims at just working out of the box.

I finally opted for Lunarvim but I believe all those Neovim distributions are great

[+] extr|2 years ago|reply
I'm the same way. I've tried like a half dozen times over the years to "get into" vim. It seems like the perfect thing for me. I used to love wasting time ricing my Arch install. But you know what happens? I get 3 hours into setting it up and realize I am only marginally closer to what I already have with VS Code. And in VS Code if I want more language support or some fancy new feature, it's like 3 clicks and it's just working immediately.
[+] e12e|2 years ago|reply
I would recommend the helix editor[1].

You won't get the deep magic of emacs, or the benefit of learning vi key bindings (sadly there's not yet a helix mode for gnu readline) - but you get a great modal editing experience, good defaults and great discoverability.

I moved from vim/neovim a while back - and now I find vi/vim verb-object (d[delete]w[ord]) yanky compared hx visual select/object-verb (wd).

I've been using vim for some 15-20 years prior.

[1] https://helix-editor.com/

[+] ionrock|2 years ago|reply
While I can't say this is true for vim, in Emacs, I found that the customizability helps for a lot of different programing tasks. I run my terminals in Emacs and they are associated with my projects. Magit (the Emacs git package) helps me do complex rebases with diffs alongside creating branches and everything else you might do in git (even the reflog when things get rough). There is event a handy rest-mode that lets me write and save HTTP sessions. I connect to my database in buffer as well. What makes all this so handy is that I can move the buffers around to compare things side-by-side, use a single large buffer, etc. While VS Code has splits and terminals, I found that in Emacs I can access everything from my keyboard and now that I've gotten used it, I don't even think about it.

I've heard that a lot of vim folks get similar behavior via tmux and leverage other shell tools.

I'm not going to argue you should switch, because it is an investment. It is like owning a house, you have autonomy but you're also on the hook to fix the air conditioner. You also can't just drop it and move to the next editor. Your hands and workflows become tied to your editor. Keybindings may be similar, but it is not the full story. Either way, it is a journey getting good with your tools, so enjoy it!

[+] widdershins|2 years ago|reply
For some people (myself included) the infinite configurability is the selling point, and configuration is the 'cost of doing business'. I'm an Emacs person but I'm sure it's the same for (Neo)Vim people too. You're gradually crafting your editor using your editor, and that feels good.

Along the way there are innumberable little choices that you make that shape it into something completely your own. Plus you know it's never going away or getting enshittified because it's open source and has been for decades.

Now, does it actually make you more productive? Or is any productivity you gain swallowed up by tinkering with configuration? That's an open question, and a valid one. People who enjoy an out-of-the-box IDE experience are fine by me - different strokes and all. I just enjoy working in an environment that is always gradually evolving according to my needs, even if it means putting in the work.

[+] nate-sys|2 years ago|reply
Although I'm happy with my current neovim setup, I do envy the cursor animations in this. Why hasn't a terminal emulator with cursor animations like this been invented yet?
[+] Quot|2 years ago|reply
If I had to guess, it's because terminals don't know what a cursor is. From the terminal's perspective, it is just told to print a solid blinking block at a certain location. Neovide knows what the cursor is because it is communicating directly with Neovim.

A terminal could do this, but there would need to be direct integration into Bash, ZSH, etc.

[+] QuadrupleA|2 years ago|reply
I used this as my daily driver for several months last year - it was nice and fast, and I liked the cursor animations actually, but I ended up dropping it because of really strange window sizing problems on Windows with multiple monitors and multiple DPIs.
[+] unshavedyak|2 years ago|reply
I wonder.. anyone have recommendations for going back to [Neo]Vim from Kakoune/Helix? I was a Vim user for ~8 years, but switched to Kakoune for the selection first editing style. I vastly, vastly prefer it.

However i'm extremely jealous of Neovide. As much as i love Terminal Editors, i feel like Terminals themselves have been an annoyance for a long time for me. Despite having solely worked in them for ~15 years, i don't like them at all for my primary editor. I just miss too much.

[+] bloopernova|2 years ago|reply
That animated cursor move effect is very interesting! I wonder if it could display extra information for the user, with some tweaking. Trying to think of some things that we do subconsciously while navigating code...

Moving across a code block with "{" and "}" could highlight the parentheses and the link between them, for a fraction of a second.

Highlighting or landing on a variable could send a tiny zip of pixels towards the nearest uses of that variable.

I've wondered sometimes if making the current function or block pop a little brighter than its surroundings could also give your subconscious mind a bit more information.

All these would have to be incredibly fast animations, just a few ms would be great for me. I loathe the slow-to-me animations in Android, and always use the dev tools to speed them up.

[+] danielbarla|2 years ago|reply
I'd be interested in giving this a try, however it seems to be completely resistant to the tiling window manager I use on macOS, Amethyst. It's fairly odd; I have not encountered another app that does this.
[+] hollerith|2 years ago|reply
Most of these things don't have any way to configure margins. Does Neovide?

Books (made from paper) invariably have a region with no printing on the left and right sides of every page -- margins. But users of most text editors are tougher than that: they don't need margins apparently. I want the leftmost and rightmost parts of the editor window to be able to be blank margins.

I'm on Emacs currently because it is easy to configure margins (at least in graphical Emacs) but it would be nice to have another option.

[+] Exuma|2 years ago|reply
Neovide is SUPER awesome. I use it daily and I absolutely LOVE it
[+] cassepipe|2 years ago|reply
Nice. Can it be installed alongside neovim without picking its configuration ?

Didn't see the answer in the FAQ

[+] cbm-vic-20|2 years ago|reply
I think the answer to your question is "yes"; Neovide is just a client for an underlying Neovim process. That process can be local or remote.
[+] OJFord|2 years ago|reply
> Where possible there are some graphical improvements, but functionally it should act like the terminal UI.

If those are barely worth mentioning (and still not to say what) .. what is the point over 'the terminal UI'?

Features page is better: https://neovide.dev/features.html

- Ligatures: ok, nice, possible in terms too (hopefully Alacritty one day)

- Animated cursor: I would disable that for sure

- Smooth scrolling: I would disable that too (surprised anyone would want it in neovim actually - do people scroll? I navigate line-by-line (or many lines) so it seems natural that the rendering should be the same, otherwise it's just a permanently clipped top and bottom line)

- Animated windows: ..that maybe looks a bit smoother, hard to tell without side-by-side, it's not horrible anyway

- Blurred floating windows: that's nice

- Emoji support: if you want it you probably have font configured anyway

Seems like it's for people who are reluctantly in a terminal, to position it more like a VSCode/Sublime alternative in an appy sense, there's not really much of an up-sell here for anyone familiar and happy with vim/neovim in the terminal IMO.

[+] nerdponx|2 years ago|reply
I am a pretty big terminal user, and I still use a graphical front end (specifically Neovide and Neovim-Qt). If you are happy with the terminal, you're right, there's no "upsell" here, but if you're happy with something, why would you switch to something else?

I use a graphical frontend precisely because I was unhappy with the terminal, and not because I am stupid, inept, or lazy.

For one thing, a graphical interface liberates you from constraints on key binding, fonts, and colors. Whether any particular graphical interface implements such improvements is up to the developer. But that's the beauty of the whole system: unlike with Gvim, none of that has to be upstreamed into the main application.

Neovim-Qt also offers a couple of interesting features like native scroll bars, a tab/buffer line made of native "tabs" instead of drawing it with plain text, and a native right-click menu. It also has some kind of adaptive color thing, for people who really like to "rice" their system and get a uniform look and feel across applications.

Something to keep in mind is that all of these projects are relatively new and developed by hobbyists. It will take years and years for any of them to reach feature parity with Gvim.

[+] saintfire|2 years ago|reply
> Ligatures: ok, nice, possible in terms too (hopefully Alacritty one day)

I wouldn't hold my breath. Seems like its getting the iPad calculator treatment[0]. Which is to say rather than ship something working that can be improved, they're leaving a UX void.

[0] https://github.com/alacritty/alacritty/issues/50

[+] NeutralForest|2 years ago|reply
Just use Emacs with Vim bindings (evil-mode) then ;)
[+] vouaobrasil|2 years ago|reply
I love Vim, but I have to admit I lost interested in dedicated Vim and Neovim programs as VSCode has a pretty good Vim emulator.
[+] ahub|2 years ago|reply
Too bad the background color is deprecated, I'd like it better with a good ol solarized theme.
[+] Conscat|2 years ago|reply
I'm not certain what "the background color is deprecated" means but I really don't like the sound of that.
[+] optymizer|2 years ago|reply
The effects and animations remind me of the cool window effects in Gnome/KDE, back when they were first made available, like the window burning down completely when closing.

Cute, sometimes very cute, but ultimately distracting and only adds a delay to the intended action, so after a week the novelty wears off and I usually revert back to the old UI.

Typically "no-nonsense" UX (the kind used to get stuff done) has minimal animation, if any. The whole point is to focus, not to get distracted by railgun animations.

The feature list seems to be mostly eyecandy and emojis.

[+] chii|2 years ago|reply
Doesn't neovim have a QT ui that you can run with instead of the terminal emulator?
[+] nerdponx|2 years ago|reply
It's not officially part of the Neovim project. However they distribute it with the Windows installer.

Neovim-Qt and Neovide both work the same way, one is not more privileged or official or well-integrated with Neovim than the other.

[+] abhinavk|2 years ago|reply
Yeah but I don't find any upsides compared to nvim running in a modern terminal emulator like Konsole, Alacritty or WezTerm.
[+] sigzero|2 years ago|reply
There are a bunch of them. None are really good IMO.
[+] ahub|2 years ago|reply
Man I'd love to have a screenshake setting for that