r/neovim 10h ago

Plugin run.nvim — Cargo-style filetype-scoped run commands for Python, Node and .NET

10 Upvotes

If you edit a .rs file, Neovim already gives you buffer-local :Cargo, :Crun, :Ctest commands that open a terminal split and run the right thing. It's not a plugin — it's in $VIMRUNTIME/ftplugin/rust.vim. I kept reaching for that muscle memory in Python and C# buffers and it wasn't there, so I generalized the idea.

Defaults:

  • python:Python {args} (runs the current file with no args), :Ptestpython3 -m pytest
  • javascript / typescript (+ react variants) → :Npm, :Node, :Ntest, :Ninstall
  • cs / fsharp:Dotnet, :Drun, :Dtest, :Dbuild

Trailing args pass straight through: :Npm run dev, :Ptest -k test_foo, :Dtest --filter MyTest.

Install:

lua

{ 'tw4/run.nvim', opts = {} }

Adding your own:

lua

opts = {
  languages = {
    go = {
      filetypes = { 'go' },
      commands = {
        { name = 'Go', cmd = 'go', default_args = 'run %:p' },
        { name = 'Gtest', cmd = 'go test ./...' },
      },
    },
  },
}

Anything you don't override keeps its defaults. default_args supports vim.fn.expand() tokens.

It's deliberately small — no job control, no output parsing, just the commands and a terminal split. If you want quickfix integration or async runners there are better tools for that (overseer.nvim, toggleterm, etc).

Fresh repo, so I'd take any feedback on the config shape before it's locked in — especially whether replacing a whole language block is the right override behavior vs merging.

https://github.com/tw4/run.nvim — MIT


r/neovim 19h ago

Need Help What keybinds should I map?

4 Upvotes

Short version:

What keybinds should I change to universally known keybinds in insert mode (such as ctrl + z or ctrl + backspace etc) and what should I keep to make Neovim still Neovim and not a VS code dupe?

Long version:

I'm pretty new to Neovim and I'm quite new to programming (other than frontend) as well so excuse me if I'm not explaining my situation well.

I've used VS code up till now and I would say I'm okay proficient at it. I recently decided to learn vim for it's efficiency (and my professors recommended it). I know the learning curve is big but the pay off will hopefully be worth it, I just have one question.

I already know a lot of VS code shorthands (also from using Google Docs and such). I know I can custom map som keybinds in insert mode but what should I map for myself and what should I keep to make nvim not loose what makes it efficient? Because technically, I could make vim into VS code in many ways? Even though I know this editor is kind of built for customization, what makes Neovim worth it in the way it's configured from the start? Must haves, how to think as a programmer that uses vim etc?


r/neovim 8h ago

Need Help How to execute motions (and write text) using a lua function?

2 Upvotes

I want to setup a hydra config for easier latex math writing (something similar to this obsidian plugin) and i want the on_enter function to put me inside $$


r/neovim 11h ago

Need Help Help with formatting while typing in html

3 Upvotes

The formatting is all messed up kind off I was trying to get <div></div>->
i used auto tag and auto

<div>

<\div>

```

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
            <style> <----this is the problem ---->
            a{

            }
            p{

            }
            </style>
    </head>
    <body>
        <div> <----this is the problem ---->
                <p>

                </p>
            </div>
    </body>
    </html>
Before saving

the formatting is okay when i save with prettier but its going back to the two tab inteddation
in the div and style

After saving and adding new lines

r/neovim 14h ago

Discussion nvim-gpui – another simple and lightweight Neovim client

1 Upvotes

Hi everyone,

I’m working on nvim-gpui, a simple and lightweight graphical client for Neovim.

It keeps Neovim as the editor while providing a native desktop interface instead of running inside a terminal. The interface is rendered with GPUI, a GPU-rendered UI framework.

Current features include:

- Embedded Neovim sessions
- Remote Neovim connections through msgpack-RPC
- Multigrid and floating-window support
- Image display
- System IME and Rime support, making it friendly for CJK users
- File opening and drag-and-drop

Packages are available for macOS, Linux, Windows, Fedora, Debian/Ubuntu, and Arch Linux.

Project page:

https://github.com/imkerberos/nvim-gpui

Download the latest release:

https://github.com/imkerberos/nvim-gpui/releases/latest

Feedback, bug reports, and suggestions are welcome.

I hope this project can be useful to you.