" ~/.vimrc " Eryn Wells set nocompatible "use enhanced vim features call pathogen#helptags() call pathogen#runtime_append_all_bundles() set autoread "reread files changed outside of vim set noautowrite "don't write files before commands like :next and :make set ffs=unix,dos,mac "order of line ending formats to try set hidden " allow hidden buffers (rather than closing them) set number " show line numbers "set relativenumber " line numbers are relative to current line rather " than absolute set ruler " show ruler (line and col count) set showmode " show mode set showcmd " show last command set title " change terminal title set visualbell " don't beep set noerrorbells " PLEASE don't beep set ttyfast " fast terminals set wrap " wrap long lines set linebreak " break at between words set textwidth=80 " wrap at 80 characters set colorcolumn=80 " highlight 80th column set showmatch " show matching things: (), {}, [], etc set fo+=n " format numbered lists properly set nolist " don't show spaces, newlines, etc by default set lcs+=tab:▸\ " show tabs set lcs+=eol:¬ " show end-of-lines set lcs+=trail:・ " show trailing spaces set lcs+=extends:→ " show long lines (that go offscreen) set lcs+=nbsp:・ " show non-breaking spaces set ignorecase " ignore case in searches set smartcase " case-sensitive search if pattern contains a capital set incsearch " show search matches as you type set hlsearch " highlight search matches set gdefault " apply searches globally to a line by default set laststatus=2 " always show status line " This is basically default status line, with a few exceptions: " 1. Show buffer number before filename (b%n:) " 2. Show filetype before ruler set statusline=%> and << set softtabstop=4 " tab key inserts 4 spaces set shiftround " round off indent to multiple of shiftwidth set expandtab " always use spaces set nojoinspaces " insert 1 space instead of 2 after punctuation on line " join set autoindent " always use autoindenting set copyindent " copy previous indentation on autoindent set scrolloff=3 " scroll 3 lines ahead of point set sidescrolloff=5 " scroll 5 columns ahead of point set pastetoggle= " toggle paste mode with F2 " completion menu set wildmenu set wildmode=longest,list " Wild ignores " build artifacts set wildignore+=*.o,*.pyc,*~,.lo set wildignore+=*.db,*.pdf,*.jpg,*.jpeg,*.png,*.gif set wildignore+=.git,env,migrations if has('mouse') set mouse=a endif set modeline set modelines=12 " use syntax highlighting if the terminal can support it (or we're in a GUI) if &t_Co > 2 || has('gui_running') syntax on " turn on syntax highlighting endif set bg=dark " use solarized colorscheme if the terminal can support it (or we're in a GUI) let g:solarized_termtrans=1 let g:solarized_visibility='low' colorscheme solarized " tell SnipMate who I am let g:snips_author = 'Eryn Wells ' " set the Gundo preview window on the bottom let g:gundo_preview_bottom = 1 nmap :GundoToggle inoremap jj " allow starting commands with ; instead of : nnoremap ; : " tab to skip between braces and such in normal nnoremap % vnoremap % " disable the help key! inoremap nnoremap vnoremap " make switching windows easier nnoremap h nnoremap j nnoremap k nnoremap l function! StripTrailingWhitespace() " save last search let _s=@/ " save cursor position let l = line('.') let c = col('.') " do the clean up %s/\s\+$//e " restore saved stuff let @/=_s call cursor(l, c) endfunction let mapleader=',' " strip all trailing whitespace in the current file nnoremap W :call StripTrailingWhitespace() " edit and source my .vimrc nmap ev :tabnew $MYVIMRC nmap sv :source $MYVIMRC " hide search terms nmap :nohlsearch " find all nmap fa :%s/\v nmap sn :e ~/.vim/bundle/snipmate/snippets/=&filetype.snippets " Toggle position highlighting nmap cl :set invcursorline nmap cc :set invcursorcolumn " Toggle listmode map :set invlist " Command-T should open files in tabs when I hit ; move opening files in " buffers to let g:CommandTAcceptSelectionMap='' let g:CommandTAcceptSelectionTabMap='' if has('autocmd') filetype plugin indent on " Markdown files can also have the .md extension autocmd BufAdd,BufEnter,BufFilePost *.md :setlocal ft=markdown " Jump to last known cursor position unless it's the first line, or past the " end of the file autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif " Clean whitespace before saving: Python, C, HTML, and Objective-C autocmd BufWritePre *.py,*.h,*.c,*.html,*.m \ :call StripTrailingWhitespace() endif if has('unix') if filereadable($HOME."/.vimrc.local") source $HOME/.vimrc.local endif endif