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/nhattruongNeoVim_wsl)
-
Prerequisites:
- Make sure you have installed the latest version of Neovim v0.9.0+.
- Have git, make, python, nodejs, and cargo installed on your system
- Install lazygit to launch lazygit in neovim with
<leader>gg
(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 nvim and nvim-data
# Windows
Remove-Item -Path "$env:LOCALAPPDATA\nvim" -Recurse -Force
Remove-Item -Path "$env:LOCALAPPDATA\nvim-data" -Recurse -Force
# Linux / Macos (unix)
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
- Then run this command:
# Window
git clone https://github.com/nhattruongNeoVim/MYnvim "$env:LOCALAPPDATA\nvim" --depth 1
# Linux / Macos (unix)
git clone https://github.com/nhattruongNeoVim/MYnvim ~/.config/nvim --depth 1
- You can remove .git file with this command:
# window
Remove-Item -Path "$env:LOCALAPPDATA\nvim\.git" -Recurse -Force
# Linux / Macos (unix)
rm -rf ~/.config/nvim/.git
Now just open neovim and enjoy.
A special way to run MYnvim with docker.
# create nvim-data volume
docker volume create nvim-data
# replace '$1' with the file address you want to open
docker run -it -p 8080:8080 -v '$1':/workspace -v nvim-data:/root mynvim/nvim
# example Window
docker run -it -p 8080:8080 -v ${pwd}:/workspace -v nvim-data:/root mynvim/nvim
# exmaple Linux
docker run -it -p 8080:8080 -v $HOME:/workspace -v nvim-data:/root mynvim/nvim
Name | Description | Optional? |
---|---|---|
alpha-nvim | a lua powered greeter like vim-startify / dashboard-nvim | |
bookmarks.nvim | a bookmarks plugin written in Lua | |
bufdelete.nvim | delete Neovim buffers without losing window layout | |
bufferline.nvim | a snazzy bufferline for Neovim | |
ccc.nvim | color picker | |
cmp-buffer | nvim-cmp source for buffer words | |
cmp-nvim-lsp | nvim-cmp source for neovim builtin LSP client | |
cmp-nvim-lua | nvim-cmp source for nvim lua | |
cmp-path | nvim-cmp source for path | |
cmp-tabnine | nvim-cmp source for TabNine | Optional |
cmp_luasnip | nvim-cmp source for luasnip completion | |
code_runner.nvim | the best code runner you could have | |
codesnap.nvim | snapshot code (NOTE: press 'gb' on "mistricky/codesnap.nvim" on lazy menu when build fails) | |
Comment.nvim | smart and powerful comment plugin for neovim | |
conform.nvim | lightweight yet powerful formatter plugin for Neovim | |
diffview.nvim | single tabpage interface for easily cycling through diffs for all modified files for any git rev | Optional |
dressing.nvim | neovim plugin to improve the default vim.ui interfaces | |
friendly-snippets | set of preconfigured snippets for different languages | Optional |
gitsigns.nvim | git integration for buffers | Optional |
harpoon | mark and navigate buffer | |
hop.nvim | neovim motions on speed! | |
indent-blankline.nvim | indent guides for Neovim | |
lazy.nvim | a modern plugin manager for Neovim | |
live-server.nvim | a plugin to integrate live-server from Neovim | |
lspsaga.nvim | improve neovim lsp experience | |
lualine.nvim | a blazing fast and easy to configure neovim statusline plugin | |
LuaSnip | snippet Engine for Neovim written in Lua | |
markdown-preview.nvim | markdown preview plugin for neovim | Optional |
mason-lspconfig.nvim | extension to mason.nvim that makes it easier to use lspconfig with mason.nvim. | |
mason-null-ls.nvim | allow you to automatically install, and automatically set up a predefined list of sources | |
mason.nvim | easily install and manage LSP servers, DAP servers, linters, and formatters | |
minimap.vim | blazing fast minimap for neovim | Optional |
neoscroll.nvim | smooth scrolling neovim plugin written in lua | |
noice.nvim | UI for messages, cmdline and the popupmenu | |
none-ls.nvim | null-ls.nvim reloaded | |
nui.nvim | UI Component Library for Neovim | Optional |
nvim-autopairs | autopairs for neovim written by lua | Optional |
nvim-cmp | a completion plugin for neovim coded in Lua | |
nvim-colorizer.lua | maintained fork of the fastest Neovim colorizer | |
nvim-dap | debug Adapter Protocol client implementation for Neovim | |
nvim-dap-ui | a UI for nvim-dap | |
nvim-jdtls | extensions for the built-in LSP support in Neovim for eclipse.jdt.ls | |
nvim-lint | an asynchronous linter plugin for Neovim | |
nvim-lspconfig | quickstart configs for Nvim LSP | |
nvim-notify | a fancy, configurable, notification manager for NeoVim | Optional |
nvim-surround | add/change/delete surrounding delimiter pairs with ease | |
nvim-tree.lua | file explorer tree for neovim written in lua | |
nvim-treesitter | syntax highlighting | |
nvim-ts-autotag | use treesitter to auto close and auto rename html tag | Optional |
nvim-ts-context-commentstring | neovim treesitter plugin for setting the commentstring based on the cursor location in a file | |
nvim-web-devicons | beautiful and configurable dev icons | |
plenary.nvim | all the lua functions | |
rainbow-delimiters.nvim | rainbow delimiters for Neovim with Tree-sitter | Optional |
smart-splits.nvim | smart, seamless, directional navigation and resizing of Neovim | |
telescope-fzf-native.nvim | FZF sorter for telescope written in c | |
telescope.nvim | file searching, previewing image and text files and more | |
toggleterm | inbuilt terminal toggling & management | |
tokyonight.nvim | a clean, dark Neovim theme | |
treesj | neovim plugin for splitting/joining blocks of code | |
vim-maximizer | maximizes and restores the current window in Vim | Optional |
vim-visual-multi | multiple cursors plugin for vim/neovim | |
whichkey.nvim | popup mappings keysheet | Optional |
... |
Name | Description |
---|---|
nvim-tetris | tetris |
vim-be-good | nvim plugin designed to make you better at Vim Movements |
snake.nvim | snake game on neovim |
killersheep.nvim | neovim port of killersheep (with blood!) |
speedtyper.nvim | practise typing in Neovim |
... |
Congratulations! at this point you have successfully configured your Neovim.