" Compatibility set nocompatible " Plugins silent! call pathogen#infect() silent! call pathogen#helptags() " Filetypes if has("autocmd") filetype indent plugin on " Shortcuts nnoremap _ap :setlocal filetype=apache nnoremap _bi :setlocal filetype=bindzone nnoremap _cs :setlocal filetype=css nnoremap _ht :setlocal filetype=html nnoremap _js :setlocal filetype=javascript nnoremap _md :setlocal filetype=markdown nnoremap _pl :setlocal filetype=perl nnoremap _ph :setlocal filetype=php nnoremap _py :setlocal filetype=python nnoremap _rb :setlocal filetype=ruby nnoremap _sh :setlocal filetype=sh nnoremap _vi :setlocal filetype=vim nnoremap _xm :setlocal filetype=xml " Markdown augroup markdown autocmd! autocmd Filetype markdown setlocal formatoptions+=t autocmd Filetype markdown setlocal textwidth=79 if exists("&colorcolumn") autocmd Filetype markdown setlocal colorcolumn=+1 endif augroup END endif " Backups if !strlen($SUDO_USER) && has("unix") set backup set backupext=.bak set backupdir^=~/.vim/backup// if !isdirectory($HOME . "/.vim/backup") && exists("*mkdir") call mkdir($HOME . "/.vim/backup", "p", 0700) endif else set nobackup set nowritebackup endif " Colors if has("syntax") syntax enable set background=dark silent! colorscheme sahara if has("folding") set fillchars=diff:\ ,fold:\ ,vert:\ endif if exists("&synmaxcol") set synmaxcol=3000 endif endif " Commands if has("cmdline_info") set ruler set showcmd set showmode endif cnoremap cnoremap " Completion inoremap inoremap " Encoding set fileformats=unix,dos,mac if has("multi_byte") set encoding=utf-8 endif " Formatting set expandtab set formatoptions=croqn1 silent! set formatoptions+=j set smarttab set nojoinspaces set shiftround set shiftwidth=4 set softtabstop=4 set tabstop=4 nnoremap J mzJ`z if has("eval") function! ToggleFormatFlag(flag) let l:operation = (&formatoptions =~ a:flag) ? '-=' : '+=' silent! exec 'setlocal formatoptions' l:operation . a:flag setlocal formatoptions? endfunction nnoremap a :call ToggleFormatFlag('a') nnoremap c :call ToggleFormatFlag('c') nnoremap t :call ToggleFormatFlag('t') endif " History set history=1000 " List set nolist nnoremap l :setlocal list! " Matching silent! runtime macros/matchit.vim " Netrw if has("eval") let g:netrw_silent = 1 let g:netrw_liststyle = 3 endif " Messages set shortmess+=I " Miscellaneous set backspace=indent,eol,start set modelines=0 set report=0 set shellslash " Numbers set nonumber nnoremap n :setlocal number! " Objects onoremap ir i[ onoremap ar a[ vnoremap ir i[ vnoremap ar a[ " Paste set nopaste set pastetoggle= " Reading set autoread " Scrolling set scrolloff=0 set sidescrolloff=16 " Search if has("extra_search") set hlsearch set incsearch nnoremap h :set hlsearch! nnoremap i :set incsearch! nnoremap :nohlsearch if has("autocmd") augroup vimrc autocmd! silent! autocmd InsertEnter * set nohlsearch silent! autocmd InsertLeave * set hlsearch augroup END endif endif " Spelling if has("spell") set spelllang=en_nz nnoremap s :setlocal spell! endif " Swaps if !strlen($SUDO_USER) && has("unix") set swapfile set directory^=~/.vim/swap// if !isdirectory($HOME . "/.vim/swap") && exists("*mkdir") call mkdir($HOME . "/.vim/swap", "p", 0700) endif else set noswapfile endif " Terminal set noesckeys set lazyredraw set ttyfast set visualbell t_vb= " Typos if has("user_commands") command! -bang -complete=file -nargs=? E e command! -bang -complete=file -nargs=? W w command! -bang -complete=file -nargs=? WQ wq command! -bang -complete=file -nargs=? Wq wq command! -bang Q q command! -bang Qa qa command! -bang QA qa command! -bang Wa wa command! -bang WA wa endif " Undo set undolevels=1000 if !strlen($SUDO_USER) && has("unix") && has("persistent_undo") set undofile set undodir^=~/.vim/undo// if !isdirectory($HOME . "/.vim/undo") && exists("*mkdir") call mkdir($HOME . "/.vim/undo", "p", 0700) endif endif " Unmaps noremap nnoremap K nnoremap Q " Visual if has("virtualedit") set virtualedit+=block endif " Wildmenu if has("wildmenu") set wildmenu set wildmode=longest:list if has("wildignore") set wildignore+=*.a,*.o set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png set wildignore+=.DS_Store,.git,.hg,.svn set wildignore+=*~,*.swp,*.tmp endif if exists("&wildignorecase") set wildignorecase endif endif " Windows if has("windows") set laststatus=1 set splitbelow if has("vertsplit") set splitright endif if exists("&showtabline") set showtabline=1 endif endif " Wrapping set nowrap nnoremap j gj nnoremap k gk nnoremap w :set wrap! if has("linebreak") set linebreak set showbreak=... endif " Writing nnoremap ZW :w! nnoremap ZA :wa! " Yanking nnoremap Y y$ " Local if filereadable(glob("~/.vimrc.local")) source ~/.vimrc.local endif