Last updated: 2026-05-17 10:03 UTC+7
Important
Neovim now runs much better on Windows. For Windows users, you can use WSL (Windows Subsystem for Linux) or the Neovide GUI.
For Linux users, it is recommended to use the Kitty terminal with cursor_trail 1 configured.
-
Prerequisites:
- Make sure you have installed the latest version of Neovim v0.11.0+.
- Have git, make, python, and nodejs installed
tree-sitter-cliand a C compiler for tree-sitter-manager- lazygit to launch lazygit in neovim with
<leader>gg(optional) - translate-shell to translate text with
<leader>ut(optional) - For telescope.nvim (optional)
- A terminal that support true color and undercurl:
-
Nerd font (optional, but needed to display some icons):
- Make sure you have removed old nvim and nvim-data folders
# Windows PowerShell
rm -Force -Recurse "$env:LOCALAPPDATA\nvim"
rm -Force -Recurse "$env:LOCALAPPDATA\nvim-data"
# Linux / Macos (unix)
rm -rf ~/.config/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.local/share/nvim- Then run this command:
# Window
git clone https://github.com/nhattVim/MYnvim "$env:LOCALAPPDATA\nvim" --depth 1
# Linux / Macos (unix)
git clone https://github.com/nhattVim/MYnvim ~/.config/nvim --depth 1- You can remove .git file with this command:
# Window
rm -Force -Recurse "$env:LOCALAPPDATA\nvim\.git"
# Linux / Macos (unix)
rm -rf ~/.config/nvim/.gitNow just open neovim and enjoy.
A special way to test MYnvim with docker.
# Create MYnvim-data volume
sudo docker volume create MYnvim-data
# Then run this command for the first time
sudo docker run -it --name MYnvim -v MYnvim-data:/root -v $HOME:/mnt archlinux:latest /bin/bash -c "
pacman -Syu --noconfirm
pacman -S --noconfirm base-devel curl wget unzip neovim python nodejs npm lazygit fzf ripgrep
if [ ! -d \"\$HOME/.config/nvim\" ]; then
git clone https://github.com/nhattVim/MYnvim \$HOME/.config/nvim --depth 1
else
cd \$HOME/.config/nvim && git pull
fi
cd /mnt
nvim
"
# Then run this command every time you want to run MYnvim
sudo docker start -ai MYnvim| Name | Description | Optional? |
|---|---|---|
| Exafunction/windsurf.nvim | A native neovim extension for Codeium | Optional |
| L3MON4D3/LuaSnip | Snippet Engine for Neovim written in Lua. | |
| chrisgrieser/nvim-scissors | Automagical editing and creation of snippets. | |
| hrsh7th/cmp-buffer | nvim-cmp source for buffer words | |
| hrsh7th/cmp-calc | nvim-cmp source for math calculation | Optional |
| hrsh7th/cmp-nvim-lsp | nvim-cmp source for neovim builtin LSP client | |
| hrsh7th/cmp-path | nvim-cmp source for path | |
| hrsh7th/nvim-cmp | A completion plugin for neovim coded in Lua. | |
| monkoose/neocodeium | free AI completion plugin for neovim | Optional |
| rafamadriz/friendly-snippets | Set of preconfigured snippets for different languages. | |
| saadparwaiz1/cmp_luasnip | luasnip completion source for nvim-cmp |
| Name | Description | Optional? |
|---|---|---|
| MunifTanjim/nui.nvim | UI Component Library for Neovim. | |
| nhattVim/check-deps.nvim | A lightweight Neovim plugin to check for external dependencies and help install them. | |
| nvim-lua/plenary.nvim | plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice. | |
| nvzone/volt | Create blazing fast & beautiful reactive UI in Neovim |
| Name | Description | Optional? |
|---|---|---|
| JoosepAlviste/nvim-ts-context-commentstring | Neovim treesitter plugin for setting the commentstring based on the cursor location in a file. | |
| LunarVim/bigfile.nvim | Make editing big files faster 🚀 | |
| Wansmer/treesj | Neovim plugin for splitting/joining blocks of code | |
| altermo/ultimate-autopair.nvim | A treesitter supported autopairing plugin with extensions, and much more | |
| andymass/vim-matchup | vim match-up: even better % 👊 navigate and highlight matching words 👊 modern matchit and matchparen. Supports both vim and neovim + tree-sitter. | |
| booperlv/nvim-gomove | A complete plugin for moving and duplicating blocks and lines, with complete fold handling, reindenting, and undoing in one go. | |
| chentoast/marks.nvim | A better user experience for viewing and interacting with Vim marks. | |
| famiu/bufdelete.nvim | Delete Neovim buffers without losing window layout | |
| folke/todo-comments.nvim | ✅ Highlight, list and search todo comments in your projects | Optional |
| karb94/neoscroll.nvim | Smooth scrolling neovim plugin written in lua | |
| kevinhwang91/nvim-ufo | Not UFO in the sky, but an ultra fold in Neovim. | |
| kevinhwang91/promise-async | Promise & Async in Lua | |
| kylechui/nvim-surround | Add/change/delete surrounding delimiter pairs with ease. Written with ❤️ in Lua. | |
| max397574/better-escape.nvim | Map keys without delay when typing | |
| mcauley-penney/visual-whitespace.nvim | Imitate VSCode's "Render Whitespace" feature in visual mode | |
| mg979/vim-visual-multi | Multiple cursors plugin for vim/neovim | |
| mrjones2014/smart-splits.nvim | 🧠 Smart, seamless, directional navigation and resizing of Neovim + terminal multiplexer splits. Supports Zellij, Tmux, Wezterm, and Kitty. Think about splits in terms of "up/down/left/right". | |
| numToStr/Comment.nvim | 🧠 💪 // Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more | |
| okuuva/auto-save.nvim | 🧶 Automatically save your changes in NeoVim | |
| romus204/tree-sitter-manager.nvim | A lightweight Tree-sitter parser manager for Neovim. | |
| sindrets/winshift.nvim | Rearrange your windows with ease. | |
| smoka7/hop.nvim | Neovim motions on speed! | |
| szw/vim-maximizer | Maximizes and restores the current window in Vim. | |
| uga-rosa/ccc.nvim | Color picker and highlighter plugin for Neovim. | |
| windwp/nvim-ts-autotag | Use treesitter to auto close and auto rename html tag |
| Name | Description | Optional? |
|---|---|---|
| Febri-i/fscreen.nvim | Plugin for easily create game on neovim | |
| Febri-i/snake.nvim | Snake game on neovim, practice your hjkl or whatnot! | |
| ThePrimeagen/vim-be-good | vim-be-good is a nvim plugin designed to make you better at Vim Movements. | |
| alec-gibson/nvim-tetris | Bringing emacs' greatest feature to neovim - Tetris! | |
| jim-fx/sudoku.nvim | ||
| letieu/hacker.nvim | Hollywood hacker experience in your neovim | |
| nvzone/typr | Most Beautiful Typing practice plugin for Neovim with dashboard | |
| seandewar/killersheep.nvim | Neovim port of killersheep (with blood!) | |
| seandewar/nvimesweeper | Play Minesweeper in your favourite text editor (Neovim 0.7+) |
| Name | Description | Optional? |
|---|---|---|
| MeanderingProgrammer/render-markdown.nvim | Improve viewing Markdown in Neovim | |
| folke/trouble.nvim | 🚦 A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing. | |
| iamcco/markdown-preview.nvim | markdown preview plugin for (neo)vim | Optional |
| jay-babu/mason-nvim-dap.nvim | ||
| mason-org/mason-lspconfig.nvim | Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim. | |
| mason-org/mason.nvim | Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters. | |
| mfussenegger/nvim-dap | Debug Adapter Protocol client implementation for Neovim | |
| mfussenegger/nvim-jdtls | MIRROR of: https://codeberg.org/mfussenegger/nvim-jdtls | |
| mfussenegger/nvim-lint | An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support. | |
| neovim/nvim-lspconfig | Quickstart configs for Nvim LSP | |
| nhattVim/java-project.nvim | Plugin for automatically creating a Java project | Optional |
| nvim-flutter/flutter-tools.nvim | Tools to help create flutter apps in neovim using the native lsp | |
| nvim-neotest/neotest | An extensible framework for interacting with tests within NeoVim. | |
| nvim-neotest/nvim-nio | A library for asynchronous IO in Neovim | Optional |
| nvimdev/lspsaga.nvim | improve neovim lsp experience | |
| rcarriga/nvim-dap-ui | A UI for nvim-dap | |
| rcasia/neotest-java | Neotest adapter for Java. | |
| rshkarin/mason-nvim-lint | Extension to mason.nvim that makes it easier to use nvim-lint with mason.nvim | |
| stevearc/conform.nvim | Lightweight yet powerful formatter plugin for Neovim | |
| theHamsta/nvim-dap-virtual-text | ||
| zapling/mason-conform.nvim | Automatically install formatters registered with conform.nvim via mason.nvim |
| Name | Description | Optional? |
|---|---|---|
| CRAG666/code_runner.nvim | Neovim plugin.The best code runner you could have, it is like the one in vscode but with super powers, it manages projects like in intellij but without being slow | |
| MagicDuck/grug-far.nvim | Find And Replace plugin for neovim | |
| Owen-Dechow/graph_view_toml_parser | TOML parser plugin for Neovim for use with https://github.com/Owen-Dechow/videre.nvim | Optional |
| Owen-Dechow/graph_view_yaml_parser | YAML parser plugin for Neovim for use with https://github.com/Owen-Dechow/videre.nvim | Optional |
| Owen-Dechow/videre.nvim | JSON explorer using Neovim's terminal interface. | Optional |
| a-usr/xml2lua.nvim | A packaging of the xml2lua library for use in a neovim configuration or plugin | Optional |
| akinsho/git-conflict.nvim | A plugin to visualise and resolve merge conflicts in neovim | |
| akinsho/toggleterm.nvim | A neovim lua plugin to help easily manage multiple terminal windows | |
| aurum77/live-server.nvim | A plugin to integrate live-server from Neovim | |
| folke/which-key.nvim | 💥 Create key bindings that stick. WhichKey helps you remember your Neovim keymaps, by showing available keybindings in a popup as you type. | |
| kristijanhusak/vim-dadbod-completion | Database autocompletion powered by https://github.com/tpope/vim-dadbod | |
| kristijanhusak/vim-dadbod-ui | Simple UI for https://github.com/tpope/vim-dadbod | |
| lewis6991/gitsigns.nvim | Git integration for buffers | |
| nhattVim/projects.nvim | A simple Neovim plugin for manual project registry | |
| nvim-telescope/telescope-fzf-native.nvim | FZF sorter for telescope written in c | |
| nvim-telescope/telescope.nvim | Find, Filter, Preview, Pick. All lua, all the time. | |
| nvim-tree/nvim-tree.lua | A file explorer tree for neovim written in lua | |
| nvim-tree/nvim-web-devicons | Provides Nerd Font icons (glyphs) for use by neovim plugins | |
| nvimtools/hydra.nvim | Create custom submodes and menus | |
| tpope/vim-dadbod | dadbod.vim: Modern database interface for Vim | |
| uga-rosa/translate.nvim | Use any external translate command/API in nvim. |
| Name | Description | Optional? |
|---|---|---|
| Darazaki/indent-o-matic | Dumb automatic fast indentation detection for Neovim written in Lua | Optional |
| HiPhish/rainbow-delimiters.nvim | Rainbow delimiters for Neovim with Tree-sitter | |
| OXY2DEV/helpview.nvim | A hackable & fancy vimdoc/help file viewer for Neovim | |
| akinsho/bufferline.nvim | A snazzy bufferline for Neovim | |
| b0o/incline.nvim | 🎈 Floating statuslines for Neovim | |
| brenoprata10/nvim-highlight-colors | Highlight colors for neovim | Optional |
| dstein64/nvim-scrollview | A Neovim plugin that displays interactive vertical scrollbars and signs. | Optional |
| folke/noice.nvim | 💥 Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu. | |
| folke/tokyonight.nvim | 🏙 A clean, dark Neovim theme written in Lua, with support for lsp, treesitter and lots of plugins. Includes additional themes for Kitty, Alacritty, iTerm and Fish. | |
| goolord/alpha-nvim | a lua powered greeter like vim-startify / dashboard-nvim | |
| hat0uma/csvview.nvim | A Neovim plugin for CSV file editing. | |
| jinh0/eyeliner.nvim | 👀 Move faster with unique f/F indicators. | Optional |
| nhattVim/alpha-ascii.nvim | A simple plugin for alpha-nvim that provides custom ASCII headers for the dashboard screen. | |
| nvim-lualine/lualine.nvim | A blazing fast and easy to configure neovim statusline plugin written in pure lua. | |
| nvzone/showkeys | Minimal Eye-candy keys screencaster for Neovim 200 ~ LOC | |
| rcarriga/nvim-notify | A fancy, configurable, notification manager for NeoVim | |
| shellRaining/hlchunk.nvim | This is the lua implementation of nvim-hlchunk, you can use this neovim plugin to highlight your indent line and the current chunk (context) your cursor stayed | |
| stevearc/dressing.nvim | Neovim plugin to improve the default vim.ui interfaces | |
| tiagovla/scope.nvim | Revolutionize Your Neovim Tab Workflow: Introducing Enhanced Tab Scoping! |
Congratulations! at this point you have successfully configured your Neovim.






