description: 'Neovim is already super efficient and lightweight, but sometimes I need a barebones config for my servers and
remote, miniature development environments.'
disableHLJS: true
disableShare: false
disableHLJS: false
hideSummary: false
searchHidden: true
ShowReadingTime: true
ShowBreadCrumbs: true
ShowPostNavLinks: true
ShowWordCount: true
ShowRssButtonInSectionTermList: true
UseHugoToc: true
cover:
image: "neovim-to-neovim-mini.png"
alt: "Large Neovim logo, partly out of frame with a chalk arrow pointing to a smaller neovim logo with the word 'mini'."
caption: "Creating a Miniature neovim config for even more light weight environments."
relative: false
hidden: true
---
If I'm being honest, when I started this quick project to reduce my Neovim plugin footprint size, I thought I was going to be
able to get rid of _way_ more plugins! Inspired by [this Reddit
post](https://www.reddit.com/r/neovim/comments/179zawc/my_new_config_based_entirely_on_mininvim/) that setup a Neovim config
using only [echasnovski's](https://github.com/echasnovski) [mini](https://github.com/echasnovski/mini.nvim) library, I was
reminded that some of my remote server environments were still using Packer as their plugin manager, where my main machine
has upgraded to Lazy. In addition, I have since expanded my main config with more applicable plugins and key maps and the
Packer config was in a single neovim repo, as opposed to my more recently implemented [dotfiles](https://github.com/Normanras/dotfiles) setup.
Right now, I am using a whopping 77 plugins. That's mostly because I'm not great at cleaning out old plugins I don't use as
much anymore. Since I am client facing, a lot of them are around making my Markdown notes easier to manage, and Python plugins
to help with scripting and file management in the terminal. This poll shows 10-25 plugins being the most common amount.
<blockquoteclass="reddit-embed-bq"style="height:240px"data-embed-height="240"><ahref="https://www.reddit.com/r/neovim/comments/14jdkbp/how_many_plugins_in_your_config_list_your/">How many plugins in your config. List your favorites!</a><br> by<ahref="https://www.reddit.com/user/Bamseg/">u/Bamseg</a> in<ahref="https://www.reddit.com/r/neovim/">neovim</a></blockquote><scriptasync=""src="https://embed.reddit.com/widgets.js"charset="UTF-8"></script>
<p></p>
Once I got my dotfiles to my server environment, I got to work and got rid of all the superfluous plugins like additional
color schemes, todo-trouble, or others that I considered nice-to-have. After all, across all my VMs I'm mostly editing yaml,
json, and python scripts and I'm not in there for a very long time. If I was a real pro, I would just use out-of-the-box Vim,
but I really like the speed some key maps and plugins have given me.
You can check out my git branch [here](https://github.com/Normanras/dotfiles/tree/neovim-only-minimal). If you decide to clone it, make sure you symlink `.config` folder from a `~/.dotfiles/` directory to `~/.config/`. I've been using
[stow](https://www.gnu.org/software/stow/manual/stow.html), but any symlink tool will work.
If you have a neovim config that you'd like to "minimize", see some steps below. For any dotfile config - Neovim, tmux, zsh -
I like to make these changes in a clean environment. I want to replicate as closely as possible what a fresh install and
setup would be like. Here's how I do it:
{{<boxinfo>}}
Any curly brackets in the instructions below denote a word where you can insert whatever you'd like. But, most likely you
want to use the curly brackets in the final string that you use.
{{</box>}}
1. Navigate to the machine/vm/server that you want to work on. For me, this VM doesn't have Neovim installed yet.
8. And that's it! Go check your Github/Gitlab and check your branches and commits. You should see everything there! Congrats.
For that last command, you can always check what your remote repo's push name is by running `git remote -v`. Most often, the name will be something like `origin` or `main`. If you saw [my post on having multiple remote repos]({{< ref "posts/multiple_git_remotes" >}}), you may something like "all". Just make sure to check before pushing!