" vim:cc=79,39 set nocompatible " screw vi if has('multi_byte') scriptencoding utf-8 " allow it in this script set termencoding=utf-8 " and this terminal supports it set encoding=utf-8 " and the default file is in it endif if (&term =~ "^xterm") " enable colors on any xterm let &t_Co=256 let &t_AF="\e[38;5;%dm" let &t_AB="\e[48;5;%dm" endif if has('syntax') syntax enable " required for folding as well set hlsearch " highlight search results endif if has('gui_running') set guioptions-=m " hide menu set guioptions-=T " hide toolbar set guifont=Consolas:h9 set columns=84 set lines=36 cd $HOME " might not be ideal... colorscheme candycode else colorscheme Tomorrow-Night set colorcolumn=79 endif set history=512 " command lines to remember set ruler " write out the cursor position set lazyredraw " when executing macros, untyped things if has('title')|set title|endif " terminal title " be less verbose with some terms and tell vim to shut up set shortmess=atI " lower the priority of tab-completing files with these extensions set suffixes=.bak,~,.swp,.o,.log,.out set noerrorbells visualbell t_vb= " disable bells " TODO: check if dir exists set backupdir=~/.vim/backup " put tilde files elsewhere set scrolloff=3 " row context during scrolling set sidescrolloff=2 " col context during scrolling set number " lines let c_syntax_for_h=1 " use C highlighting for .h files set incsearch " show first search result as we type set ignorecase " insensitive searching set smartcase " except when uppercase is used set infercase " use existing case when ins-completing set foldmethod=marker set foldlevelstart=99 " start with everything unfolded if 0 set autoindent " when creating newline, use same indent if has('smartindent') set smartindent " automatic indents with a lot of stuff endif endif " it's really just annoying though set diffopt+=iwhite " ignore whitespace in diff command " word wrapping set nowrap set nolinebreak set tabstop=8 shiftwidth=8 smarttab " 8 space tabs fu! TabFour() setlocal tabstop=8 expandtab shiftwidth=4 softtabstop=4 endf fu! TabTwo() setlocal tabstop=2 shiftwidth=2 expandtab endf if has('autocmd') augroup tabs " 4 spaces as tabs for various languages au! au FileType bash,sh,zsh,mk,awk,python,pyrex,lua,vim call TabFour() au BufRead,BufNewFile *.json call TabFour() au BufRead,BufNewFile PKGBUILD call TabTwo() au FileType ruby call TabTwo() augroup END augroup reload " http://superuser.com/a/417997 au! au BufWritePost .vimrc,_vimrc,vimrc so $MYVIMRC augroup END fu! ResCur() " attempt to preserve cursor position if line("'\"") > 1 && line("'\"") <= line("$") normal! g`" return 1 endif endf augroup resCur au! au BufWinEnter * call ResCur() augroup END endif set backspace=eol,start,indent " make backspace useful if has('wildmenu') set wildmenu " tab completion in command-line endif " easy indent/unindent nn >> nn << " indentation without ending selection vn >gv vn J "nn dd " oh wait, terminals don't do that... nn :w nn :e nn :q nn :w! nn :e! nn :q! nn :wall "nn :eall nn :qall " bad habits no no no no ino ino ino ino " good habits nn nn nn :m-2 nn :m+1 ino ino ino :m-2 ino :m+1 " rebind annoying things " reflow text nn Q gq ino Q gq " split lines (opposite of J) nn K ik$ vn K " hide search highlighting nn :nohls ino :nohls " TODO: bind something to original function if v:version < 703 " even debian stable has 7.3, so... set nomodeline else if &termencoding == "utf-8" set list listchars=tab:»·,trail:·,extends:…,nbsp:‗ else set list listchars=tab:>-,trail:.,extends:>,nbsp:_ endif endif " TODO: check if pathogen is installed execute pathogen#infect()