Last updated: 2025-07-27 17:03 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/.git
Now 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? |
---|---|---|
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 | |
nvimdev/lspsaga.nvim | improve neovim lsp experience | |
rcarriga/nvim-dap-ui | A UI for nvim-dap | |
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 | |
zapling/mason-conform.nvim | Automatically install formatters registered with conform.nvim via mason.nvim |
Name | Description | Optional? |
---|---|---|
nvzone/floaterm | Beautiful floating terminal manager for Neovim | |
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 | Plugin for creating 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_yaml_parser | a tiny yaml (subset) parser for pure lua | Optional |
Owen-Dechow/nvim_json_graph_view | 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 | |
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/harpoon | ||
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 | |
azratul/live-share.nvim | Creates a "Live Share" server in Neovim, similar to the Visual Studio Code Live Share functionality | |
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 |
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-lsp | nvim-cmp source for neovim builtin LSP client | |
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 |
jbyuki/instant.nvim | collaborative editing in Neovim using built-in capabilities | |
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 | |
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 | Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls | |
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 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 | |
nvim-lua/plenary.nvim | plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice. | |
nvim-neotest/nvim-nio | A library for asynchronous IO in Neovim | Optional |
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 | |
tzachar/cmp-tabnine | TabNine plugin for hrsh7th/nvim-cmp | Optional |
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.