# Neovim — Hyperextensible Vim-Based Text Editor > Neovim is a Vim-fork focused on extensibility and usability. First-class Lua scripting, native LSP client, Tree-sitter for incremental parsing, async job control, and floating windows. The modern heir to Vim loved by developers worldwide. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash # Install brew install neovim # macOS sudo apt install neovim # Debian/Ubuntu winget install Neovim.Neovim # Windows # Launch nvim file.txt ``` Init config `~/.config/nvim/init.lua`: ```lua vim.opt.number = true vim.opt.relativenumber = true vim.opt.tabstop = 2 vim.opt.shiftwidth = 2 vim.opt.expandtab = true vim.opt.termguicolors = true -- Plugin manager (lazy.nvim) vim.cmd([[packadd lazy.nvim]]) require("lazy").setup({ { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, { "neovim/nvim-lspconfig" }, { "hrsh7th/nvim-cmp" }, { "folke/tokyonight.nvim" }, }) vim.cmd.colorscheme("tokyonight") ``` ## Intro Neovim is a Vim-fork started in 2014 by Thiago de Arruda focused on extensibility, usability, and maintainability. Rewrote key internals, added first-class Lua scripting, native LSP client, Tree-sitter parser, and a remote plugin API. Still maintains backwards compatibility with Vim. - **Repo**: https://github.com/neovim/neovim - **Stars**: 98K+ - **Language**: C + Vim script + Lua - **License**: Apache 2.0 + Vim license ## What Neovim Does - **Modal editing** — Normal, Insert, Visual, Command modes - **Lua scripting** — full Lua API instead of Vimscript-only - **Built-in LSP** — IDE-grade language features - **Tree-sitter** — incremental syntax parsing, better highlighting - **Async jobs** — run commands without blocking - **Terminal emulator** — `:terminal` inside Neovim - **Floating windows** — for menus, diagnostics, pickers - **Plugin ecosystem** — via lazy.nvim, packer, vim-plug ## Architecture Fork of Vim with a cleaner codebase, MsgPack RPC for remote plugins, libuv for async, and Lua built in (5.1 via LuaJIT). The editor loop processes events and renders via redraw API. External TUIs and IDE integrations use the RPC layer. ## Self-Hosting CLI tool, self-contained binary. ## Key Features - First-class Lua - Native LSP client - Tree-sitter integration - Floating windows - Async job control - Modern plugin managers (lazy.nvim) - Popular distros: LazyVim, NvChad, AstroNvim, Kickstart.nvim - Cross-platform ## Comparison | Editor | Modal | LSP | Speed | Ecosystem | |---|---|---|---|---| | Neovim | Yes (Vim) | Built-in | Fast | Huge | | Vim | Yes | Plugin | Fast | Large | | Helix | Yes (Kakoune) | Built-in | Fast | Growing | | Emacs | No | lsp-mode | Slow | Huge | | VS Code | No | Built-in | Slow (Electron) | Huge | ## FAQ **Q: Zero-config starter?** A: Clone the LazyVim or Kickstart.nvim template and you're ready to go. Includes LSP, completion, search, and file tree. **Q: Lua vs Vimscript?** A: For new projects, Lua is strongly recommended — better typing, debugging, and performance than Vimscript. Older plugins can stay in Vimscript without rewriting. **Q: How does it compare to VS Code?** A: VS Code is beginner-friendly with a complete ecosystem but is slower. Neovim starts in milliseconds and lets you edit code anywhere in the context, but requires configuration time. ## Sources & Credits - Docs: https://neovim.io/doc - GitHub: https://github.com/neovim/neovim - License: Apache 2.0 + Vim license --- Source: https://tokrepo.com/en/workflows/neovim-hyperextensible-vim-based-text-editor-6ed06dab Author: AI Open Source