gjoavim is my personal Vim configuration that I've been curating over the past 5+ years.
- My configuration uses the plugin manager Vundle. You will need to run
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vimbefore proceeding if you don't already have Vundle installed.
-
You are strongly recommended to fork this repository. This step is especially important if you want to sync your Vim configuration across multiple devices. Even if you don't want to do this now, you may want the option to do so in the future.
-
If you already have a
.vimrcin your home directory, rename it to something else (e.g..vimrc2). -
Create a symbolic link to
YOUR_PATH_TO_FORK/vimrcby running:
ln -s YOUR_PATH_TO_FORK/vimrc ~/.vimrcThe reason for doing this is that you will never (and definitely should not) edit ~/.vimrc directly, but will instead edit YOUR_PATH_TO_FORK/vimrc. By doing so, you can easily sync changes across your devices with a simple git pull. It took me an embarassingly long amount of time for me to realise to do this myself and, as a result, I had different Vim configurations on my laptop and home computer (trust me, you don't want this).
- If you plan on using the UltiSnips plugin, create a symbolic link to
YOUR_PATH_TO_FORK/my_snipsby running
ln -s YOUR_PATH_TO_FORK/my_snips ~/.vim/my_snipsIn a similar vein as the discussion above, this will sync your snippets across multiple devices. You won't (and should not) edit ~/.vim/my_snips, but instead edit
YOUR_PATH_TO_FORK/my_snips.
Important
Before proceeding with the next (final) step, you should read the following section on plugins first.
- Open Vim, then run
:PluginInstallto install the plugins.
Below is a list of all of the plugins that (with no changes) will be installed when running :PluginInstall.
I've included a brief description of what each plugin is, and you can always visit their repositories for more information.
It's highly likely that some of the plugins listed below are not applicable to your workflow. If you don't want to install a particular plugin, remove the line(s) Plugin '<plugin I don't want>' from YOUR_PATH_TO_FORK/vimrc before running :PluginInstall. You may also have to remove additional lines from YOUR_PATH_TO_FORK/vimrc relating to the removed plugin to avoid errors. Moreover, some of these plugins may require additional steps to get them working correctly (refer to the necessary repository for guidance if this is the case).
Warning
Though I use these plugins myself, I cannot guarantee their security nor functionality. By running :PluginInstall, you acknowledge that you are installing them at your own risk.
- NERDTree - File explorer
- nerdtree-git-plugin - Git integration for NERDTree
- indentLine - Vertical lines displayed for line indents
- vim-easymotion - Powerful navigation tool
- fzf - Fuzzy finder
- everforest - Colour theme
- vim-airline - Visual bar showing useful information
- UltiSnips - Powerful macro building tool
- vimtex - LaTeX integration
- vim-cool - Better highlighting
- goyo.vim - Nice writing mode
- rainbow - Colourful scoped braces
- vim-devicons - Nice icon support
Just to reiterate, make changes to YOUR_PATH_TO_FORK/vimrc, not to ~/.vimrc directly. Failing to do so will lead to diverging configurations across devices and confusion.
Thank you for reading. I hope that you find this repository useful!
Neovim users traitors may be interested in checking out sonstgennant/config_neovim, which was inspired by this repository.