Vinimum
My vim config file and plugins distribution.
The project aims to provide a useful set of plugins avoiding in general the ones that discourages using vim the way it is.
Installation
-
Basic package installation
git clone https://github.com/spastorino/vinimum.git .vim ln -s .vim/vimrc .vimrc cd .vim git submodule init git submodule update
-
Install ctags related things
brew install ctags (or use the package manager you like/have) gem install gem-browse gem install gem-ctags gem install ripper-tags gem ctags
-
Generate ctags for Ruby stdlib
These are the right directories for chruby cd ~/.rubies/2.2.2/lib/ruby/site\_ruby/2.2.0 ctags -R * cd ~/.rubies/2.2.2/lib/ruby/2.2.0 ctags -R * or instead of ctags -R * run ... ripper-tags -R --tag-relative -f tags
-
Create git hooks to automatically generate ctags on your projects
cd ~ mkdir -p .git/hooks
create ~/.ctags file with the following content
--recurse=yes --tag-relative=yes --exclude=.git --exclude=*.min.js --exclude=node_modules --exclude=.tmp --exclude=bower_components/**/*.html
create ctags file with the following content
#!/bin/sh IGNORE=("/usr" "${HOME}/.gem" "${HOME}/.rbenv"); for dir in "${IGNORE[@]}" do case "$PWD" in ${dir}*) exit 0;; esac done mkdir .git/tags_lock 2>/dev/null || exit 0 trap "rmdir .git/tags_lock; rm -f .git/tags.$$" EXIT ripper-tags -R --tag-relative -f .git/tags.$$ ctags -aR --tag-relative -f .git/tags.$$ --languages=-sql --exclude="*.rb" mv .git/tags.$$ .git/tagscreate post-commit file with the following content
#!/bin/sh .git/hooks/ctags >/dev/null 2>&1 &
generate post-checkout and post-merge with the same content
cp post-commit post-checkout cp post-commit post-merge
create post-rewrite file with the following content
#!/bin/sh case "$1" in rebase) exec .git/hooks/post-merge ;; esac
make the files executable
chmod +x *
config the templatedir and ctags alias
git config --global init.templatedir '~/.git' git config --global alias.ctags '!.git/hooks/ctags'
Use `git init` in existing repositories to copy these hooks in.
Update
git pull git submodule update
Disable plugins
If you want to disable a bundled plugin (for example gitgutter) create a ~/.vimrc.before with the following content …
let g:pathogen_disabled = ['gitgutter']