dotfiles/vimrc

213 lines
6.4 KiB
VimL
Raw Normal View History

2011-05-03 21:53:50 -07:00
" ~/.vimrc
2012-07-20 09:48:27 -07:00
" Eryn Wells <eryn@erynwells.me>
2011-05-03 21:53:50 -07:00
set nocompatible "use enhanced vim features
2011-05-03 21:53:50 -07:00
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
2011-05-03 21:53:50 -07:00
set ffs=unix,dos,mac "order of line ending formats to try
2011-05-03 21:53:50 -07:00
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
2011-11-30 13:21:59 -08:00
set wrap " wrap long lines
set linebreak " break at between words
set textwidth=80 " wrap at 80 characters
2011-11-30 13:21:59 -08:00
set colorcolumn=80 " highlight 80th column
set showmatch " show matching things: (), {}, [], etc
set fo+=n " format numbered lists properly
2012-11-01 10:52:21 -07:00
set nolist " don't show spaces, newlines, etc by default
2011-09-13 12:29:53 -07:00
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)
2011-11-30 13:21:59 -08:00
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
2012-12-04 10:47:52 -08:00
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=%<b%n:%f\ %h%m%r%=%y\ %l,%c%V\ \ %P
" use PCREs for searches
nnoremap / /\v
vnoremap / /\v
set spelllang=en " set spelling language
2011-05-03 21:53:50 -07:00
if has('win32') || has('win64')
set spellfile=~/_vim/spelling.en.add
else
set spellfile=~/.vim/spelling.en.add
endif
2012-07-20 09:48:27 -07:00
set noswapfile " don't keep swap files
set nobackup " don't keep backup files
set backupdir=~/.vim/backup
" save backup files here
set undofile " save undo history
set undodir=~/.vim/undo " save undo files here
set history=1000 " remember 1000 commands in history
set undolevels=1000 " keep lots of undo history
2011-05-03 21:53:50 -07:00
set viminfo=%100,'100,/100,h,\"500,:100,n~/.viminfo
" I have *NO* idea what this does...
2011-05-03 21:53:50 -07:00
set backspace=indent,eol,start
" backspace over everything in insert mode
2011-05-03 21:53:50 -07:00
set tabstop=8 " tabs are always 8 spaces
set shiftwidth=4 " shift lines 4 spaces with >> 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
2011-05-03 21:53:50 -07:00
set scrolloff=3 " scroll 3 lines ahead of point
set sidescrolloff=5 " scroll 5 columns ahead of point
2011-05-03 21:53:50 -07:00
set pastetoggle=<F2> " toggle paste mode with F2
2011-05-03 21:53:50 -07:00
" 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
2011-05-03 21:53:50 -07:00
if has('mouse')
set mouse=a
endif
set modeline
set modelines=12
2012-03-21 10:07:19 -07:00
" 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
2011-05-03 21:53:50 -07:00
" tell SnipMate who I am
let g:snips_author = 'Eryn Wells <eryn@erynwells.me>'
2011-05-03 21:53:50 -07:00
" set the Gundo preview window on the bottom
let g:gundo_preview_bottom = 1
2011-07-29 07:48:33 -07:00
nmap <F3> :GundoToggle<CR>
inoremap jj <ESC>
" allow starting commands with ; instead of :
nnoremap ; :
" tab to skip between braces and such in normal
nnoremap <tab> %
vnoremap <tab> %
" disable the help key!
inoremap <F1> <ESC>
nnoremap <F1> <ESC>
vnoremap <F1> <ESC>
" make switching windows easier
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
function! <SID>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
2011-05-03 21:53:50 -07:00
let mapleader=','
" strip all trailing whitespace in the current file
nnoremap <silent> <leader>W :call <SID>StripTrailingWhitespace()<CR>
" edit and source my .vimrc
2012-03-09 23:37:14 -08:00
nmap <silent> <leader>ev :tabnew $MYVIMRC<CR>
nmap <silent> <leader>sv :source $MYVIMRC<CR>
" hide search terms
2012-03-09 23:37:14 -08:00
nmap <silent> <leader><space> :nohlsearch<CR>
" find all
nmap <leader>fa :%s/\v
nmap <leader>sn :e ~/.vim/bundle/snipmate/snippets/<C-r>=&filetype<CR>.snippets<CR>
" Toggle position highlighting
nmap <silent> <leader>cl :set invcursorline<CR>
nmap <silent> <leader>cc :set invcursorcolumn<CR>
" Toggle listmode
map <silent> <F4> :set invlist<CR>
2012-03-09 23:37:14 -08:00
" Command-T should open files in tabs when I hit <CR>; move opening files in
" buffers to <C-b>
let g:CommandTAcceptSelectionMap='<C-b>'
let g:CommandTAcceptSelectionTabMap='<CR>'
if has('autocmd')
filetype plugin indent on
2012-07-20 09:48:27 -07:00
" Markdown files can also have the .md extension
autocmd BufAdd,BufEnter,BufFilePost *.md :setlocal ft=markdown
2012-03-09 23:37:14 -08:00
" 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
2012-07-20 09:48:27 -07:00
" Clean whitespace before saving: Python, C, HTML, and Objective-C
autocmd BufWritePre *.py,*.h,*.c,*.html,*.m
\ :call <SID>StripTrailingWhitespace()
endif
2012-01-04 08:55:00 -08:00
if has('unix')
if filereadable($HOME."/.vimrc.local")
source $HOME/.vimrc.local
endif
2012-01-04 08:55:00 -08:00
endif