set t_ut='' let s:is_color = &t_Co >= 256 set hidden set splitbelow set splitright set nowrap set backspace=indent,eol,start let s:is_nerd_font = $VIM_GLYPHS ==? 'nerd-font' let &listchars = s:is_nerd_font ? "tab: ,precedes:\uf63c,extends:\uf63d" : \ "tab: ,precedes:\u00ab,extends:\u00bb" set list let &fillchars = "vert:\u2502,fold: ,diff:\u00b7" let &colorcolumn = join(range(80, 99), ',') if s:is_color autocmd ColorScheme * highlight ColorColumn ctermbg=black autocmd ColorScheme * highlight error cterm=none ctermbg=darkred \ ctermfg=black autocmd ColorScheme * highlight InvalidWhitespace ctermbg=black autocmd ColorScheme * highlight LineNr ctermfg=darkgray autocmd ColorScheme * highlight Pmenu ctermbg=darkblue ctermfg=black autocmd ColorScheme * highlight PmenuSel ctermbg=lightgray ctermfg=black autocmd ColorScheme * highlight Search ctermbg=darkblue ctermfg=black autocmd ColorScheme * highlight SignColumn ctermbg=none ctermfg=darkblue autocmd ColorScheme * highlight SpellBad ctermbg=darkmagenta \ ctermfg=black autocmd ColorScheme * highlight SpellCap ctermbg=darkmagenta \ ctermfg=black autocmd ColorScheme * highlight StatusLine cterm=bold ctermbg=black \ ctermfg=lightgray autocmd ColorScheme * highlight StatusLineNC cterm=none ctermbg=black \ ctermfg=none autocmd ColorScheme * highlight SyntasticError ctermbg=darkred \ ctermfg=black autocmd ColorScheme * highlight SyntasticErrorSign ctermfg=darkred autocmd ColorScheme * highlight SyntasticWarning ctermbg=darkyellow \ ctermfg=black autocmd ColorScheme * highlight SyntasticWarningSign ctermfg=darkyellow autocmd ColorScheme * highlight todo ctermbg=none ctermfg=darkyellow autocmd ColorScheme * highlight VertSplit cterm=none ctermfg=black autocmd ColorScheme * highlight Visual cterm=none ctermbg=darkgray colorscheme peachpuff else autocmd ColorScheme * highlight VertSplit term=none colorscheme default endif function s:DefaultMatches() call clearmatches() if s:is_color && !&previewwindow && index(['netrw', 'qf'], &filetype) < 0 if &expandtab call matchadd('InvalidWhitespace', '\t') else call matchadd('InvalidWhitespace', '^ \+') endif call matchadd('InvalidWhitespace', '\s\+$') endif endfunction autocmd ColorScheme,BufWinEnter,FileType,TabEnter,WinEnter * call s:DefaultMatches() autocmd BufWinLeave,TabLeave * call clearmatches() function s:TabIndent(...) set noexpandtab let space_count = a:0 >= 1 ? a:1 : 8 let &tabstop = space_count let &shiftwidth = space_count set softtabstop=0 call s:DefaultMatches() endfunction function s:SpacesIndent(...) set expandtab let space_count = a:0 >= 1 ? a:1 : 4 let &tabstop = space_count let &shiftwidth = space_count let &softtabstop = space_count call s:DefaultMatches() endfunction command -nargs=? TabIndent :call s:TabIndent() command -nargs=? SpacesIndent :call s:SpacesIndent() call s:SpacesIndent() if s:is_color syntax on endif let airline_theme = s:is_color ? 'powerlineish' : 'monochrome' let airline_detect_spelllang = 0 let airline#extensions#tabline#enabled = 1 let airline_symbols = {} if s:is_nerd_font if s:is_color let airline_powerline_fonts = 1 else let airline_left_alt_sep = "\ue0b1" let airline_right_alt_sep = "\ue0b3" let airline#extensions#tabline#left_alt_sep = "\ue0b1" let airline#extensions#tabline#right_alt_sep = "\ue0b3" endif let airline_section_z = "\uf13a %l/%L \uf138 %c" let airline_symbols.crypt = "\uf805 " let airline_symbols.paste = "\uf691" let airline_symbols.spell = "A\uf62b" let airline_symbols.branch = "\uf418" let airline_symbols.readonly = "\uf023 " let airline_symbols.whitespace = "\uf038" let syntastic_error_symbol = "\ue231 " let syntastic_warning_symbol = "\uf071 " let syntastic_style_error_symbol = "\ue245 " let syntastic_style_warning_symbol = "\ue245 " else let airline_left_alt_sep = "\u2502" let airline_right_alt_sep = "\u2502" let airline#extensions#tabline#left_alt_sep = "\u2502" let airline#extensions#tabline#right_alt_sep = "\u2502" let airline_section_z = "\u2193%l/%L \u2192%c" let airline_symbols.crypt = 'CRYPT' let airline_symbols.spell = "A\u221a" let airline_symbols.branch = '' let airline_symbols.readonly = 'ro' let airline_symbols.whitespace = '' let syntastic_error_symbol = "!\u2192" let syntastic_warning_symbol = "!\u2192" let syntastic_style_error_symbol = " \u2192" let syntastic_style_warning_symbol = " \u2192" endif let airline_symbols.modified = "\u2022" let airline_symbols.notexists = "\u2022" let airline_symbols.linenr = '' let airline_symbols.maxlinenr = '' let airline#extensions#tabline#show_tabs = 0 let airline#extensions#tabline#show_tab_type = 0 let airline#extensions#tabline#buffer_nr_show = 1 let airline#extensions#tabline#buffer_nr_format = "%u " let airline#extensions#tabline#formatter = 'unique_tail_improved' let airline#extensions#tabline#overflow_marker = "\u2026" let airline#extensions#tabline#tab_nr_type = 1 let airline#extensions#tabline#show_close_button = 0 let airline#extensions#wordcount#enabled = 0 let netrw_banner = 0 let ycm_autoclose_preview_window_after_insertion = 1 let ycm_auto_hover = '' set timeoutlen=2000 autocmd InsertEnter * set timeoutlen=500 autocmd InsertLeave * set timeoutlen=2000 inoremap jj function s:SockHop(...) let args = '' if a:0 let args = ' ' . join(a:000) endif call system('sockhop' . args) endfunction function s:SockHopMake(...) let cmd = 'make "$@"' if a:0 let cmd = cmd . ' ' . join(a:000) endif call system("sockhop .make.sock '" . cmd . "'") endfunction command -nargs=? SockHop :call s:SockHop() command -nargs=? SockHopMake :call s:SockHopMake() nnoremap aa :Ack! -Qw nnoremap ac :Ack! -Qw -t cc nnoremap cc :YcmCompleter GoTo nnoremap cd :YcmDiags nnoremap cf :YcmCompleter FixIt nnoremap ch :YcmCompleter GetDoc nnoremap cr :YcmForceCompileAndDiagnostics nnoremap cs :YcmShowDetailedDiagnostic nnoremap ct :YcmCompleter GetType nnoremap mc :SockHopMake clean nnoremap mm :SockHopMake develop nnoremap mr :SockHopMake run nnoremap r :SockHop .run.sock '"$@"'