set nocompatible " Pathogen setup runtime! autoload/pathogen.vim if exists('g:loaded_pathogen') filetype off call pathogen#runtime_append_all_bundles() call pathogen#helptags() endif " Syntax syntax on filetype plugin indent on match ErrorMsg '\%>80v.\+' " UI set number set ruler set guioptions=aAce set mouse=a colorscheme railscasts " Tabs/Whitespace set tabstop=2 set shiftwidth=2 set autoindent set smarttab set expandtab set nowrap set list listchars=tab:\ \ ,trail:ยท " Searching set hlsearch set incsearch set ignorecase set smartcase " Tab completion set wildmode=list:longest,list:full set wildignore+=*.o,*.obj,.git,*.rbc " Status bar set laststatus=2 " CTags map rt :!ctags --extra=+f -R * " Remember last location in file if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") \| exe "normal g'\"" | endif endif function s:setupWrapping() set wrap set wm=2 set textwidth=72 endfunction function s:setupMarkup() call s:setupWrapping() map p :Mm endfunction " make and python use real tabs au FileType make set noexpandtab au FileType python set noexpandtab " Thorfile, Rakefile and Gemfile are Ruby au BufRead,BufNewFile {Gemfile,Rakefile,Thorfile,config.ru} set ft=ruby " md, markdown, and mk are markdown and define buffer-local preview au BufRead,BufNewFile *.{md,markdown,mdown,mkd,mkdn} call s:setupMarkup() au BufRead,BufNewFile *.txt call s:setupWrapping() " allow backspacing over everything in insert mode set backspace=indent,eol,start " Window manipulation "map tt map | " This and the below are also useful for colemak map " Surrounds shortcuts for visual selections "vmap " s" "vmap ' s' "vmap ( s) "vmap [ s] "vmap { s} "vmap < s> " Pressing backspace with selection does something weird " thanks to above surrounds shortcuts so let's be specific " here: vmap xi " Colemak " " * Switch 'h' and 'n' (so 'up' is on top of 'down'). " * Use and for and , instead (and disable 'j' " and 'l' which are where 'y' and 'u' are in in QWERTY) nmap h nmap k " Nicer split controls "map normal :split "map normal :vsplit " Emacs-like keys for the command line cnoremap cnoremap cnoremap set wildignore+=Transmission*Remote*GUI let g:ragtag_global_maps = 1 if filereadable(expand('~/.vimrc.local')) source ~/.vimrc.local endif