mirror of
https://github.com/ViViDboarder/vim-settings.git
synced 2024-11-16 20:26:27 +00:00
105 lines
2.6 KiB
VimL
105 lines
2.6 KiB
VimL
" 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
|
||
|
||
" Color Schemes {{
|
||
|
||
" Function and command to update colors based on light and dark mode
|
||
function! UpdateColors()
|
||
" Get the light color or default to VIM_COLOR
|
||
let light_color = $VIM_COLOR
|
||
if !empty($VIM_COLOR_LIGHT)
|
||
let light_color = $VIM_COLOR_LIGHT
|
||
endif
|
||
" Get the dark color or default to VIM_COLOR
|
||
let dark_color = $VIM_COLOR
|
||
if !empty($VIM_COLOR_DARK)
|
||
let dark_color = $VIM_COLOR_DARK
|
||
endif
|
||
" Detect using an env variable
|
||
let cmd = 'echo $IS_DARKMODE'
|
||
" On macOS we can do something a bit more fancy
|
||
if IsMac()
|
||
let cmd = "osascript
|
||
\ -e 'tell application \"System Events\"'
|
||
\ -e 'tell appearance preferences'
|
||
\ -e 'return dark mode'
|
||
\ -e 'end tell'
|
||
\ -e 'end tell'"
|
||
endif
|
||
let dark_mode = substitute(system(cmd), '\n', '', 'g')
|
||
" Set colorscheme and background based on mode
|
||
if dark_mode ==# 'true'
|
||
execute 'colorscheme ' . dark_color
|
||
set background=dark
|
||
else
|
||
execute 'colorscheme ' . light_color
|
||
set background=light
|
||
endif
|
||
endfunction
|
||
command! UpdateColors call UpdateColors()
|
||
|
||
" Set theme based on $VIM_COLOR variable
|
||
try
|
||
if !empty($VIM_COLOR)
|
||
colorscheme $VIM_COLOR
|
||
else
|
||
" Prefered default colorscheme
|
||
colorscheme wombat256mod
|
||
endif
|
||
call UpdateColors()
|
||
catch /^Vim\%((\a\+)\)\=:E185/
|
||
" Colorschemes not installed yet
|
||
" This happens when first installing bundles
|
||
colorscheme default
|
||
endtry
|
||
" }}
|
||
|
||
" Set gui specific values {{
|
||
if IsGuiApp()
|
||
colorscheme wombat256mod
|
||
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
|
||
" }}
|
||
|
||
" 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
|
||
" }}
|