mpuVim is a simple, lightweight configuration of Neovim.
Out of the box, it provides all the necessary features you would expect in your text editor, like syntax highlighting, linting, auto-completion and quality of life plugins like telescope. Of course, also equipped with the best remaps and settings.
By default, mpuVim provides you with the language server for the most popular languages, but using Mason, you can install lsp's for any language you would like. (Read more about Mason in guidelines)
For theme, mpuVim uses kanagawa wave by default. However, anything is customizable. (Read more about customizing the config yourself in guidelines)
If you are tired of bloated, slow text editors and want a simple and easily customizable Neovim configuration, mpuVim is for you!
- π₯ Receive a full fledged IDE with one single command
- π¨ Blazingly fast
- π οΈ Easily customizable and extendable
- 𧩠Plethora of useful plugins preinstalled
- βοΈ Well chosen default settings and keymaps
- Neovim installed
- Node installed
To install mpuVim on your system, simply run the command appropriate for your operating system. Make sure to back up an existing config in ~/.config/nvim if you have one.
Linux & MacOS
git clone https://github.com/eliasuran/mpuVim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
Windows
git clone https://github.com/eliasuran/mpuVim.git %userprofile%\AppData\Local\nvim\
Once you have completed the installation, open Neovim in your terminal by running
nvim
Aaaaand you're in. You now have a fully configured Neovim ready to go. Realistically, you don't have to do any more configuration.
-
The leader key is set to Space by default
-
By clicking the leader key, after a bit a menu with possible commands will appear, use this to check for possible commands and key mappings for them.
-
You can access Telescope, a fuzzy finder for all files in your directory, by clicking leader + ff
-
You can pull up Netrw to view the file tree by clicking leader + ft
If you want to learn what plugins are used, reference #plugins.
To extend and learn how to further configure and customize mpuVim to your liking, reference #extending.
-
The theme is set up with kanagawa, and is set to wave by default - https://github.com/rebelot/kanagawa.nvim
-
Quickly find files anywhere, anytime with Telescope - https://github.com/nvim-telescope/telescope.nvim
-
Syntax highlighting with Treesitter - https://github.com/nvim-treesitter/nvim-treesitter
-
Package manager for LSP and DAP servers, linters and formatters - https://github.com/williamboman/mason.nvim
-
Configs for Nvim LSP client - https://github.com/neovim/nvim-lspconfig
-
Bridging mason and lspconfig - https://github.com/williamboman/mason-lspconfig.nvim
-
Ai pair-programming in Neovim with Github Copilot - https://github.com/github/copilot.vim
-
Seamless synergy with Tmux - https://github.com/christoomey/vim-tmux-navigator
-
Quick and accurate auto-completion with nvim-cmp - https://github.com/hrsh7th/nvim-cmp + https://github.com/hrsh7th/cmp-nvim-lsp
-
Increase productivity with useful snippets from LuaSnip - https://github.com/L3MON4D3/LuaSnip
-
Must-have Go features right in your IDE with vim-go - https://github.com/fatih/vim-go
-
Quickly change surrounding tags and marks with the help of nvim-surround - https://github.com/kylechui/nvim-surround
-
Must have code formatting with Prettier using Neoformat - https://github.com/sbdchd/neoformat
-
Flex that your are using Neovim on discord with rich presence - https://github.com/andweeb/presence.nvim
-
Support for Svelte - https://github.com/leafOfTree/vim-svelte-plugin
-
Essential indent lines - https://github.com/lukas-reineke/indent-blankline.nvim
-
Menu with available commands after pressing leader key - https://github.com/folke/which-key.nvim
This section will cover how to extend mpuVim with your own plugins, and how to further customize and configure mpuVim to your own liking.
Due to that, this section is aimed towards more experienced Neovim users who already know a thing or two about Neovim and the ecosystem
Refer to this project setup when unsure of where a file is or should be located
~/.config/nvim βββ lua βΒ Β βββ config βΒ Β Β Β βββ init.lua βΒ Β Β βββ lazy.lua βΒ Β Β βββ options.lua βΒ Β Β Β βββ remaps.lua βββ afterΒ Β βΒ Β βββ plugin βΒ Β βββ cmp.lua β βββ indent-blankline.lua β βββ lsp.lua β βββ neoformat.lua β βββ telescope.lua β βββ theme.lua β βββ treesitter.lua βΒ Β βββ init.lua
Everything related to the theme is located in after/plugin/theme.lua.
When changing theme, configure it in this file, but remember to add the new theme's plugin to lua/config/lazy.lua and removing kanagawa which would be unused. (How this is done is explained under)
All of mpuVim's plugins are in the lua/config/lazy.lua file, and under local plugins.
To remove or add a plugin, simply remove or add it from the list respectively. Since mpuVim is using the lazy package manager, everything that is needed for a plugin is a string with the link.
When adding or removing a plugin, make sure to exit and reopen Neovim, and you will see lazy downloading it automatically.
Configuration for any plugin is done in the after/plugin directory. Each file represents the configuration of a single plugin.
To edit the configuration of an already configured plugin, navigate to its configuration file in the plugin directory. From there, edit it as you please, and it will be updated once you close and reopen Neovim.
When adding your own configuration for a plugin, just create a new file and include any configuration you might like. If the file is in after/plugin, it will automatically apply to the installed plugin. As simple as that!
- mpuVim uses which-key.nvim to help you remember keymaps.
- Pressing any key will bring up a popup of possible commands following that key.
- All remaps can be found in the lua/config/remaps.lua file.
- Adding, removing or editing key mappings in this file will automatically apply it to Neovim.
-
All settings can be found in lua/config/options.lua.
-
Like with key mappings, adding, removing or changing settings in this file will apply them to all of Neovim automatically.
- Tmux works really well with Neovim since you only need the terminal, and is perfect for a tiling window manager.
- Tmux integration is done really well with the vim-tmux-navigator plugin, so would highly recommend.
You can support mpuVim by giving it a star at https://github.com/eliasuran/mpuVim <3