My vim distribution
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.rdoc

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

  1. 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
  2. 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
  3. 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
  4. 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/tags

    create 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']