# vscode-neovim/vscode-neovim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/vscode-neovim-vscode-neovim).**

7,690 stars · 264 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/vscode-neovim/vscode-neovim
- Homepage: https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim
- awesome-repositories: https://awesome-repositories.com/repository/vscode-neovim-vscode-neovim.md

## Description

This project is a modal editing integration that embeds a full Neovim instance into Visual Studio Code. It functions as a modal text editor, providing native motions and keybindings for navigation and text manipulation through a buffer synchronization bridge.

The integration features a Lua scripting interface for automating editor behavior and a coordination layer that maps Neovim motions to native Language Server Protocol actions for code navigation. It ensures consistency between the two environments using a shared clipboard provider and synchronized cursor and selection states.

The system covers a broad range of capabilities, including keyboard-centric navigation for file explorers and window layouts, multi-cursor control, and the rendering of virtual decorations and syntax highlights. It also includes an integrated command line with native completions and history, as well as tools for managing editor layouts and switching between open files.

The editing engine can be configured to run on either a local host or within a remote extension host.

## Tags

### Development Tools & Productivity

- [Modal Editing Layers](https://awesome-repositories.com/f/development-tools-productivity/keybinding-configurations/keybinding-presets/modal-editing-layers.md) — Implements a state-machine modal editing layer that replicates Neovim's keyboard-driven workflows within VSCode.
- [Cross-Engine State Synchronization](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-experience/cursor-position-mapping/cursor-position-persistence/cross-engine-state-synchronization.md) — Coordinates cursor positions and visual selections between the VSCode interface and the Neovim engine. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/CHANGELOG.md))
- [Pane Navigation](https://awesome-repositories.com/f/development-tools-productivity/editor-navigation-utilities/pane-navigation.md) — Enables switching focus between different editor panes and directions using directional keybindings. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/runtime/vscode/overrides/vscode-window-commands.vim))
- [Buffer Switching](https://awesome-repositories.com/f/development-tools-productivity/editor-workspace-managers/buffer-switching.md) — Provides keyboard shortcuts to switch between open files and editor groups to manage the active workspace view. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/runtime/vscode/overrides/vscode-tab-commands.vim))
- [Keyboard-Driven Code Navigation](https://awesome-repositories.com/f/development-tools-productivity/keyboard-driven-code-navigation.md) — Implements high-speed, keyboard-driven cursor movement and navigation within source code.
- [Language Server Integrations](https://awesome-repositories.com/f/development-tools-productivity/language-server-integrations.md) — Maps Neovim motions to native VSCode Language Server Protocol actions for advanced code intelligence and navigation.
- [LSP Action Mappings](https://awesome-repositories.com/f/development-tools-productivity/lsp-action-mappings.md) — Maps Neovim motions to native LSP actions for complex code navigation and symbol manipulation. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/runtime/vscode/lsp/buf.lua))
- [Modal Editing Systems](https://awesome-repositories.com/f/development-tools-productivity/modal-editing-systems.md) — Embeds a core modal editing system to provide native modal keybindings and motions within the editor. ([source](https://github.com/vscode-neovim/vscode-neovim#readme))
- [Modal Editors](https://awesome-repositories.com/f/development-tools-productivity/modal-editors.md) — Implements a modal text editor interface that uses distinct modes for navigation and text manipulation.
- [Neovim Core Integrations](https://awesome-repositories.com/f/development-tools-productivity/neovim-core-integrations.md) — Integrates Neovim as the primary backend engine for text editing and modal interaction within VSCode.
- [Symbol Navigation](https://awesome-repositories.com/f/development-tools-productivity/symbol-navigation.md) — Allows modal motions to trigger native IDE symbol navigation, such as jumping to definitions or showing hovers. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/README.md))
- [Engine](https://awesome-repositories.com/f/development-tools-productivity/command-aliasing/engine.md) — Intercepts Neovim engine-level window and buffer commands to trigger corresponding VSCode API calls.
- [Developer Experience](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/developer-experience.md) — Allows users to customize their coding environment with Lua scripts and modal shortcuts for productivity.
- [Editor Layout Managers](https://awesome-repositories.com/f/development-tools-productivity/editor-layout-managers.md) — Controls workspace arrangements through splitting editors, resizing dimensions, and joining editor groups. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/runtime/vscode/overrides/vscode-window-commands.vim))
- [File Explorers](https://awesome-repositories.com/f/development-tools-productivity/file-explorers.md) — Allows renaming, deleting, and creating files within the integrated file explorer using modal keybindings. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/README.md))
- [IDE Explorer Navigation](https://awesome-repositories.com/f/development-tools-productivity/ide-explorer-navigation.md) — Provides modal keybindings for navigating and manipulating files within the integrated explorer and other lists. ([source](https://github.com/vscode-neovim/vscode-neovim#readme))
- [IDE Workflow Optimizations](https://awesome-repositories.com/f/development-tools-productivity/ide-extension-features/ide-workflow-optimizations.md) — Provides a synergy between Neovim's plugin ecosystem and VSCode's graphical interface to optimize development workflows.
- [Cross-Engine Sync](https://awesome-repositories.com/f/development-tools-productivity/local-file-syncing/remote-repository-syncing/configuration-syncing/cross-engine-sync.md) — Manages settings and state between the standalone Neovim engine and the VSCode interface for consistent behavior.
- [Multi-Cursor Editing](https://awesome-repositories.com/f/development-tools-productivity/multi-cursor-editing.md) — Supports simultaneous text manipulation across multiple document locations using modal visual block or line modes. ([source](https://github.com/vscode-neovim/vscode-neovim#readme))
- [Remote Environment Configurations](https://awesome-repositories.com/f/development-tools-productivity/remote-environment-configurations.md) — Configures the editing engine to run on either a local host or within a remote extension host. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/README.md))
- [Command Line Enhancements](https://awesome-repositories.com/f/development-tools-productivity/text-editors/command-line-enhancements.md) — Provides a functional command line with native completions, history, and incremental previews. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/CHANGELOG.md))

### Networking & Communication

- [Remote Procedure Call Bridges](https://awesome-repositories.com/f/networking-communication/remote-procedure-call-bridges.md) — Uses a remote procedure call bridge to communicate with an external Neovim instance for modal logic.
- [Input Key Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/input-key-routing.md) — Routes control, alt, and non-alphanumeric key sequences from the editor to the underlying Neovim engine. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/README.md))

### Operating Systems & Systems Programming

- [Terminal Buffer Synchronizations](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-buffer-synchronizations.md) — Synchronizes the state of modified buffers between the Neovim engine and the editor interface. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/CHANGELOG.md))

### Programming Languages & Runtimes

- [Lua APIs](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/scriptable-application/lua-apis.md) — Provides a Lua API bridge to execute scripts for automating editor behavior and managing environment settings.

### Software Engineering & Architecture

- [Buffer State Synchronization](https://awesome-repositories.com/f/software-engineering-architecture/buffer-state-synchronization.md) — Keeps text and cursor positions synchronized between the VSCode host and the external Neovim engine.
- [Buffer Synchronization Bridges](https://awesome-repositories.com/f/software-engineering-architecture/buffer-synchronization-bridges.md) — Implements a synchronization bridge to keep text buffers and cursor positions consistent between Neovim and VSCode.
- [Input Sequence Routing](https://awesome-repositories.com/f/software-engineering-architecture/input-sequence-routing.md) — Captures raw keyboard input and routes specific sequences to the Neovim engine for modal processing.

### User Interface & Experience

- [JavaScript Execution Bridges](https://awesome-repositories.com/f/user-interface-experience/javascript-execution-bridges.md) — Implements a bridge that allows the Lua scripting engine to execute JavaScript code within the host environment. ([source](https://github.com/vscode-neovim/vscode-neovim/blob/master/README.md))
- [Engine Action Dispatchers](https://awesome-repositories.com/f/user-interface-experience/keymap-action-dispatchers/engine-action-dispatchers.md) — Triggers native editor functions like formatting and commenting based on commands issued by the Neovim engine.
- [Custom Highlight Rules](https://awesome-repositories.com/f/user-interface-experience/syntax-highlighters/custom-highlight-rules.md) — Allows definition of custom highlight colors and rules using Neovim highlight groups within the VSCode interface. ([source](https://github.com/vscode-neovim/vscode-neovim#readme))
- [Editor Text Decorators](https://awesome-repositories.com/f/user-interface-experience/text-highlighting/editor-text-decorators.md) — Translates engine highlight and cursor states into visual decorations within the editor.

### Part of an Awesome List

- [Development Environments](https://awesome-repositories.com/f/awesome-lists/devtools/development-environments.md) — Uses a full Neovim instance for VSCode integration.
