Neovim as Godot's script editor

A Godot 4 editor plugin that edits GDScript, shaders and other text files in an embedded Neovim, drawn inside the editor with Neovim’s UI protocol. Your config, plugins and keymaps load as usual, and the parts of Godot’s script editor that matter keep working.

Godot 4.5+ · Neovim 0.10+ (0.11+ recommended) · Linux and macOS · MIT

The Neovim tab in Godot with breakpoint, override and signal signs in the editor's colors

Keeps what Godot's script editor does

Your Neovim config, plugins and keymaps load as usual. Everything below works with them.

Ctrl-dropping two nodes from the Scene dock inserts @onready vars

Drag and drop

Drop a node from the Scene dock to insert $Path/To/Node, or hold Ctrl/Cmd for an @onready var. Files drop in as "res://path" or a preload.

Dropping an Inspector property inserts its node path

Inspector properties

Drag a property from the Inspector to insert $Path/To/Node.property, or the NodePath string that animation tracks take.

Hover docs from Godot's GDScript language server

Language server

Hover docs with the engine class reference, go-to-definition, references, rename and completion, from the language server the editor already runs.

GodotFunc jumping to a function in another file

Project-wide function search

:GodotFunc <name> jumps to a function in any .gd file of the project, with name completion.

GodotErrors lists errors from player.gd and enemy.gd in the quickfix list while hud.gd is open

Errors across the project

:GodotErrors checks every script with the language server and opens the quickfix list on the errors, including files you haven’t opened.

Godot's color picker open on a Color literal in Neovim, with swatches before each literal

Color picker

Swatches before each Color literal, and Godot’s color picker on a click, :GodotColor or gC. Picks rewrite the literal in the form you choose.

Godot's Quick Open dialog on textures, opened from a preload in Neovim

Resource paths

An icon or image preview before each preload path. Double-click it to open the file, or :GodotPickResource to swap in another one.

Go to Method in the Signals dock jumps to the connected method in Neovim

Signals and overrides

Signs mark connected and overriding methods, and the Signals dock’s Go to Method opens the method in Neovim.

GodotRunFile runs an EditorScript and its output shows in the Output panel

Run from Neovim

Godot’s run, pause and stop shortcuts work while you type, and :GodotRunFile runs an EditorScript.

A script before and after saving with format on save

Format on save

gdscript-formatter or gdformat on :w. Only changed lines are replaced, so breakpoints, marks and the cursor stay put.

Two splits and a second tab, restored when the project reopens

Sessions

Open files, cursors, splits and tabs are saved when the editor closes and come back when the project reopens.

Each open scene has its own Neovim tab page

Scene tabs

Each open scene gets its own Neovim tab page, and switching on either side switches the other.

The main screen tabs with the Script tab hidden by a -neovim profile

Editor profiles

One menu item makes copies of your editor feature profiles with the Script tab hidden, so Neovim is the only script editor.

Install

  1. Install Neovim 0.10 or newer; 0.11+ is recommended for its default LSP mappings.
  2. Get the plugin from the Asset Library (search for "Neovim Script Editor"), or download godot_nvim-<version>.zip from the latest release and copy addons/godot_nvim into your project's addons/ folder.
  3. Enable Neovim Script Editor under Project → Project Settings → Plugins. A Neovim tab appears next to 2D / 3D / Script.
  4. Optional: run Project → Tools → Create Neovim Editor Profiles to hide Godot's Script tab.

The docs cover settings, the debugger, colors, formatting and the known gaps. The changelog lists what each release added.

Also in this repository

vim2godot: any Vim colorscheme as a Godot theme

A command-line tool that turns a Vim or Neovim colorscheme, such as any on vimcolorschemes.com, into a Godot 4.5+ editor theme: the script editor's colors and the interface around them. It doesn't need the plugin, but with it, Neovim follows the new theme too.

v0.5.0 · Needs Neovim 0.10+ and git · Unpack it and put vim2godot on your PATH

The cendre colorscheme, converted from Vim, in the Godot script editor

Convert, install, done

Give it a vimcolorschemes.com page, a GitHub repository or a local folder. Each scheme becomes a .tet with the script editor's colors and an apply_<name>.gd that sets the interface colors. Schemes with dark and light variants are written as both.

vim2godot https://vimcolorschemes.com/r/aejkatappaja/cendre

# only tokyonight's storm style, installed straight into Godot
vim2godot -scheme tokyonight-storm -install folke/tokyonight.nvim

Then run apply_<name>.gd with File → Run in Godot's script editor. The vim2godot docs cover every flag and how the colors map.

It runs the colorscheme's code in a headless Neovim, so only convert schemes you would load in your own editor. On macOS the binary isn't signed; if Gatekeeper blocks it, run xattr -d com.apple.quarantine vim2godot.