My vim distribution
Vim script
Switch branches/tags
Nothing to show
Latest commit c4b9691 Jun 4, 2017 @spastorino Update all the plugins

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