vim-settings/vim/rc/ui.rc.vim

127 lines
3.3 KiB
VimL
Raw Permalink Normal View History

2019-10-24 20:58:45 +00:00
" Add encoding for multibyte chars
scriptencoding utf-8
2015-03-26 17:09:26 +00:00
" Display filename at bottom of window
2019-10-24 20:58:45 +00:00
set laststatus=2
2015-03-26 17:09:26 +00:00
"enable line numbers
2019-10-24 20:58:45 +00:00
set number
2015-03-26 17:09:26 +00:00
" 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
2019-10-24 20:58:45 +00:00
set hlsearch
2015-03-26 17:09:26 +00:00
" Set fonts for gui apps {{
if IsGuiApp()
if IsWindows()
set guifont=Consolas:h10:b
elseif IsMac()
try
set guifont=DejaVu\ Sans\ Mono\ for\ Powerline:h12
catch
" Failed to set font, ok with default
endtry
endif
endif
" }}
2015-03-26 17:09:26 +00:00
" Color Schemes {{
" Set a default color scheme to use
let g:default_color = 'wombat256mod'
" Gets the value of an env or returns a default
2019-11-02 00:19:22 +00:00
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
2019-11-02 00:19:22 +00:00
" Set the colorscheme if it's different than the current
function! s:maybe_set_color(colorscheme_name)
" On some versions of vim, g:colors_name doesn't seem to exist on start
if !exists('g:colors_name') || g:colors_name !=# a:colorscheme_name
execute 'colorscheme ' . a:colorscheme_name
endif
endfunction
" Function and command to update colors based on light and dark mode
function! UpdateColors()
" Detect using an env variable
2019-10-24 20:58:45 +00:00
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'
if &background !=# 'dark'
set background=dark
endif
2019-11-02 00:19:22 +00:00
call s:maybe_set_color(s:env_color_dark)
else
if &background !=# 'light'
set background=light
endif
2019-11-02 00:19:22 +00:00
call s:maybe_set_color(s:env_color_light)
endif
endfunction
command! UpdateColors call UpdateColors()
nnoremap <leader>cc :UpdateColors<CR>
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
2019-10-21 23:00:11 +00:00
" }}
" Set xterm and screen/tmux's title {{
set titlestring=vim\ %{expand(\"%t\")}
2019-10-24 20:58:45 +00:00
if &term =~# '^screen'
2019-10-21 23:00:11 +00:00
" pretend this is xterm. it probably is anyway, but if term is left as
" `screen`, vim doesn't understand ctrl-arrow.
2019-10-24 20:58:45 +00:00
if &term ==# 'screen-256color'
2019-10-21 23:00:11 +00:00
set term=xterm-256color
else
set term=xterm
endif
if exists('+termguicolors')
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
2019-10-21 23:00:11 +00:00
" gotta set these *last*, since `set term` resets everything
set t_ts=k
set t_fs=\
set t_ut=
endif
set notitle
" }}