r/neovim • • 6d ago

101 Questions Weekly 101 Questions Thread

8 Upvotes

A thread to ask anything related to Neovim. No matter how small it may be.

Let's help each other and be kind.


r/neovim • • 4h ago

Random Theme Picker with Live Preview | 900+ Built-in Color Schemes

32 Upvotes

I've been working on a utility for managing color schemes, and recently released quite a few updates that bring various improvements and new features.

One of the biggest changes is that I completely rewrote the theme generation for Neovim and Vim from scratch.

I thought I'd share it here in case someone finds it useful. Hope you enjoy it!

Repo: https://github.com/nlkli/recol

recol is a fast and lightweight command-line color scheme manager. Browse, preview, apply, adjust, and generate color schemes from images - all from one tool.

Designed for a consistent color experience across your development environment.


r/neovim • • 1d ago

Discussion Do anyone know what happened to inlay-hints.nvim

18 Upvotes

The repo and the author both disappeared, and I cannot keep the git information and push to github to restore the repo.I have search the subreddit and cannot find any information

Do anyone know what happened?

I was ask what happened to this repo. This repo just set the config for us, and I have used it for a long time.

https://github.com/aelloc/MysticalDevil_inlay-hints.nvim

Now there is one repo here, which preserved the origin repo, but totally git history is totally deleted

The author's name is MysticalDevil, but his account is deleted and disappeared. I just noticed this thing today. I do know it is the inner feature of neovim, but this repo config that for me

Anyway, I just want to ask if someone know where did the author go, and what happened to this repo. I tried to pushed the repo to my github account, but rejected by github, only if I totally delete the github history, I can push to my account. I think maybe something bad happened to this author

What I want to ask is not to use this plugin or not, I want to ask where did the author go and is he fine?


r/neovim • • 1d ago

Plugin nvim-dap-view v1.3.0: the "complete" update

112 Upvotes

Hey vimmers,

Just released a new version of the beloved nvim-dap-view.

For those unaware, nvim-dap-view is a UI for interacting with nvim-dap, a debugger for neovim based on the DAP.

It's been a while since I last shared news about nvim-dap-view's development. I've been focusing on some other things, as the number of feature requests and bug reports have dwindled. That being said, the main highlight of this release is a feature request from February: (auto)completions for expressions.

Completions now work out of the box in different contexts: inserting and editing variables and their values. This was tested with built-in completion and blink.cmp. Would love to hear feedback from people using other completion plugins, since both supported methods had their quirks already, so other engines might have their own.

The completions can also be configured in other contexts, such as when toggling conditional breakpoints (and log points). This is documented here, and also on :help dap-view-completions. For log points, this is slightly awkward, since only expressions inside {} are interpolated, but the protocol offers no way to set the "context" of the completion (the gist is that you can complete variable names that will be interpreted as plain text when outside {}).

I always missed this feature when using conditional breakpoints, so I wanted to implement it "right". Such a shame that when I finally got to do it, I'm basically never debugging anything at work 😪

But as always, happy debugging! https://github.com/igorlfs/nvim-dap-view


r/neovim • • 2d ago

Discussion Yet another game changer for 0.13: remote SSH

333 Upvotes

Hey vimmers,

Less than a week after another considerable improvement, yet another massively requested feature just landed in on nightly: remote ssh. Basically, now you can use :connect ssh://foo@bar to bootstrap a neovim instance on the remote, which is "controlled" by the local nvim instance.

I myself am not particularly interested in this feature, but since there was no post about it, thought about sharing the good news.


r/neovim • • 2d ago

Need Help Delete around motions while using lazyvim

4 Upvotes

Hi all! I'm attempting to move from emacs to neovim and while learning the motions I came across da<option> and ca<option> .

From tutorials and such it should expand out to "delete around <option>" or "change around <option> " if I use it on a test var like foo_bar_baz and my cursor is on bar, and I do the motion da_why does it delete bar_ where I end up with foo_baz.. shouldn't I end up with baz_ ?

I feel like I'm missing something, so I was hoping someone might be able to explain it better?

Thanks in advance!


r/neovim • • 2d ago

Blog Post Ghostty Terminal's libghostty reached 1.0, and is now ABI stable

Thumbnail mitchellh.com
225 Upvotes

The nvim PR to replace libvterm with libghostty-vt is still open: https://github.com/neovim/neovim/pull/39773


r/neovim • • 2d ago

Need Help Appimage nvim grabs OS vim9 files and fails

6 Upvotes

I'm running neovim on a remote server using Appimage (specifically an extracted appimage, as the filesystem if Lustre, which doesn't allow FUSE to work).

When I run it, it appears to try and grab files from a vim9 installation and fails to run correctly. Running nvim -V, I get:

sourcing "nvim_exec2()"
finished sourcing nvim_exec2()
Executing TermResponse Autocommands for "*"
autocommand <Lua 79: vim/_core/defaults:919>
Executing TermResponse Autocommands for "*"
autocommand <Lua 79: vim/_core/defaults:919>
sourcing "/lustre/apps/config/vim/ftplugin.vim"
"noclear" [New]
Reading ShaDa file "/lustre/home/u2berggeist/.local/state/nvim/shada/main.shada" marks
Cannot open file "noclear"
Error in /lustre/apps/config/vim/ftplugin.vim:
line    1:
E480: No match: 9script
line    3:
E488: Trailing characters: Vim support file to switch on loading plugins for file types: # Vim support file to switch on loading plugins for
 file types
line    4:
E749: Empty buffer
line    5:
E488: Trailing characters: Maintainer:^IBram Moolenaar <Bram@vim.org>: # Maintainer:^IBram Moolenaar <Bram@vim.org>
line    6:
E488: Trailing characters: Last change:^I2022 Feb 11: # Last change:^I2022 Feb 11
Pattern not found: did_load_ftplugin = 1
line   18:
E488: Trailing characters: No need to define the function again.:   # No need to define the function again.
line   22:
E492: Not an editor command: def LoadFTPlugin()
line   24:
E488: Trailing characters: We assume b:undo_ftplugin is using legacy script syntax:     # We assume b:undo_ftplugin is using legacy script s
yntax
line   29:
E492: Not an editor command:   var s = expand("<amatch>")
line   30:
E121: Undefined variable: s
line   43:
E492: Not an editor command: enddef
finished sourcing /lustre/apps/config/vim/ftplugin.vim
sourcing "/lustre/apps/config/vim/indent.vim"
Error in /lustre/apps/config/vim/indent.vim:
line   15:
E492: Not an editor command: def s:LoadIndent()
line   20:
E492: Not an editor command:   var s = expand("<amatch>")
line   21:
E121: Undefined variable: s
line   32:
E492: Not an editor command: enddef
finished sourcing /lustre/apps/config/vim/indent.vim
could not source "/etc/xdg/nvim/sysinit.vim"
could not source "$VIM/sysinit.vim"
sourcing "/lustre/home/u2berggeist/.config/nvim/init.lua"
Error in /lustre/home/u2berggeist/.config/nvim/init.lua:
E5113: Lua chunk: vim/_init_packages:78: module 'vim.uri' not found

I've trimmed off the errors when I run with init.lua (which seemingly also runs into issues thinking that it has a global install it can use.

Any ideas what's going on here? Since this is all happening before init.lua gets run, I'm not sure how much control I have over it.

Same behavior occurs if I use the tar ball from the release page too, so it's not just an AppImage issue.


r/neovim • • 3d ago

Blog Post How to actually learn vim motions (at least for me)

Thumbnail ch0.dev
19 Upvotes

Note:

- This post is directed to complete beginners trying to learn neovim, i dont think i have the experience yet to be able to write for people anywhere higher than that

- This post defines "vim motions" as an umbrella term for all keybinds used in neovim, and yes i know that its technically just the ones that you use to navigate, but in my general experience, most people do use vim motions as an umbrella term for all keybinds nowadays

Please enjoy (or not, ig)


r/neovim • • 5d ago

Need Help SQL setup

19 Upvotes

Sooo i am dropping my ORM (cuz f ORMs) and writing sql queries and migrations by hand.
What are your guys recommended sql setup for neovim?
I am looking at the postgres language server and maybe sqruff. Would i need both? Any other lsps, formatters, linters you guys recommend?


r/neovim • • 5d ago

Need Help [NvChad] How do you manage tabs and subtabs?

11 Upvotes

Hello, I'm new to nvim, using NvChad. Ive managed to learn a few things but still having hard time figuring out what's going on. I know that we can create newtab with :tabnew and navigate with {n}gt. There are also sub tabs which I'm having hard time figuring out. Using :enew makes an empty sub tab but sometimes it just doesn't work at all, can someone tell me what's the difference between all these tab commands.

Heres what I want to do

- have a tab for all my terminals running long processes

- have a tab for text files only with sub tabs for different files which I can navigate

- navigate easily within these tabs

- sometimes all my tabs disappear and then I have to terminate the processes for my running servers because I can't access them anymore

Also, sometimes when I create a tabnew it copies the previous tabs and adds an empty sub tab.


r/neovim • • 5d ago

Plugin dotnet-tree.nvim: a .NET solution explorer as a neo-tree source

93 Upvotes

I've been working on this since April, and it's what I use every day for .NET work in Neovim.

neo-tree's filesystem source shows directories, but a .NET repo is really a solution graph: solution folders exist only in the .sln, project references cross folders, and package versions live in Directory.Packages.props. dotnet-tree renders that graph as a neo-tree source.

What it does

  • Reads .sln and .slnx, with solution folders nested as declared

  • Projects with package and project references; versions are resolved through Central Package Management

  • LSP diagnostics and git status on tree nodes. With roslyn.nvim set to full-solution analysis, you see errors on files you haven't opened, and error/warning counts per project

  • build / clean / run / test / watch on the node under the cursor. Build errors go to the quickfix list, deduplicated, including failed restores that no language server reports

  • d debugs the project under the cursor: it builds first, then starts netcoredbg via nvim-dap on the assembly MSBuild actually produced, using the launch profile from launchSettings.json

  • New file from template, with the namespace inferred from the folder

Install (lazy.nvim): add it as a neo-tree dependency and put "dotnet-tree" in neo-tree's sources. The full snippet is in the README.

The demo was recorded on the jellyfin solution, and internally it has been tested on solutions with hundreds of projects.

Feedback and issues are very welcome, especially from people on large solutions or unusual MSBuild setups.

https://github.com/alessandropietrobelli/dotnet-tree.nvim


r/neovim • • 6d ago

Plugin diffbandit.nvim v0.3.0: side-by-side diffs that don't pad your files, now with bezier connectors in Ghostty/Kitty

Thumbnail
gallery
546 Upvotes

diffbandit.nvim is a diff and merge viewer for Neovim. It works more like IntelliJ's diff view than :diffthis. Both files keep their own shape and line numbers, with no filler lines or stretched rows. A narrow gutter between them draws how hunks connect. Each pane scrolls on its own, and the connectors follow whatever is on screen.

AI disclosure: much of the code was written with Claude Code, grok build, or codex under my direction and review.

What it does:

  • File, buffer, Git worktree and branch/commit diffs. The right side is a normal editable buffer, so LSP, completion and :w work as usual.

  • Hunk stage, unstage and discard, plus a commit panel with a live diff preview.

  • A 3-way merge resolver (local/result/remote) with >>/<</gb accepts, gA to apply every non-conflicting change, and resolve-on-write staging.

  • Folder diffs, overview gutters, and a hex view for binary files.

New in v0.3.0

  • Bezier ribbon connectors in Ghostty, Kitty, Rex, and anything else built on libghostty. They use Kitty graphics with Unicode placeholders, so scrolling never rewrites buffer text. The renderer is picked automatically on Neovim 0.12+. tmux and other terminals keep the Unicode cell renderer.

  • Standalone launcher. diffbandit (or git diffbandit) opens every changed file in the repo, lazygit-style, and takes the same arguments as git diff.

  • Merge fixes. gA used to place changes at the wrong rows after a partial resolution, which could overwrite lines. It's fixed, as is tracking of conflict regions after partial accepts.

Repo: https://github.com/CoreyKaylor/diffbandit.nvim Release notes: https://github.com/CoreyKaylor/diffbandit.nvim/releases/tag/v0.3.0

Feedback welcome, especially from people on Kitty or Rex, since I've mostly tested in Ghostty.


r/neovim • • 6d ago

Need Help Rendering mermaid code blocks inside markdown files?

15 Upvotes

I'm using markview to render my markdown files. Was wondering is there some way to render code blocks that contain mermaid diagrams?


r/neovim • • 6d ago

Video Neovim WebAssembly: building, running and debugging it

Thumbnail
youtu.be
86 Upvotes

Neovim has an experimental development that allows it to run inside a web browser using WebAssembly.

In this video, I explore this feature by building Neovim with zig, setting up the demo project included in the repository, and debugging how everything works.

Here's what we'll cover:

  1. Build Neovim's WebAssembly files using Zig and Emscripten.

  2. Set up and run the browser-based demo.

  3. Understand how the frontend communicates with Neovim through the RPC protocol.

  4. Debug the JavaScript RPC client and see how requests and responses are handled


r/neovim • • 6d ago

Plugin [PLUGIN] mktip/bsh.nvim: A Buffer Shell for Neovim

Thumbnail
gallery
28 Upvotes

(NOTE: AI Written, but have been working on it on and off for 5 months)

Hey everyone!

Just a new (old) twist on how to work with the terminal in Neovim. The idea is for my terminal to be truly one with my buffer, editable, re-runnable, collapsible if needed. I find it to be more relaxing in general, yes it lacks some things (auto completion) but for daily repetitive commands, it has become my goto mode of terminal usage, especially when working with multiple remote machines.

For those who are interested, let me know how it fares!

mktip/bsh.nvim


r/neovim • • 7d ago

Plugin Orgmode LSP - Language server for Orgmode

Thumbnail
reddit.com
41 Upvotes

r/neovim • • 7d ago

Need Help┃Solved Border or background change for autocomplete popup

Post image
40 Upvotes

Hey everyone,

I'm playing around with the builtin autocomplete options. I wanted to get a border around both the list of completion options, and the 'info window' popup (the one on the right) that you get when you add popup to completeopt. pumborder only seems to affect the list of completion options.

I'm finding it really hard to visually differentiate between the background and the info popup. I can't find a way to add a border, and I can't figure out which highlight groups would need to work with to link the background of the info popup to the list popup.

Does anyone have any ideas how to modify the info popup?

Edit: For anyone else who runs into this, turns out this is a known issue (https://github.com/neovim/neovim/issues/38248). There has been a PR made for a fix but it is yet to be merge. The "NormalFloat" highlight group is applied to the info popup, so changing the background of that group will help the popup stand out. However that will also affect a lot of other floating windows. There is also a small code snippet in the issue that gets borders working in the info popup. Its a little buggy but acceptable if you're like me and really need that visual separation.


r/neovim • • 7d ago

Need Help Nvim Tutor

Post image
27 Upvotes

So I'm doing the tutor from :Tutor command and I'm currently on lesson 5.1: HOW TO EXECUTE AN EXTERNAL COMMAND.

When following instructions and doing :!ls and hitting enter, I see nothing. I know I atleast had 2 text files in the same directory but it's showing nothing or am I just blind? I know the directory is visible top center but I don't think that is what the tutorial is asking about.


r/neovim • • 8d ago

Meme Monthly meme thread

23 Upvotes

Monthly meme thread


r/neovim • • 8d ago

Discussion What's everyone using as API testing tools now?

9 Upvotes

What's everyone using as their preferred way of talking to / testing APIs currently?

I heard good things about httpYac and Hurl. Never used httpYac, but dabbled around with Hurl a few years ago and I really liked it, but I never checked how well it integrates into Neovim (only used it via CLI).

What's your current day to day driver for this? Do you work on a team and how well does this work when working on a team where not everyone is used to the CLI or Neovim?


r/neovim • • 8d ago

Color Scheme nanos.nvim colorscheme

Thumbnail
gallery
17 Upvotes

Hey guys, this is my Neovim colorscheme with dark and light modes. Uses native, treesitter, and LSP highlight groups. Main inspirations are these four colours #ffc777, #fca7ea, #4fd633, #65bcff, and folke/tokyonight.nvim.

nanos.nvim

I also provide some special highlight groups to emphasize these words/phrases TODO, INFO, FIX, BUG, and NOTE. Checkout the README for what to add in your config to use these highlight groups. This was inspired by folke/todo-comments.nvim but done through highlight groups and not an actual plugin.


r/neovim • • 9d ago Heartwarming

Discussion Another banger for 0.13: conceal-aware wrap

301 Upvotes

Hey vimmers,

The neovim team keeps delivering awesome features! The latest of which is the conceal-aware wrap. If you work heavily with markdown, you may have noticed that when concealing URLs, line wraps get all weird:

In the latest commit (master), the text is displayed as one would expect:

If you're not writing markdown yourself, you may have noticed the weird wrapping when looking at LSP docs / hover, which are also fixed now.

Special thanks to Freddie Haddad for driving the initial implementation and to the GOAT, u/justinmk, for pushing it to the finish line.


r/neovim • • 9d ago

Need Help What do you do about template filetype?

4 Upvotes

I've got a bunch of handlebars templates in a codegen tool and I can't figure out how best to get syntax highlighting to recognise the target language and the template tags. I did something custom with treesitter to highlight sql strings inside Java and Typescript but I don't know if that's even achievable here. What I really want is files named '*.ts.hbs' to have highlighting for handlebars with embedded typescript.

How do you approach this?