Last updated: 2025-12-02 20:01 UTC+7
Important
You should only use this configuration on Linux or WSL (Windows Subsystem for Linux), not on Windows. If used on Windows, it may result in various errors, and I don't have the time to troubleshoot them. You can use this script to set up your WSL (Ubuntu)
bash <(curl -sSL https://is.gd/nhattVim_wsl)
-
Prerequisites:
- Make sure you have installed the latest version of Neovim v0.11.0+.
- Have git, make, python, nodejs, and cargo installed on your system
- Install lazygit to launch lazygit in neovim with
<leader>gg(optional) - Install translate-shell to translate text with
<leader>ut(optional) - For telescope.nvim (optional)
- A terminal that support true color and undercurl:
- kitty (Linux & Macos)
- wezterm (Linux, Macos & Windows)
- alacritty (Linux, Macos & Windows)
- iterm2 (Macos)
- PowerShell 7+ (Windows)
# Then run this command: pip install pynvim npm install neovim -g -
Necessary font:
- 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? |
|---|---|---|
| hrsh7th/cmp-nvim-lsp | nvim-cmp source for neovim builtin LSP client | |
| 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-lint | An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support. | |
| neovim/nvim-lspconfig | Quickstart configs for Nvim 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? |
|---|---|---|
| nvzone/menu | Menu plugin for neovim ( supports nested menus ) made using volt | |
| nvzone/minty | Most Beautifully crafted color tools for Neovim | |
| nvzone/showkeys | Minimal Eye-candy keys screencaster for Neovim 200 ~ LOC | |
| nvzone/timerly | Beautiful countdown timer plugin for Neovim | |
| nvzone/typr | Most Beautiful Typing practice plugin for Neovim with dashboard | |
| nvzone/volt | Create blazing fast & beautiful reactive UI in Neovim |
| 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 | |
| MunifTanjim/nui.nvim | UI Component Library 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/bufferline.nvim | A snazzy bufferline 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 | |
| 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. | |
| 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 |
| 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 | |
| Exafunction/windsurf.nvim | A native neovim extension for Codeium | 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! | |
| JoosepAlviste/nvim-ts-context-commentstring | Neovim treesitter plugin for setting the commentstring based on the cursor location in a file. | |
| L3MON4D3/LuaSnip | Snippet Engine for Neovim written in Lua. | |
| LunarVim/bigfile.nvim | Make editing big files faster 🚀 | |
| MeanderingProgrammer/render-markdown.nvim | Plugin to improve viewing Markdown files in Neovim | |
| MoaidHathot/dotnet.nvim | .NET Neovim plugin for improving the .NET dev experience in Neovim, written completely in Lua | |
| NStefan002/speedtyper.nvim | Practise typing in Neovim | |
| OXY2DEV/helpview.nvim | A hackable & fancy vimdoc/help file viewer for Neovim | |
| ThePrimeagen/vim-be-good | vim-be-good is a nvim plugin designed to make you better at Vim Movements. | |
| Wansmer/treesj | Neovim plugin for splitting/joining blocks of code | |
| akinsho/toggleterm.nvim | A neovim lua plugin to help easily manage multiple terminal windows | |
| alec-gibson/nvim-tetris | Bringing emacs' greatest feature to neovim - Tetris! | |
| andymass/vim-matchup | vim match-up: even better % 👊 navigate and highlight matching words 👊 modern matchit and matchparen. Supports both vim and neovim + tree-sitter. | |
| aurum77/live-server.nvim | A plugin to integrate live-server from Neovim | |
| 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. | |
| eatgrass/maven.nvim | for java developer, interactively execute maven command without leaving your editor | |
| ecthelionvi/NeoComposer.nvim | Neovim plugin that simplifies macros, enhancing productivity with harmony. | |
| famiu/bufdelete.nvim | Delete Neovim buffers without losing window layout | |
| folke/todo-comments.nvim | ✅ Highlight, list and search todo comments in your projects | Optional |
| 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. | |
| hrsh7th/cmp-buffer | nvim-cmp source for buffer words | |
| hrsh7th/cmp-calc | nvim-cmp source for math calculation | Optional |
| hrsh7th/cmp-nvim-lua | nvim-cmp source for nvim lua | |
| hrsh7th/cmp-path | nvim-cmp source for path | |
| hrsh7th/nvim-cmp | A completion plugin for neovim coded in Lua. | |
| iamcco/markdown-preview.nvim | markdown preview plugin for (neo)vim | Optional |
| jim-fx/sudoku.nvim | ||
| karb94/neoscroll.nvim | Smooth scrolling neovim plugin written in lua | |
| kawre/leetcode.nvim | A Neovim plugin enabling you to solve LeetCode problems. | |
| kevinhwang91/nvim-ufo | Not UFO in the sky, but an ultra fold in Neovim. | |
| kevinhwang91/promise-async | Promise & Async in Lua | |
| kkharji/sqlite.lua | SQLite LuaJIT binding with a very simple api. | |
| 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 | |
| kylechui/nvim-surround | Add/change/delete surrounding delimiter pairs with ease. Written with ❤️ in Lua. | |
| letieu/hacker.nvim | Hollywood hacker experience in your neovim | |
| lewis6991/gitsigns.nvim | Git integration for buffers | |
| max397574/better-escape.nvim | Map keys without delay when typing | |
| mcauley-penney/visual-whitespace.nvim | Imitate VSCode's "Render Whitespace" feature in visual mode | Optional |
| mfussenegger/nvim-jdtls | MIRROR of: https://codeberg.org/mfussenegger/nvim-jdtls | |
| mg979/vim-visual-multi | Multiple cursors plugin for vim/neovim | Optional |
| monkoose/neocodeium | free AI completion plugin for neovim | Optional |
| 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". | |
| nhattVim/java-project.nvim | Plugin for automatically creating a Java project | Optional |
| numToStr/Comment.nvim | 🧠 💪 // Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more | |
| nvim-flutter/flutter-tools.nvim | Tools to help create flutter apps in neovim using the native lsp | |
| nvim-lua/plenary.nvim | plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice. | |
| nvim-pack/nvim-spectre | Find the enemy and replace them with dark power. | |
| 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 | |
| nvim-treesitter/nvim-treesitter | Nvim Treesitter configurations and abstraction layer | |
| nvimtools/hydra.nvim | Create custom submodes and menus | |
| okuuva/auto-save.nvim | 🧶 Automatically save your changes in NeoVim | |
| phaazon/hop.nvim | ||
| rafamadriz/friendly-snippets | Set of preconfigured snippets for different languages. | Optional |
| rcarriga/nvim-notify | A fancy, configurable, notification manager for NeoVim | |
| saadparwaiz1/cmp_luasnip | luasnip completion source for nvim-cmp | |
| seandewar/killersheep.nvim | Neovim port of killersheep (with blood!) | |
| seandewar/nvimesweeper | Play Minesweeper in your favourite text editor (Neovim 0.7+) | |
| sindrets/diffview.nvim | Single tabpage interface for easily cycling through diffs for all modified files for any git rev. | |
| sindrets/winshift.nvim | Rearrange your windows with ease. | |
| stevearc/dressing.nvim | Neovim plugin to improve the default vim.ui interfaces | Optional |
| szw/vim-maximizer | Maximizes and restores the current window in Vim. | |
| tpope/vim-dadbod | dadbod.vim: Modern database interface for Vim | |
| uga-rosa/ccc.nvim | Color picker and highlighter plugin for Neovim. | |
| uga-rosa/translate.nvim | Use any external translate command/API in nvim. | |
| windwp/nvim-autopairs | autopairs for neovim written in lua | |
| windwp/nvim-ts-autotag | Use treesitter to auto close and auto rename html tag | |
| yuratomo/w3m.vim | w3m plugin for vim |
Congratulations! at this point you have successfully configured your Neovim.






