Treesitter — code as a tree, not as regex
Vim's classic syntax highlighting is regex-based: it pattern-matches token types and colors them. It works, but it can't understand code. Treesitter parses code into a real Abstract Syntax Tree (AST) and uses that for highlighting, indentation, and structural text objects. Faster, more accurate, and unlocks features regex can't dream of.
What treesitter gives you in practice
- Better highlighting — string interpolation, JSX nesting, Markdown code blocks all colored correctly.
- Smart indentation for languages where context matters (Python, Lua, JSX).
- Incremental selection — hit
Ctrl-Space, your selection grows by one AST node at a time. Word → expression → statement → function. Almost magical for visual selection. - Structural text objects with the partner plugin
nvim-treesitter-textobjects:af(a function),if(inner function),ac(a class),ic(inner class). Combine with operators:dafdeletes the whole function,cifchanges the function body. - Fold by syntax — actual code-aware folds, not the regex approximation.
Telescope — fuzzy find anything
telescope.nvim is the fuzzy finder. Files, buffers, grep results, LSP symbols, recent files, help tags, git branches, command history — anything that has "a list of options to pick from" can be a Telescope picker. The interaction model is identical for all of them: pop the picker, type to filter, Enter to pick.
The pickers you'll use daily
find_files— fuzzy file open. ReplacesCmd-P.live_grep— search file contents across the project. ReplacesCmd-Shift-F.buffers— switch between open buffers.oldfiles— recently opened files (across Neovim restarts).lsp_document_symbols— outline of the current file (functions, classes).lsp_workspace_symbols— search any symbol in the project.diagnostics— LSP errors and warnings, filterable.help_tags— Neovim's help system, fuzzy-searchable.
Telescope replaces three menus. The command palette, the file open dialog, and the global search panel collapse into one keybinding pattern. Once your fingers know
<leader>ff, <leader>fg, <leader>fb, opening anything in any project is two keystrokes plus a few characters of fuzzy matching.