diff options
Diffstat (limited to 'vim/vimrc')
| -rw-r--r-- | vim/vimrc | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/vim/vimrc b/vim/vimrc new file mode 100644 index 0000000..3941f22 --- /dev/null +++ b/vim/vimrc @@ -0,0 +1,158 @@ +set nocompatible + +set number +set ruler +syntax on + +" Set encoding +set encoding=utf-8 + +" Whitespace stuff +set nowrap +set tabstop=2 +set shiftwidth=2 +set softtabstop=2 +set expandtab +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,*.class,.svn,vendor/gems/* + +" Status bar +set laststatus=2 + +" Without setting this, ZoomWin restores windows in a way that causes +" equalalways behavior to be triggered the next time CommandT is used. +" This is likely a bludgeon to solve some other issue, but it works +set noequalalways + +" NERDTree configuration +let NERDTreeIgnore=['\.pyc$', '\.rbc$', '\~$'] +map <Leader>n :NERDTreeToggle<CR> + +" CTags +map <Leader>rt :!ctags --extra=+f -R *<CR><CR> +map <C-\> :tnext<CR> + +" 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 wrapmargin=2 + set textwidth=72 +endfunction + +function s:setupMarkup() + call s:setupWrapping() + map <buffer> <Leader>p :Hammer<CR> +endfunction + +" make uses real tabs +au FileType make set noexpandtab + +" Thorfile, Rakefile, Vagrantfile and Gemfile are Ruby +au BufRead,BufNewFile {Gemfile,Rakefile,Vagrantfile,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() + +" add json syntax highlighting +au BufNewFile,BufRead *.json set ft=javascript + +au BufRead,BufNewFile *.txt call s:setupWrapping() + +" make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ ) +au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79 + +" allow backspacing over everything in insert mode +set backspace=indent,eol,start + +" load the plugin and indent settings for the detected filetype +filetype plugin indent on + +" Opens an edit command with the path of the currently edited file filled in +" Normal mode: <Leader>e +map <Leader>e :e <C-R>=expand("%:p:h") . "/" <CR> + +" Opens a tab edit command with the path of the currently edited file filled in +" Normal mode: <Leader>t +map <Leader>te :tabe <C-R>=expand("%:p:h") . "/" <CR> + +" Inserts the path of the currently edited file into a command +" Command mode: Ctrl+P +cmap <C-P> <C-R>=expand("%:p:h") . "/" <CR> + +" Unimpaired configuration +" Bubble single lines +nmap <C-Up> [e +nmap <C-Down> ]e +" Bubble multiple lines +vmap <C-Up> [egv +vmap <C-Down> ]egv + +" Enable syntastic syntax checking +let g:syntastic_enable_signs=1 +let g:syntastic_quiet_warnings=1 + +" gist-vim defaults +if has("mac") + let g:gist_clip_command = 'pbcopy' +elseif has("unix") + let g:gist_clip_command = 'xclip -selection clipboard' +endif +let g:gist_detect_filetype = 1 +let g:gist_open_browser_after_post = 1 + +" Use modeline overrides +set modeline +set modelines=10 + +" Default color scheme +set t_Co=256 +color railscasts + +" Directories for swp files +set backupdir=~/.vim/backup +set directory=~/.vim/backup + +" Turn off jslint errors by default +let g:JSLintHighlightErrorLine = 0 + +" MacVIM shift+arrow-keys behavior (required in .vimrc) +let macvim_hig_shift_movement = 1 + +" % to bounce from do to end etc. +runtime! macros/matchit.vim + +" Show (partial) command in the status line +set showcmd + +" Include user's local vim config +if filereadable(expand("~/.vimrc.local")) + source ~/.vimrc.local +endif + +" Mapping for TagBar +nmap <F8> :TagbarToggle<CR> + +" Mapping for CommandTBuffer +map <Leader>t :CtrlP<CR> +map <Leader>T :CtrlPBuffer<CR> +map <Leader>R :CtrlPClearCache<CR> + +" Color Column +set colorcolumn=81 + +" Add Pathogen +call pathogen#infect() |