⌥+⌃AltPlusCtrl

Neovim Keyboard Shortcuts

Neovim keeps Vim's modal editing entirely intact — the same hjkl navigation, the same insert/normal/visual mode boundaries — so anyone coming from Vim doesn't have to relearn core movement at all; what changes is what you can build on top of it. Neovim's own project-specific commands (like :checkhealth for diagnosing configuration issues, or the built-in LSP client commands) exist because Neovim ships features natively that classic Vim requires third-party plugins to approximate, and those native features have their own commands layered onto the same modal foundation. Because Neovim configuration is commonly written in Lua rather than Vimscript, a large share of what feels like a 'shortcut' in a real Neovim setup is actually a custom keymap defined in someone's init.lua, meaning two Neovim users' daily shortcuts can look completely different despite using an identical core editor — what's documented here is the built-in defaults, not any particular distribution's custom bindings. Telescope, one of the most widely adopted community plugins, adds a fuzzy-finder interface for files, buffers, and text search that many Neovim configurations treat as effectively core functionality despite being a third-party addition rather than a built-in feature, which is a good example of how much of the modern Neovim experience for a typical user is really plugin-defined behavior layered on the vanilla defaults. The built-in terminal, opened with :terminal, runs an actual shell inside a Neovim buffer, letting you switch between editing and a terminal session using the same window/split management commands you'd use to navigate between two file buffers, without leaving the editor at all.

Modes

ActionWindowsMacDescription
Enter Insert modeiiDrops out of Normal mode and into Insert mode right where the cursor sits, opening the door to typing characters directly — the single mode toggle that everything else in Neovim's modal editing model is built around.
Return to Normal modeEscEscExits Insert, Visual, or Command mode back to Normal mode, where movement and most commands are entered — pressed constantly enough in Vim-family editing that many users remap Caps Lock to Esc for ergonomics.
Enter Visual modevvStarts character-wise visual selection from the cursor, extendable with movement keys, and the basis for most selection-then-operate workflows in Neovim.

Movement

ActionWindowsMacDescription
Move cursor downjjMoves the cursor down one line in Normal mode, part of the hjkl home-row navigation cluster that avoids reaching for arrow keys.
Move forward one wordwwSkips the cursor straight to where the next word begins, treating punctuation as its own separate word boundary — a much quicker way to cover ground than tapping an arrow key repeatedly.
Go to top of fileggggMoves the cursor to the very first line of the file, one of Vim's classic two-keystroke navigation commands.
Split window horizontally:split or Ctrl+w s:splitDivides the current window into two stacked panes showing the same or different buffers, letting you view and edit two locations in a file (or two different files) simultaneously.

Editing Commands

ActionWindowsMacDescription
Delete current lineddddRemoves the whole line the cursor is on and holds onto it in the default register, so a follow-up p drops that exact line back in somewhere else without needing a separate yank first.
Show LSP hover infoK (with LSP configured)KDisplays hover documentation (type signatures, docstrings) for the symbol under the cursor via Neovim's built-in Language Server Protocol client, a feature classic Vim needs a plugin to replicate.
Yank (copy) current lineyyyyCopies the entire current line into the default register without deleting it, ready to paste elsewhere with p, distinct from dd which deletes the line while also copying it.
Open built-in terminal:terminal:terminal:terminal drops a real, interactive shell into its own buffer rather than opening some separate embedded widget, which means every split, tab, and window-navigation command you already use for file buffers works identically for jumping in and out of it.

Frequently Asked Questions

Do Vim shortcuts work identically in Neovim?

Yes for the core modal editing and movement commands — Neovim is a fork that deliberately preserved Vim's editing model and default keymaps. The differences show up in Neovim-specific features (built-in terminal, LSP, Lua configuration) that either don't exist in classic Vim or require plugins to replicate there.

Why does my Neovim configuration have completely different shortcuts than what's documented as default?

Most real-world Neovim setups are heavily customized, often through a preconfigured distribution (like LazyVim, AstroNvim, or a personal init.lua) that remaps huge portions of the default keymap to add plugin functionality, especially around the leader key. What's documented as 'default' is the vanilla, unconfigured behavior, which many working Neovim users rarely actually use unmodified.

What is the 'leader key' and why isn't it in the default shortcuts?

The leader key is a user-defined prefix key (commonly mapped to Space or comma) that plugin and custom keymaps build on to avoid conflicting with Vim's built-in commands. Vanilla Neovim doesn't set a leader key by default — it only becomes meaningful once a configuration defines one and starts binding commands under it.

Is Telescope a built-in Neovim feature or a plugin I need to install?

Telescope is a third-party community plugin, not a built-in Neovim feature, though it's become so widely adopted across configurations and distributions that many users experience it as though it were core functionality — vanilla, unconfigured Neovim doesn't include a fuzzy-finder interface out of the box.

Can I run shell commands without leaving Neovim entirely?

Yes, the built-in :terminal command opens an actual interactive shell inside a Neovim buffer, and you can switch between it and your file buffers using the same window and split-navigation commands you'd use to move between any two open buffers, without needing an external terminal application at all.

What's the practical difference between yy and dd for copying text?

Both put the line into the default register for pasting, but dd additionally removes the line from the buffer while yy leaves it in place, only copying it — so yy is the correct choice when you want to duplicate a line elsewhere without removing the original.

Is there an official way to manage plugins in Neovim, or does that require a separate plugin manager?

Neovim doesn't ship a first-party plugin manager, so most configurations rely on a separate community-built manager (like lazy.nvim or packer.nvim) to install and load plugins, though very recent Neovim versions have begun adding some native package-loading support that reduces but doesn't yet fully eliminate the need for a dedicated manager.

Does Neovim have a shortcut for opening a floating terminal window without leaving the editor?

Yes — :terminal (often mapped to a custom leader-key combination in a user's config, with no single universal default) opens a terminal buffer within Neovim itself, letting you run shell commands without switching to a separate terminal application, and Ctrl+\ Ctrl+n returns that terminal buffer to Normal mode for navigation.