My own NeoVim config from ground up.
NVIM v0.11.2
Build type: RelWithDebInfo
LuaJIT 2.1.1744318430
Lua 5.1
# required
mv ~/.config/nvim ~/.config/nvim.bak
# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
# {,.bak} is a brace expansion command which translates to the same thing
git clone https://github.com/cyrillus31/nvim-config.git ~/.config/nvim && nvim
git clone https://github.com/cyrillus31/nvim-config.git ~/.config/new-nvim-config
echo alias newnvim="'NVIM_APPNAME=new-nvim-config nvim'" >> ~/.bashrc
source ~/.bashrc
newnvim
source run_in_container.sh
- neovim
- git
- ripgrep
- fzf
- wget
- unzip
- npm -> yarn (for markdown-preview)
-
Nvim-Treesitter
-
Lazy (Package Manager)
-
Status Line (Lualine or Mini)
-
Mason.nvim: LSP/DAP/Linter/Formatter package manager
- mason-lspconfig: automatically install and enable LSPs with Mason
- mason-null-ls: to just install formatters automatically via Mason (but configure with conform.nvim)
- mason-nvim-lint: to install and enable linters
- fidget.nvim: for bottom right corner LSP status updates
- Lua
- folke/lazydev.nvim (make LSP knowledgeable about global 'vim' variable and so on)
- lua_ls (lsp)
- stylua (formatter)
- Go
- gopls (lsp)
- Python
- pyright (linter)
- c / cpp
- clangd
- js/ts (?)
-
nvim-lspconfig: repo with basic default LSP configurations
-
Formatting (done by 'conform.nvim')
- On command ()
- On save
-
Autocompletion ( works by default omni completion)
-
- Various searches + key maps
-
Floating terminal
- FTerm
- Optional: Custom floating terminal
- Optional: NvChad/nvterm
-
File tree manager
-
DEBUGGING
- nvim-dap-ui
- Go
- Python
- Optional: Lua
-
Colorschemes
- Nightfox (the best theme)
- kanagawa
- tokyonight
- catppuccin
- gruvbox
- github-nvim-theme
-
indent-blankline indentation guidelines
-
nvim-highlight-colors show hex values colors as inline text
-
nvim-ts-autotag autoclose html tags
-
Quality of life keymaps (moving around splits, clipbaord, etc.)
-
Filetype plugins: 'after/ftplugin'
- lua.lua
- python.lua
- go.lua
-
Custom scripts
- Visual mode multiline append
- Visual mode multiline prepend (not ready yet)
-
Startup screen
- dashboard-nvim
- Optional: alpha-nvim
- Optional: startup-nvim
-
From kickstart.nvim
- vim.highlight.on_yank()
- whichkey setup