" wreed vimrc " vim: set foldmethod=marker: " allow python in vimrc python import vim "{{{ ***** PLUGINS ***** " " #####Pathogen##### call pathogen#infect() call pathogen#helptags() " #####PyMode##### "let pymode_lint_ignore="E501,E401,E225,W191,W391,W404" " use rope code assist instead of a complete function " au FileType python inoremap '=RopeCodeAssistInsertMode()=pumvisible() ? "\C-p>\Down>" : ""' " Tlist " Toggle tag list nnoremap :TlistToggle " #####Tagbar##### let g:tagbar_autofocus = 1 let g:tagbar_left = 1 let g:tagbar_zoomwidth = 0 " open Tagbar automatically when viewing a supported file/files "autocmd VimEnter * nested :call tagbar#autoopen(1) " open Tagbar automatically when entering a buffer of supported file/files "autocmd BufEnter * nested :call tagbar#autoopen(0) " Toggle Tagbar nnoremap tt :TagbarToggle " #####Airline##### let g:airline_powerline_fonts=1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#show_tab_nr = 1 let g:airline#extensions#tabline#tab_nr_type = 1 let g:airline#extensions#tabline#show_close_button =1 let g:airline#extensions#tagbar#enabled = 1 let g:airline#extensions#whitespace#enabled = 0 let g:airline#extensions#tmuxline#enabled = 0 "if !exists('g:airline_symbols') "let g:airline_symbols = {} "endif "" unicode symbols "let g:airline_left_sep = '»' ""let g:airline_left_sep = '▶' "let g:airline_right_sep = '«' ""let g:airline_right_sep = '◀' "let g:airline_symbols.linenr = '␊' "let g:airline_symbols.linenr = '␤' "let g:airline_symbols.linenr = '¶' "let g:airline_symbols.branch = '⎇' "let g:airline_symbols.paste = 'ρ' "let g:airline_symbols.paste = 'Þ' "let g:airline_symbols.paste = '∥' "let g:airline_symbols.whitespace = 'Ξ' " #####NERDTree##### let g:NERDTreeDirArrows = 0 let g:NERDTreeWinPos = "right" nnoremap nt :NERDTreeToggle " #####NerdCommenter##### imap NERDCommenterInsert " #####UltiSnips##### let g:UltiSnipsEditSplit = "vertical" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" let g:UltiSnipsSnippetsDir="~/.vim/bundle/vim-snippets/UltiSnips" " #####CCTree##### nnoremap ct :CCTreeWindowToggle " #####ConqueTerm##### let g:ConqueTerm_CloseOnEnd = 1 "Conque spits out an error about CursorHoldI making it run slow. repress "these warnings let g:ConqueTerm_StartMessages = 0 " #####Pyclewn##### " Only map keys if we're in Pyclewn if has("netbeans_enabled") "nmap :exe ":Cprint " . expand("") nmap "pyiw :Cprint p nmap :exe ":Cdbgvar " . expand("") vmap "py :Cprint p endif " #####YouCompleteMe##### " Open preview window when completing let g:ycm_add_preview_to_completeopt = 1 " Auto Close preview window let g:ycm_autoclose_preview_window_after_insertion = 0 " Disable Tab for cycling through commands so that UtilSnips will still work let g:ycm_key_list_select_completion=[''] let g:ycm_key_list_previous_completion=[''] let g:ycm_collect_identifiers_from_tags_files=1 let g:ycm_complete_in_comments = 1 let g:ycm_key_invoke_completion = '' "let g:ycm_extra_conf_globlist = ['~/.ycm_extra_conf.py'] let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' nnoremap ] :YcmCompleter GoTo " }}} "{{{ ***** VIM FEATURES ***** " " allow project-specific .vimrc files set exrc set secure " allow the use of a modeline set modeline " automatically read a file if it changes outside of vim set autoread " turn ruler on set ruler " set incremental search set hlsearch set incsearch " set status line always on set laststatus=2 " turn vim's mode printing off. Airline takes care of this set noshowmode " set mouse always on. I like the mouse sometimes set mouse=a " 256 stuff " disable BackgroundColorErase (BCE) inside of 256-color tmux sessions if &term =~ '256color' set t_ut= endif " OR... do this shit instead if &term =~ '^screen' " tmux will send xterm-style keys when xterm-keys is on execute "set =\e[1;*A" execute "set =\e[1;*B" execute "set =\e[1;*C" execute "set =\e[1;*D" endif " set utf8 set encoding=utf-8 set fileencoding=utf-8 " New Splits default to right, or below set splitbelow set splitright "turn omnicomplete on filetype plugin on set omnifunc=syntaxcomplete#Complete " }}} "{{{ ***** VISUALS ***** " " set number set number set relativenumber set foldmethod=syntax set foldcolumn=3 set expandtab set shiftwidth=4 set softtabstop=4 set autoindent set smartindent set cindent filetype plugin indent on " Solarized settings "let g:solarized_termcolors=256 "colorscheme solarized "set background=light "set background=dark " seoul256 settings let g:seoul256_background = 236 colorscheme seoul256 let g:airline_theme="tomorrow" "colorscheme carvedwoodcool "colorscheme wombat256 "colorscheme zenburn "colorscheme kolor "colorscheme jellybeans "colorscheme hybrid "colorscheme bubblegum "colorscheme devbox-dark-256 "colorscheme Tomorrow-Night-Eighties syntax on set showcmd "}}} "{{{ ***** KEY MAPPINGS ***** " " make backspace work set backspace=eol,start,indent set whichwrap+=<,>,h,l set whichwrap+=<,>,h,l set pastetoggle= nmap :mks! nnoremap :MakeRelease nnoremap :MakeDebug nnoremap :so ~/.vimrc " look up things in opengrok noremap K :call OpenGrok() " treat wrapped lines as multiple lines when navigating map j gj map k gk " Open a new line and exit insert mode, staying on the same line nnoremap o ok nnoremap O Oj " Clean a line and exit insert mode nnoremap c cc " Open tag in new tab nnoremap T " Toggle TODOs as done or not nnoremap x :s/\[ \]TODO/[X]TODO/:nohl nnoremap :s/\[X\]TODO/[ ]TODO/:nohl " WINDOW ORGANISATION " Smart way to move between windows map j map k map h map l map k map j map h map l " easy resize windows nnoremap + nnoremap - nnoremap 3< nnoremap 3> " easy move windows nnoremap nnoremap nnoremap nnoremap " }}} "{{{ ***** PROJECTS ***** " " set default project options set makeprg=rfds command! -nargs=* MakeRelease Make build release command! -nargs=* MakeDebug Make build debug " }}} "{{{ ***** FUNCTIONS ***** " " open OpenGrok in midori function! OpenGrok() :!midori http://opengrok.factset.com/source/search?defs=&project=%2Fonline%2Fmakefds endfunction "function! OpenDepotFile(version, fname) python << END def OpenDepotFile(version, fname): vim.command("edit /home/dev/fonix/online/" + version + "/src/" + fname) END "endfunction " }}} "{{{ ***** COMMANDS ***** " " make todo list command! -nargs=* -complete=file Todos vimgrep /TODO(wreed):/gj *|cw "Wrapper for make sequence "replaced by vim-dispatch plugin "command! -nargs=* Make execute '!clear' | make! | cw " Perforce commands command! -nargs=0 PerfEdit execute "!p4 edit %" " Open Depot File command! -nargs=+ -complete=custom,DepotComplete OpenQaFile python OpenDepotFile("qa", ) function! DepotComplete(ArgLead, CmdLine, CursorPos) return system("ls /home/dev/fonix/online/qa/src/") endfunction " Edit ~/.vimrc in a new tab command! -nargs=0 EditVimrc tabedit ~/.vimrc " }}} "// [ ]TODO(wreed): shortcut to edit VMS files (with tab completion??) "// [ ]TODO(wreed): shortcut to look at directory