Neovim ist im Jahr 2026 zum Editor der Wahl für professionelle Entwickler geworden. Mit Lua-basierter Konfiguration, nativer LSP-Unterstützung, lazy.nvim für die Plugin-Verwaltung und einem lebendigen Plugin-Ökosystem konkurriert Neovim mit VS Code in puncto Funktionalität und ist gleichzeitig deutlich schneller und anpassbarer. Dieser Leitfaden führt Sie vom Null- zum produktiven Neovim-Benutzer.
📋 Table of Contents
Warum Neovim gegenüber VS Code?
- Geschwindigkeit– startet sofort, keine 2-Sekunden-Ladezeit
- Effizienz der Tastatur– Durch die modale Bearbeitung entfällt das Umschalten mit der Maus
- Anpassung— Konfigurieren Sie alles in Lua
- Terminal-nativ– funktioniert über SSH, in Docker, überall
- Ressourcennutzung– 50 MB RAM im Vergleich zu 500 MB+ bei VS Code
Installation
# macOS
brew install neovim
# Ubuntu/Debian (add official PPA for latest)
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update && sudo apt install neovim
# Or build from source for latest nightly
sudo apt install cmake gettext
git clone https://github.com/neovim/neovim
cd neovim && make CMAKE_BUILD_TYPE=Release
sudo make install
# Verify
nvim --version
# Install a distribution (skip config from scratch)
# LazyVim (recommended for beginners):
git clone https://github.com/LazyVim/starter ~/.config/nvim
Kernbewegungen von Vim
Normal Mode Essentials:
hjkl — left/down/up/right
w/b — forward/backward word
e — end of word
0/$ — start/end of line
gg/G — first/last line
Ctrl+d/u — half page down/up
Ctrl+f/b — full page down/up
% — jump to matching bracket
*/# — search word under cursor forward/back
'' — jump to last position
Editing:
i/a — insert before/after cursor
I/A — insert at start/end of line
o/O — new line below/above
r — replace character
R — replace mode
cw — change word
C — change to end of line
D — delete to end of line
u/Ctrl+r — undo/redo
. — repeat last change
Visual Mode:
v/V/Ctrl+v — char/line/block visual
y/d/c — yank/delete/change selection
>/< — indent/dedent
Textobjekte
Text object patterns: [operator][inner|around][object]
ci" — change inside double quotes
ca" — change around double quotes (includes quotes)
di{ — delete inside curly braces
da{ — delete around curly braces (includes braces)
yi( — yank inside parentheses
yap — yank around paragraph
cit — change inside HTML tag
dat — delete around HTML tag
ciw — change inner word
daw — delete around word (includes whitespace)
dis — delete inner sentence
LazyVim-Konfiguration
-- ~/.config/nvim/lua/config/options.lua
local opt = vim.opt
-- UI
opt.number = true -- line numbers
opt.relativenumber = true -- relative line numbers
opt.cursorline = true -- highlight current line
opt.signcolumn = "yes" -- always show sign column
-- Indentation
opt.expandtab = true -- spaces not tabs
opt.tabstop = 2
opt.shiftwidth = 2
opt.smartindent = true
-- Search
opt.ignorecase = true
opt.smartcase = true -- case-sensitive if uppercase used
opt.hlsearch = false -- no persistent highlight after search
-- Splits
opt.splitright = true -- vertical splits go right
opt.splitbelow = true -- horizontal splits go below
-- Performance
opt.updatetime = 200
opt.timeoutlen = 300 -- faster key combo detection
Key Plugins (lazy.nvim)
-- ~/.config/nvim/lua/plugins/essential.lua
return {
-- Fuzzy finder
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
keys = {
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find files" },
{ "<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Live grep" },
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Buffers" },
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent files" },
},
},
-- File tree
{
"nvim-neo-tree/neo-tree.nvim",
keys = { { "<leader>e", "<cmd>Neotree toggle<cr>", desc = "File tree" } },
},
-- LSP
{
"neovim/nvim-lspconfig",
config = function()
local lspconfig = require("lspconfig")
-- Python
lspconfig.pyright.setup({})
-- TypeScript
lspconfig.tsserver.setup({})
-- Rust
lspconfig.rust_analyzer.setup({})
-- Go
lspconfig.gopls.setup({})
end,
},
-- Completion
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"L3MON4D3/LuaSnip",
},
},
-- Syntax highlighting
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
-- Git
{ "lewis6991/gitsigns.nvim" },
{ "kdheepak/lazygit.nvim",
keys = { { "<leader>gg", "<cmd>LazyGit<cr>", desc = "LazyGit" } },
},
-- Formatting
{ "stevearc/conform.nvim",
config = function()
require("conform").setup({
formatters_by_ft = {
python = { "ruff_format" },
javascript = { "prettier" },
typescript = { "prettier" },
rust = { "rustfmt" },
},
format_on_save = { timeout_ms = 500 },
})
end,
},
}
Wesentliche Keymaps
LazyVim Default (and common custom) keymaps:
Leader key = Space
<leader>ff — find files (Telescope)
<leader>fg — grep in files
<leader>e — file explorer
<leader>gg — LazyGit
<leader>ca — code action (LSP)
<leader>rn — rename symbol (LSP)
gd — go to definition
gr — go to references
K — hover documentation
<leader>l — LSP info
<leader>/ — comment line
<leader>bd — close buffer
<leader>bn — next buffer
<C-h/j/k/l> — navigate splits
:w — save
:q — quit
:wq — save and quit
ZZ — save and quit (normal mode)
Neovim im Jahr 2026 mit LazyVim ist im Hinblick auf die volle IDE-Funktionalität wirklich konkurrenzfähig zu VS Code und gleichzeitig deutlich schneller und terminal-nativ. Lernen Sie zuerst die Kernbewegungen (hjkl, w/b/e, c/d/y + Textobjekte) – diese ergeben 90 % der Effizienz. Fügen Sie Plugins schrittweise hinzu, anstatt mit einer riesigen Konfiguration zu beginnen.
🔗 Share this article
✍️ Leave a Comment