.vimrc 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. " wreed vimrc
  2. " vim: set foldmethod=marker:
  3. "{{{ ***** PLUGINS ***** "
  4. " #####Pathogen#####
  5. call pathogen#infect()
  6. call pathogen#helptags()
  7. " #####PyMode#####
  8. "let pymode_lint_ignore="E501,E401,E225,W191,W391,W404"
  9. " use rope code assist instead of a complete function
  10. " au FileType python inoremap <expr> <S-Space> '<C-r>=RopeCodeAssistInsertMode()<CR><C-r>=pumvisible() ? "\<lt>C-p>\<lt>Down>" : ""<CR>'
  11. " Tlist
  12. " Toggle tag list
  13. " nnoremap <C-T> :TlistToggle<CR>
  14. " #####Tagbar#####
  15. let g:tagbar_autofocus = 1
  16. let g:tagbar_left = 1
  17. let g:tagbar_zoomwidth = 0
  18. " open Tagbar automatically when viewing a supported file/files
  19. "autocmd VimEnter * nested :call tagbar#autoopen(1)
  20. " open Tagbar automatically when entering a buffer of supported file/files
  21. "autocmd BufEnter * nested :call tagbar#autoopen(0)
  22. " Toggle Tagbar
  23. nnoremap <leader>tt :TagbarToggle<CR>
  24. " #####Airline#####
  25. let g:airline#extensions#tabline#enabled = 1
  26. let g:airline#extensions#tabline#show_tab_nr = 1
  27. let g:airline#extensions#tabline#tab_nr_type = 1
  28. let g:airline#extensions#tagbar#enabled = 1
  29. let g:airline#extensions#whitespace#enabled = 0
  30. "let g:airline#extensions#tmuxline#enabled = 1
  31. " #####NERDTree#####
  32. let g:NERDTreeDirArrows = 0
  33. let g:NERDTreeWinPos = "right"
  34. nnoremap <leader>nt :NERDTreeToggle<CR>
  35. " #####NerdCommenter#####
  36. imap <C-c> <plug>NERDCommenterInsert
  37. " #####UltiSnips#####
  38. let g:UltiSnipsEditSplit = "vertical"
  39. let g:UltiSnipsJumpForwardTrigger="<TAB>"
  40. let g:UltiSnipsJumpBackwardTrigger="<S-TAB>"
  41. let g:UltiSnipsSnippetsDir="~/.vim/bundle/vim-snippets/UltiSnips"
  42. " #####CCTree#####
  43. nnoremap <leader>ct :CCTreeWindowToggle<CR>
  44. " #####ConqueTerm#####
  45. let g:ConqueTerm_CloseOnEnd = 1
  46. "Conque spits out an error about CursorHoldI making it run slow. repress
  47. "these warnings
  48. let g:ConqueTerm_StartMessages = 0
  49. " #####Pyclewn#####
  50. " Only map keys if we're in Pyclewn
  51. if has("netbeans_enabled")
  52. "nmap <silent> <C-p> :exe ":Cprint " . expand("<cword>")<CR>
  53. nmap <silent> <C-p> "pyiw :Cprint <C-R>p<CR>
  54. nmap <silent> <C-x> :exe ":Cdbgvar " . expand("<cword>")<CR>
  55. vmap <silent> <C-p> "py :Cprint <C-R>p<CR>
  56. endif
  57. " #####YouCompleteMe#####
  58. " Open preview window when completing
  59. let g:ycm_add_preview_to_completeopt = 1
  60. " Auto Close preview window
  61. let g:ycm_autoclose_preview_window_after_completion = 1
  62. " Disable Tab for cycling through commands so that UtilSnips will still work
  63. let g:ycm_key_list_select_completion=['<Down>']
  64. let g:ycm_key_list_previous_completion=['<Up>']
  65. let g:ycm_collect_identifiers_from_tags_files=1
  66. let g:ycm_key_invoke_completion = '<C-N>'
  67. " }}}
  68. "{{{ ***** VIM FEATURES ***** "
  69. " allow project-specific .vimrc files
  70. set exrc
  71. set secure
  72. " allow the use of a modeline
  73. set modeline
  74. " automatically read a file if it changes outside of vim
  75. set autoread
  76. " turn ruler on
  77. set ruler
  78. " set incremental search
  79. set hlsearch
  80. set incsearch
  81. " set status line always on
  82. set laststatus=2
  83. " set mouse always on. I like the mouse sometimes
  84. set mouse=a
  85. "turn omnicomplete on
  86. filetype plugin on
  87. set omnifunc=syntaxcomplete#Complete
  88. " }}}
  89. "{{{ ***** VISUALS ***** "
  90. " set number
  91. set number
  92. set relativenumber
  93. set foldmethod=syntax
  94. set foldcolumn=3
  95. set expandtab
  96. set shiftwidth=4
  97. set softtabstop=4
  98. set autoindent
  99. set smartindent
  100. set cindent
  101. filetype plugin indent on
  102. "set background=light
  103. "let g:solarized_termcolors=256
  104. "colorscheme solarized
  105. "colorscheme carvedwoodcool
  106. "colorscheme wombat256
  107. "colorscheme zenburn
  108. colorscheme kolor
  109. "colorscheme jellybeans
  110. "colorscheme hybrid
  111. "colorscheme bubblegum
  112. "colorscheme devbox-dark-256
  113. syntax on
  114. set showcmd
  115. "}}}
  116. "{{{ ***** KEY MAPPINGS ***** "
  117. " make backspace work
  118. set backspace=eol,start,indent
  119. set whichwrap+=<,>,h,l
  120. set whichwrap+=<,>,h,l
  121. set pastetoggle=<F2>
  122. nmap <F12> :mks!<CR>
  123. nnoremap <F3> :MakeRelease<CR><CR>
  124. nnoremap <F4> :MakeDebug<CR><CR>
  125. nnoremap <F5> :so ~/.vimrc<CR>
  126. " look up things in opengrok
  127. noremap <leader>K :call OpenGrok()<CR>
  128. " treat wrapped lines as multiple lines when navigating
  129. map j gj
  130. map k gk
  131. " Smart way to move between windows
  132. map <C-j> <C-W>j
  133. map <C-k> <C-W>k
  134. map <C-h> <C-W>h
  135. map <C-l> <C-W>l
  136. " Open tag in new tab
  137. nnoremap <M-]> <C-W><C-]><C-W>T
  138. " Toggle TODOs as done or not
  139. nnoremap <silent> <leader>x :s/\[ \]TODO/[X]TODO/<CR>:nohl<CR>
  140. nnoremap <silent> <leader><space> :s/\[X\]TODO/[ ]TODO/<CR>:nohl<CR>
  141. " }}}
  142. "{{{ ***** PROJECTS ***** "
  143. " set default project options
  144. set makeprg=rfds
  145. command! -nargs=* MakeRelease Make build release
  146. command! -nargs=* MakeDebug Make build debug
  147. " }}}
  148. "{{{ ***** FUNCTIONS ***** "
  149. " open OpenGrok in midori
  150. function! OpenGrok()
  151. :!midori http://opengrok.factset.com/source/search?defs=<cword>&project=%2Fonline%2Fmakefds<CR>
  152. endfunction
  153. " }}}
  154. "{{{ ***** COMMANDS ***** "
  155. " make todo list
  156. command! -nargs=* -complete=file Todos vimgrep /TODO(wreed):/gj *|cw
  157. "Wrapper for make sequence
  158. command! -nargs=* Make execute '!clear' | make! <args> | cw
  159. " Perforce commands
  160. command! -nargs=0 PerfEdit execute "!p4 edit %"
  161. " }}}