Neovim

19 readers
1 users here now

Neovim is an hyperextensible Vim-based text editor. Learn more at neovim.io.

founded 2 years ago
MODERATORS
1
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/marjrohn on 2025-06-18 03:04:19+00:00.

2
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/_rand0m_guy on 2025-06-16 20:52:42+00:00.

3
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/mplusp on 2025-06-17 22:42:32+00:00.


Not sure if I should post every new video in this series here or if it's becoming too spammy. Let me know!

4
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/mplusp on 2025-06-16 07:21:18+00:00.


So the format is a little different again, as I put together some short insert mode related tips. I also tried to minimize the cuts a little and tried another screnn recording tool. Hopefully these changes result in better audio sync. What do you think?

5
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/Worried-Difficulty-4 on 2025-06-16 16:18:34+00:00.


Hi Team,

I have been using NeoVim for a few years now and ditched my heavy electron-based IDE long ago. The other day I decided to make a lite-weight config for servers/when my full NeoVim config is overkill.

I made a video which might be useful for newcomers here: https://youtu.be/skW3clVG5Fo

6
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/BIBjaw on 2025-06-16 16:05:08+00:00.

7
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/siduck13 on 2025-06-16 23:39:21+00:00.

8
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/Spelis123 on 2025-06-16 18:41:11+00:00.


If you ever wished you could just open a .db file in Neovim and actually get something readable instead of binary garbage, now you can! (well, there are other plugins too but...)

i built nvim-dbview - a dead simple and lightweight Neovim plugin that lets you edit and browse databases from several database backends

It's great for Flask/Django devs, game devs, or literally anyone who's sick of switching to external DB viewers just to peek at a row. Also good if you feel like other alternatives are too complex or whatever

Give it a try and let me know if you like it, find any bugs or want any more features.

Cheers!

9
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/mahmirr on 2025-06-16 03:03:22+00:00.


Link: https://github.com/nix-community/kickstart-nix.nvim

If you haven't checked it out, you should! It's how I'm going to be using to teach newbies at school for setting up their Neovim environments.

One of the big mistakes I made was not learning about :Tutor soon enough, and using a pre-built flavor of Neovim like LunarNvim, LazyVim, and AstroNvim. The latter was the best. But, I would constantly face issues, and forbid me from ever updating my packages or anything on my system.

Now, though, with kickstart-nix.nvim, since it uses Nix to set up the environment on your PC, you have extremely strong guarantees for the plugins and dependencies that you are using in your project, and you can instantly move your configuration between computers, no bullshit dealing with external dependencies.

Sharing this so that more people hop on the train.

I've used nixvim, NixCats, and a bunch others. The simplest (and arguably best) has been kickstart-nix.nvim.

In terms of plugin availability, you can check them on Nixpkgs: https://search.nixos.org/packages

Packages are being added and updated quite frequently, and you can easily target specific commits or specific forks of your favorite Vim/Nvim plugins.

Feel free to ask questions, and I'll try my best to answer.

To be clear, I'm not shitting on anyone's parade. Just want people to be aware of an alternative that I think is simpler and easier for newbies to get started with and on their path to customizing their environments exactly how they want.

10
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/Difficult_Square5051 on 2025-06-16 13:39:43+00:00.


All the great vim plugins can be configured using global g: variables and overwritten by buffer b: variables.

So I can decide as user to set the normal behavior in my vimrc and overwrite those with autocmd or filetype files.

Now, as lua makes everything better and viml is such a hard way to learn, every nvim plugin comes with its own lua table for filetypes in its own global setup. Point.

No way to make a decide by buffer how the plugin behaves. Maybe I want the plugin go to left for markdown files under a specific folder but for markdown files in another directory go right? So the owner has to implement a callback function for my specific request, instead of using the variable scopes..,,

11
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/effinsky on 2025-06-16 07:58:06+00:00.


I currently use a combo of lazygit the cmdline tool and github in the browser. I'd like to do it a bit more ergonomically, since well we do a lot of this stuff as engineers. I'd love some recommendations.

12
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/_vim_enjoyer on 2025-06-15 22:54:50+00:00.

13
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/SuirtuE on 2025-06-15 22:45:50+00:00.

14
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/Business_Horror_3323 on 2025-06-15 22:03:12+00:00.

15
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/siduck13 on 2025-06-15 12:52:32+00:00.

16
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/AutoModerator on 2025-06-15 01:00:54+00:00.


If you want your dotfiles reviewed, or just want to show off your awesome config, post a link and preferably a screenshot as a top comment.

Everyone else can read through the configurations and comment suggestions, ask questions, compliment, etc.

As always, please be civil. Constructive criticism is encouraged, but insulting will not be tolerated.

17
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/NoYam4683 on 2025-06-14 08:45:40+00:00.


Hi everyone! I’m excited to share my first Neovim plugin: gitstatus.nvim. It’s an interactive Git status window where you can stage/unstage files and create commits.

Why did I create it?

As someone who usually prefers the Git CLI, I constantly found myself repeating: 1. git status → 2. git add → 3. git commit, and I wanted a quicker and more convenient way to do it without leaving Neovim.

https://preview.redd.it/lbqmxdrhvu6f1.png?width=1920&format=png&auto=webp&s=f3984e43b608d818237799497109422ffd1e4183

18
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/adibfhanna on 2025-06-14 20:18:46+00:00.


Let me know what you think!

19
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/sd5seandewar on 2025-06-14 13:07:58+00:00.


Ever wanted to play DOOM in Neovim? No? Wrong answer: https://github.com/seandewar/actually-doom.nvim

Requires Nvim v0.11+ and only supports Linux. Maybe I'll consider other platforms later, but I'm currently bored of working on what is essentially a shitpost.

Best experienced in a terminal that supports the kitty graphics protocol. If you're using the latest pre-release of Nvim (v0.12-dev after de87ceb), support should be automatically detected.

Be sure to read the docs; have fun!

20
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/s1n7ax on 2025-06-13 17:07:26+00:00.


  • Install native-preview npm install --global @typescript/native-preview
  • Make sure tsgo is in your PATH by running tsgo --version (result should be something like Version 7.0.0-dev.20250613.1)
  • Open up your neovim config and add tsgo.lua file. (On linux, the path is ~/.config/nvim/lsp/tsgo.lua)
  • Add the following code to your tsgo.lua file:

lua ---@type vim.lsp.Config return { cmd = { 'tsgo', '--lsp', '--stdio' }, filetypes = { 'javascript', 'javascriptreact', 'javascript.jsx', 'typescript', 'typescriptreact', 'typescript.tsx', }, root_markers = { 'tsconfig.json', 'jsconfig.json', 'package.json', '.git', 'tsconfig.base.json', }, }

  • Enable the LSP in your init.lua file by adding vim.lsp.enable('tsgo')

What to expect:

  • Most of the important features are working such as auto-completion, diagnostics, goto-definition etc.
  • Some of the actions are not working like goto-implementation
  • Sometimes the server is crashing
  • Some type errors started appearing which I don't get in vtsls or at the project build.

Is it fast?

  • Difference is definitly noticeable. Auto-completion feels good. Diagnostics are updated faster I would switch 100% if tsgo was stable but it's unusable for any real work from my experience.
21
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/CptCorndog on 2025-06-13 20:25:43+00:00.

22
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/Afonsofrancof on 2025-06-13 20:10:30+00:00.


Neovim, in recent versions (0.11.0+), gained the ability to automatically detect when your terminal's theme changes. It does this by querying the terminal with an OSC sequence, and the terminal replies with an OSC 11 sequence containing its current background color. Neovim then uses this information to update its internal background option.

However, sometimes you want to do more than just change vim.opt.background. Maybe you want to switch to a completely different colorscheme, or adjust your statusline, or trigger any other custom logic. That's where OSC11.nvim comes in.

My plugin listens for the same OSC 11 responses that Neovim processes internally. It uses the exact same method Neovim uses to determine if the background is light or dark. The difference is that instead of just setting vim.opt.background, OSC11.nvim lets you define custom Lua functions to run when a light or dark theme is detected.

Currently I use this with tmux and Ghostty. Ghostty changes between two themes automatically with the system theme, and sends those OSC sequences which are captured by neovim to change its theme as well.

23
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/CerealBit on 2025-06-13 06:57:04+00:00.


Telescope, fzf-lua, snacks-picker, mini.pick, etc.

I used Telescope for a few years and I really like it, but I noticed that it gets slow on big projects. I would be interested to hear which picker you use and why you prefer one over the others.

24
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/neoneo451 on 2025-06-13 09:30:18+00:00.


In the spirit of:

What other good practices are there? No need to be the "best", just what you prefer and works for you.

I will start with a refactor I was doing on obsisdian.nvim yesterday, where I split the huge util.lua file into three modules:

  • util.lua has all the "pure" functions
  • api.lua has all the impure functions that interacts with the editor state
  • builtin.lua has all the functions that are the default behavior but also are user-definable

So I think once you have a plugin that has significant size, it is neccessary to not throw every simple helper into a util file, and don't care about their organization.

Neovim itself is also having a problem of a huge lsp.util file The culling of vim.lsp.util.

Also, if a helper is only used once, you might as well inline it, so that logic is more apprent at the call site.

This is also good for testing as well, also mini.test rules :)

Just a small thing I want to share, what more do you have?

25
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/neovim by /u/TibFromParis on 2025-06-12 17:52:17+00:00.


Hey folks! 👋

I've been working on package-ui.nvim, a floating window interface that makes managing dependencies like NPM, Cargo a breeze directly from Neovim.

🎯 What This Solves:

Every language has its own package manager with different commands and workflows. This plugin provides a single, consistent interface for all of them.

Repo : https://github.com/MonsieurTib/package-ui.nvim

🚀 Core Functionality:

The plugin provides a unified interface with five main components:

  • Search - Find packages across registries in real-time
  • Installed - View currently installed packages with update indicators
  • Available - Browse search results and available packages
  • Versions - Explore different versions of selected packages
  • Details - Comprehensive package information including dependencies, licenses, and descriptions

📦 Currently Supported Package Managers:

NPM:

  • Automatically detects package.json files in your project
  • Integrates with npmjs.com registry for package search and details
  • Shows outdated packages with available updates
  • One-click install/uninstall with automatic package.json updates

Cargo:

  • Automatically detects Cargo.toml files in your project
  • Integrates with crates.io registry for comprehensive crate information

🔮 Roadmap : More Package Managers Coming

The architecture is specifically designed to easily add new package managers.

Here's what's planned:

  • Python pip
  • Go modules
  • Ruby gems

📋 Universal Workflow (Works for All Package Managers):

  1. :PackageUI - Opens the interface, auto-detects your project type
  2. Type to search packages from the appropriate registry
  3. Navigate with j/k, Tab between components
  4. Press Enter to browse available versions
  5. Press 'i' to install your chosen version
  6. Press 'u' on installed packages to uninstall
  7. View real-time dependency info and update notifications

⚙️ Installation (lazy.nvim):

{
  "MonsieurTib/package-ui.nvim",
  config = function()
    require("package-ui").setup()
  end,
}

🤝 Community Input Needed:

Which package manager should I prioritize next? What features would make your multi-language development workflow smoother? The codebase is designed to be community-driven and extensible.

view more: next ›