dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

My configuration files for vim, bash and git

Dotfiles

Collection of my dotfiles, including configurations for vim, bash, screen, mutt and git comes with sensible defaults. My goal is keeping this configurations minimal and with less customized key bindings. This configurations both tested / running on Mac OS X and Ubuntu, if you have any issues with this configurations please open an issue to me.

Requirements for each rc file

  • vim 2.7+
  • bash 4.0+
  • ctags
  • screen 4.0+
  • mutt 1.5+
  • lynx

Installation

  • Clone repository to your home folder.
  • Symlink rc files (all configuration files is optional, you should activate any of them you need) to your home folder with dot prefixed filenames. (like bash_profile > .bash_profile)

Quick Install:

./dotfiles/install.sh

For example:

$ ln -s dotfiles/bash_profile .bash_profile

This will activates git-prompt (branch name and status) and git-completion (for tab-completion of commands, remotes, branches etc..) in bash. Also adds some useful aliases and options to bash (Filename correction, colored grep, ls-colors).

$ ln -s dotfiles/inputrc .inputrc

This will activates case insensitive filename completion and partial history search with up and down arrow.

For the installing vim configuration:

$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
$ ln -s dotfiles/vimrc .vimrc

In vim

:BundleInstall

Or from shell

vim +BundleInstall +qall!

This command installs following packages:

  • gitgutter
  • airline
  • ctrl-p
  • nerdtree
  • syntastic
  • vim-snipmate and snippets
  • tagbar
  • autoclose
  • supertab
  • colorschemes

Note for OSX users: Mission Control shortcuts conflicting with vim tab switching shortcuts. You need to disable shortcuts from System Preferences > Keyboard panel.

Vim keymaps

\l :setlocal number
\o :set paste

<C-k> :wincmd k
<C-j> :wincmd j
<C-h> :wincmd h
<C-l> :wincmd l

<C-Right> :tabnext
<C-Left> :tabprevious
<C-t> :tabnew

<C-n> :NERDTreeToggle
\b :TagbarToggle

Fixing Bash on OS X

brew install bash;echo /usr/local/bin/bash|sudo tee -a /etc/shells;chsh -s /usr/local/bin/bash

GNU Screen configuration customized for daily basic use, activate it with:

ln -s dotfiles/screenrc .screenrc

Key bindings

bind ',' prev
bind '.' next

bind = resize =
bind + resize +1
bind - resize -1
bind _ resize max

muttrc configuration is fairly customized for using with GMail, activate it with:

ln -s dotfiles/muttrc .muttrc

Key bindings

bind editor <space> noop
macro index gi "<change-folder>=INBOX<enter>" "Go to inbox"
macro index ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"
macro index gs "<change-folder>=[Gmail]/Sent Mail<enter>" "Go to Sent Mail"
macro index gd "<change-folder>=[Gmail]/Drafts<enter>" "Go to drafts"

You need to change username / password configration for yourself in muttrc file. Also mutt configured for displaying HTML mails instead of plain text, you must install lynx for that.