ohmyzsh/.vimrc
2018-11-30 13:52:03 -08:00

249 lines
6.8 KiB
VimL

" https://github.com/vim-scripts/searchfold.vim
let mapleader = ','
" let &colorcolumn=join(range(101,999),",")
set hlsearch
set incsearch
set cursorline
set smartindent
set nocompatible
set tw=100
filetype off
set rtp+=~/.vim/bundle/Vundle.vim/
set rtp+=~/.vim/bundle/vim-jsonnet/syntax/
set rtp+=~/.vim/bundle/vim-jsonnet/ftdetect/
set ignorecase
set smartcase
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" The bundles you install will be listed here
filetype plugin indent on
Bundle 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
Bundle 'scrooloose/nerdtree'
Bundle 'klen/python-mode'
Bundle 'tpope/vim-fugitive'
Bundle 'altercation/vim-colors-solarized'
Bundle 'ervandew/supertab'
Bundle 'Raimondi/delimitMate'
Bundle 'nathanaelkane/vim-indent-guides'
Bundle 'majutsushi/tagbar'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'vim-scripts/LaTeX-Suite-aka-Vim-LaTeX'
Bundle 'tpope/vim-surround'
Bundle 'mephux/bro.vim'
Bundle 'derekwyatt/vim-scala'
Bundle 'wincent/Command-T'
" Bundle 'fholgado/minibufexpl.vim'
Bundle 'vim-scripts/EasyGrep'
Bundle 'vim-scripts/LustyExplorer'
Bundle 'vim-scripts/yavdb'
Bundle 'junkblocker/patchreview-vim'
Bundle 'codegram/vim-codereview'
Bundle 'google/vim-jsonnet'
Bundle 'tpope/vim-sleuth'
Bundle 'scrooloose/syntastic'
Bundle 'Chiel92/vim-autoformat'
Bundle 'ashisha/image.vim'
Bundle 'google/vim-maktaba'
Bundle 'bazelbuild/vim-bazel'
Bundle 'chr4/nginx.vim'
Bundle 'spwhitt/vim-nix'
" Bundle 'ensime/ensime-vim'
" Scala Bundles
" You need to check out appropriate ensime branch by hand by running ie.
" > git checkout scala-2.10
" in ensime plugin directory managed by vundle (probably ~/.vim/bundle/ensime). Also you'll need to run make in vimproc directory.
"Bundle "megaannum/self"
"Bundle "megaannum/forms"
"Bundle "Shougo/vimproc"
"Bundle "Shougo/vimshell"
"Bundle "aemoncannon/ensime"
"Bundle "megaannum/vimside"
" The rest of your config follows here
" Excess Line Length
augroup vimrc_autocmds
autocmd!
" highlight characters past column 120
autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black
autocmd FileType python match Excess /\%120v.*/
autocmd FileType python set nowrap
augroup END
" Powerline setup
set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ 9
set laststatus=2
" Nerd Tree
map <F2> :NERDTreeToggle<CR>
" Python-mode Setup
" Python-mode
" Activate rope
" Keys:
" K Show python docs
" <Ctrl-Space> Rope autocomplete
" <Ctrl-c>g Rope goto definition
" <Ctrl-c>d Rope show documentation
" <Ctrl-c>f Rope find occurrences
" <Leader>b Set, unset breakpoint (g:pymode_breakpoint enabled)
" [[ Jump on previous class or function (normal, visual, operator modes)
" ]] Jump on next class or function (normal, visual, operator modes)
" [M Jump on previous class or method (normal, visual, operator modes)
" ]M Jump on next class or method (normal, visual, operator modes)
let g:pymode_rope = 0
" Documentation
let g:pymode_doc = 1
let g:pymode_doc_key = 'K'
"Linting
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8,pylint,mccabe"
" Auto check on save
let g:pymode_lint_on_write = 0
" Support virtualenv
let g:pymode_virtualenv = 1
" Enable breakpoints plugin
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_key = '<leader>b'
" syntax highlighting
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all
let g:pymode_utils_whitespaces = 0
let g:pymode_trim_whitespaces = 0
" Don't autofold code
let g:pymode_folding = 0
" Syntastic python config
let g:syntastic_python_checkers = ['prospector']
let g:syntastic_python_prospector_args = "--profile python/prospector.yaml"
" Highlight trailing white space and delete on save
autocmd InsertLeave * match ErrorMsg '\s\+$'
autocmd InsertEnter * call clearmatches()
" autocmd BufWritePre * :%s/\s\+$//e
autocmd FileType tex set spell
autocmd FileType tex set tw=80
autocmd FileType tex set nowrap
autocmd InsertLeave *.tex highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
autocmd InsertLeave *.tex match OverLength /\%82v.*/
" automatically change window's cwd to file's dir
set noautochdir
" I'm prefer spaces to tabs
set tabstop=4
set shiftwidth=4
set expandtab
" more subtle popup colors
if has ('gui_running')
highlight Pmenu guibg=#cccccc gui=bold
endif
" solarized theme
syntax enable
set background=dark
colorscheme solarized
" Cursor Wrapping
set whichwrap+=<,>,h,l,[,]
" Ctags
let g:tagbar_ctags_bin="/opt/local/bin/ctags"
if has("autocmd")
au BufNewFile,BufRead *.bro set filetype=bro
au BufRead,BufNewFile *.scala set filetype=scala
endif
" Eclim Settings
" let g:EclimScalaSearchSingleResult = 'edit'
" let g:EclimCompletionMethod = 'omnifunc'
" let g:SuperTabDefaultCompletionType = 'context'
map <C-Space> :ScalaSearch<CR>
set wildignore=*.o,*.obj,*.bak,*.swp,*.class,*.pyc,*.md,*.min,*.txt,*.xml,*.jar,*.xml.gz,*.log,*resources/golden*,*.sql,*.q,*/node_modules/*,target/selenium/*,*/target/*,*/repo_universe/*,*/screenshots/*,*.json.gz,*.png,*.xml.gz,*/target/*
" au FileType java :so /Users/ahirreddy/.vim/bundle/JavaKit/vim/JavaKit.vim"
" CommandT Options
let g:CommandTMaxFiles=10000000
let g:CommandTFileScanner="git"
:set hidden
if has("gui_running")
let s:uname = system("uname")
if s:uname == "Darwin\n"
set guifont=Inconsolata\ for\ Powerline:h15
endif
endif
set noerrorbells
set novisualbell
set t_vb=
autocmd! GUIEnter * set vb t_vb=
autocmd QuickFixCmdPost *grep* cwindow
" Define a command to make it easier to use
command! -nargs=+ QFDo call QFDo(<q-args>)
" Function that does the work
function! QFDo(command)
" Create a dictionary so that we can
" get the list of buffers rather than the
" list of lines in buffers (easy way
" to get unique entries)
let buffer_numbers = {}
" For each entry, use the buffer number as
" a dictionary key (won't get repeats)
for fixlist_entry in getqflist()
let buffer_numbers[fixlist_entry['bufnr']] = 1
endfor
" Make it into a list as it seems cleaner
let buffer_number_list = keys(buffer_numbers)
" For each buffer
for num in buffer_number_list
" Select the buffer
exe 'buffer' num
" Run the command that's passed as an argument
exe a:command
" Save if necessary
update
endfor
endfunction
function! CopyMatches(reg)
let hits = []
%s//\=len(add(hits, submatch(0))) ? submatch(0) : ''/ge
let reg = empty(a:reg) ? '+' : a:reg
execute 'let @'.reg.' = join(hits, "\n") . "\n"'
endfunction
command! -register CopyMatches call CopyMatches(<q-reg>)
noremap <F5> :Autoformat<CR>
let g:formatdef_scalafmt = '"scalafmt --config .scalafmt.conf"'
let g:formatters_scala = ['scalafmt']