" Add encoding for multibyte chars scriptencoding utf-8 " Display filename at bottom of window set laststatus=2 "enable line numbers set number " Highlights the line the cursor is on set cursorline :hi CursorLine cterm=NONE ctermbg=darkred guibg=darkred guifg=white " Syntax Hightlighting syntax on " Enable search highlighting set hlsearch " Set fonts for gui apps {{ if IsGuiApp() if IsWindows() set guifont=Consolas:h10:b elseif IsMac() try set guifont=DejaVu\ Sans\ Mono\ for\ Powerline:h11 catch " Failed to set font, ok with default endtry endif endif " }} " Color Schemes {{ " Set a default color scheme to use let g:default_color = 'wombat256mod' " Gets the value of an env or returns a default function s:val_default(env, default) return !empty(a:env) ? a:env : a:default endfunction " Get color schemes from env variables let s:env_color = s:val_default($VIM_COLOR, g:default_color) let s:env_color_light = s:val_default($VIM_COLOR_LIGHT, s:env_color) let s:env_color_dark = s:val_default($VIM_COLOR_DARK, s:env_color) " Override colors for gui apps if IsGuiApp() let g:default_color = 'solarized' let s:env_color = 'solarized' let s:env_color_light = 'solarized' let s:env_color_dark = 'solarized' endif " Function and command to update colors based on light and dark mode function! UpdateColors() " Detect using an env variable let cmd = 'echo $IS_DARKMODE' " On macOS we can do something a bit more fancy if IsMac() let cmd = 'defaults read -g AppleInterfaceStyle' endif let dark_mode = substitute(system(cmd), '\n', '', 'g') " Set colorscheme and background based on mode if dark_mode ==# 'Dark' set background=dark if g:colors_name !=# s:env_color_dark execute 'colorscheme ' . s:env_color_dark endif else set background=light if g:colors_name !=# s:env_color_light execute 'colorscheme ' . s:env_color_light endif endif endfunction command! UpdateColors call UpdateColors() nnoremap cc :UpdateColors " Disabled because this is slow... augroup AutoColors autocmd FocusGained * call UpdateColors() augroup END try execute 'colorscheme ' . s:env_color " Disabled because this slows startup call UpdateColors() catch /^Vim\%((\a\+)\)\=:E185/ " Colorschemes not installed yet " This happens when first installing bundles endtry " }} " Set xterm and screen/tmux's title {{ set titlestring=vim\ %{expand(\"%t\")} if &term =~# '^screen' " pretend this is xterm. it probably is anyway, but if term is left as " `screen`, vim doesn't understand ctrl-arrow. if &term ==# 'screen-256color' set term=xterm-256color else set term=xterm endif " gotta set these *last*, since `set term` resets everything set t_ts=k set t_fs=\ set t_ut= endif set notitle " }}