Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

QuietMisdreavus's vim files

This originally started as an experiment to learn git, but as i used it in more and more places, it grew into a place to play around with vim script. I've tried to keep my configuration heavily commented so people (including "future me") could learn more about what each things does.

Some of my configuration grew enough that i broke it into separate "plugins". These are all located in the pack/misdreavus/start directory, and should be considered part of my config. The submodule links are a bit wonky (to make it so i'm not forced to use an ssh key where i don't want to) so here are the actual links to my personal plugins:

  • ghostline: a custom status-bar/tab-bar
  • mru: a plugin to track which buffers i've used most recently in a given window
  • session: a small wrapper around the built-in :mksession command

I've set up the plugins i use as submodules in various directories under the pack folder. This uses the Vim 8.x native package management to load them up. I was previously using pathogen to load up plugins, so it was fairly painless to migrate to native packages. There are separate package bundles for syntax definitions, color schemes, and plugins that offer extra functionality.

One extra thing i've had in there for a while is a sort of "escape hatch" to allow for machine-specific configuration to be added as an extra script. Any file with the name my_hostname.vim (where my_hostname is whatever is returned by :echo hostname()) will be sourced at the end of the vimrc script. As of 2020-09-30, these files are not saved into the repository, so that i don't have to update the repo as machines start or stop being used.

Note to self: To add a new plugin to a pack/**/start directory, don't use git clone, use git submodule add instead. That makes sure git properly sees the new folder as a submodule instead of a bunch of new files.

When pulling down new submodules: git submodule update --init --recursive

Also: git submodule update --remote --checkout updates all the submodules in a repository, in one command. If you add a submodule directory afterward, it'll just update that submodule.


my increasingly-ridiculous vim configuration