diff options
Diffstat (limited to 'vim/autoload')
-rw-r--r-- | vim/autoload/togglebg.vim | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/vim/autoload/togglebg.vim b/vim/autoload/togglebg.vim new file mode 100644 index 0000000..108511f --- /dev/null +++ b/vim/autoload/togglebg.vim @@ -0,0 +1,55 @@ +" Toggle Background +" Modified: 2011 Apr 29 +" Maintainer: Ethan Schoonover +" License: OSI approved MIT license + +if exists("g:loaded_togglebg") + finish +endif +let g:loaded_togglebg = 1 + +" noremap is a bit misleading here if you are unused to vim mapping. +" in fact, there is remapping, but only of script locally defined remaps, in +" this case <SID>TogBG. The <script> argument modifies the noremap scope in +" this regard (and the noremenu below). +nnoremap <unique> <script> <Plug>ToggleBackground <SID>TogBG +inoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>a +vnoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>gv +nnoremenu <script> Window.Toggle\ Background <SID>TogBG +inoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>a +vnoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>gv +tmenu Window.Toggle\ Background Toggle light and dark background modes +nnoremenu <script> ToolBar.togglebg <SID>TogBG +inoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>a +vnoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>gv +tmenu ToolBar.togglebg Toggle light and dark background modes +noremap <SID>TogBG :call <SID>TogBG()<CR> + +function! s:TogBG() + let &background = ( &background == "dark"? "light" : "dark" ) + if exists("g:colors_name") + exe "colorscheme " . g:colors_name + endif +endfunction + +if !exists(":ToggleBG") + command ToggleBG :call s:TogBG() +endif + +function! ToggleBackground() + echo "Please update your ToggleBackground mapping. ':help togglebg' for information." +endfunction + +function! togglebg#map(mapActivation) + try + exe "silent! nmap <unique> ".a:mapActivation." <Plug>ToggleBackground" + exe "silent! imap <unique> ".a:mapActivation." <Plug>ToggleBackground" + exe "silent! vmap <unique> ".a:mapActivation." <Plug>ToggleBackground" + finally + return 0 + endtry +endfunction + +if !exists("no_plugin_maps") && !hasmapto('<Plug>ToggleBackground') + call togglebg#map("<F5>") +endif |