Created
December 6, 2013 17:52
-
-
Save FrancisGX/7829215 to your computer and use it in GitHub Desktop.
Here it is!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" set up pathogen, https://github.com/tpope/vim-pathogen | |
filetype off | |
call pathogen#infect() | |
filetype plugin indent on | |
" don't bother with vi compatibility | |
set nocompatible | |
" enable syntax highlighting | |
syntax enable | |
set autoindent | |
set autoread " reload files when changed on disk, i.e. via `git checkout` | |
set backspace=2 " Fix broken backspace in some setups | |
set backupcopy=yes " see :help crontab | |
set clipboard=unnamed " yank and paste with the system clipboard | |
set directory-=. " don't store swapfiles in the current directory | |
set encoding=utf-8 | |
set expandtab " expand tabs to spaces | |
set ignorecase " case-insensitive search | |
set incsearch " search as you type | |
set laststatus=2 " always show statusline | |
set list " show trailing whitespace | |
set listchars=tab:▸\ ,trail:▫ | |
set number " show line numbers | |
set ruler " show where you are | |
set scrolloff=3 " show context above/below cursorline | |
set shiftwidth=2 " normal mode indentation commands use 2 spaces | |
set showcmd | |
set showmatch | |
set smartcase " case-sensitive search if any caps | |
set softtabstop=2 " insert mode tab and backspace use 2 spaces | |
set tabstop=8 " actual tabs occupy 8 characters | |
set wildignore=log/**,node_modules/**,target/**,tmp/**,*.rbc | |
set wildmenu " show a navigable menu for tab completion | |
set wildmode=longest,list,full | |
set wrap | |
" From @r00k | |
vmap <leader>b :<C-U>!git blame <C-R>=expand("%:p") <CR> \| sed -n <C-R>=line("'<") <CR>,<C-R>=line("'>") <CR>p <CR> | |
map <C-s> <esc>:w<CR> | |
imap <C-s> <esc>:w<CR> | |
" Enable basic mouse behavior such as resizing buffers. | |
set mouse=a | |
if exists('$TMUX') " Support resizing in tmux | |
set ttymouse=xterm2 | |
endif | |
" keyboard shortcuts | |
let mapleader = ',' | |
map <C-h> <C-w>h | |
map <C-j> <C-w>j | |
map <C-k> <C-w>k | |
map <C-l> <C-w>l | |
map <leader>l :Align | |
nmap <leader>a :Ack | |
" nmap <leader>b :CommandTBuffer<CR> | |
nmap <leader>d :NERDTreeToggle<CR> | |
nmap <leader>f :NERDTreeFind<CR> | |
nmap <leader>t :CommandT<CR> | |
nmap <leader>T :CommandTFlush<CR>:CommandT<CR> | |
nmap <leader>] :TagbarToggle<CR> | |
nmap <leader><space> :call whitespace#strip_trailing()<CR> | |
nmap <leader>g :ToggleGitGutter<CR> | |
nmap <leader>c <Plug>Kwbd | |
map <silent> <leader>V :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR> | |
" plugin settings | |
let g:CommandTMaxHeight=20 | |
let g:NERDSpaceDelims=1 | |
let g:gitgutter_enabled = 0 | |
" ZOMG the_silver_searcher is so much faster than ack" | |
let g:ackprg = 'ag --nogroup --column' | |
" fdoc is yaml | |
autocmd BufRead,BufNewFile *.fdoc set filetype=yaml | |
" md is markdown | |
autocmd BufRead,BufNewFile *.md set filetype=markdown | |
" extra rails.vim help | |
autocmd User Rails silent! Rnavcommand decorator app/decorators -glob=**/* -suffix=_decorator.rb | |
autocmd User Rails silent! Rnavcommand observer app/observers -glob=**/* -suffix=_observer.rb | |
autocmd User Rails silent! Rnavcommand feature features -glob=**/* -suffix=.feature | |
autocmd User Rails silent! Rnavcommand job app/jobs -glob=**/* -suffix=_job.rb | |
autocmd User Rails silent! Rnavcommand mediator app/mediators -glob=**/* -suffix=_mediator.rb | |
autocmd User Rails silent! Rnavcommand stepdefinition features/step_definitions -glob=**/* -suffix=_steps.rb | |
" automatically rebalance windows on vim resize | |
autocmd VimResized * :wincmd = | |
" Fix Cursor in TMUX | |
if exists('$TMUX') | |
let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\" | |
let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\" | |
else | |
let &t_SI = "\<Esc>]50;CursorShape=1\x7" | |
let &t_EI = "\<Esc>]50;CursorShape=0\x7" | |
endif | |
" Go crazy! | |
if filereadable(expand("~/.vimrc.local")) | |
" In your .vimrc.local, you might like: | |
" | |
" set autowrite | |
" set nocursorline | |
" set nowritebackup | |
" set whichwrap+=<,>,h,l,[,] " Wrap arrow keys between lines | |
" | |
" autocmd! bufwritepost .vimrc source ~/.vimrc | |
" noremap! jj <ESC> | |
source ~/.vimrc.local | |
endif | |
" Run RSpec examples. | |
" Loosely inspired by: https://gist.github.com/1062296 | |
function! RunRspec(args) | |
let cmd = "bundle exec rspec " . a:args . " " . @% | |
execute ":! echo " . cmd . " && " . cmd | |
endfunction | |
map <silent> <leader>ra :call RunRspec("--color")<CR> | |
map <silent> <leader>r :call RunRspec("--color -fn -l " . line('.'))<CR> | |
" Run Spec examples. | |
function! RunSpec(args) | |
let cmd = "bundle exec spec " . a:args . " " . @% | |
execute ":! echo " . cmd . " && " . cmd | |
endfunction | |
map <silent> <leader>sa :call RunSpec("--color")<CR> | |
map <silent> <leader>s :call RunSpec("--color -fn -l " . line('.'))<CR> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment