Files
spacevim/bundle/screensaver.vim/autoload/screensaver/util.vim
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

90 lines
2.5 KiB
VimL

" =============================================================================
" Filename: autoload/screensaver/util.vim
" Author: itchyny
" License: MIT License
" Last Change: 2015/03/29 07:26:31.
" =============================================================================
let s:save_cpo = &cpo
set cpo&vim
function! screensaver#util#sum(xs) abort
let n = 0
for i in range(len(a:xs))
let n += a:xs[i]
endfor
return n
endfunction
function! screensaver#util#message(msg) abort
redraw
echo ''
for msg in split(a:msg, '\n')
echom msg
endfor
endfunction
function! screensaver#util#error(msg) abort
redraw
echo ''
echohl ErrorMsg
for msg in split(a:msg, '\n')
echom msg
endfor
echohl None
endfunction
if exists('*strftime')
function! screensaver#util#time() abort
return [strftime('%H') * 1, strftime('%M') * 1, strftime('%S') * 1]
endfunction
else
function! screensaver#util#time() abort
return [system('date "+%H"') * 1, system('date "+%M"') * 1, system('date "+%S"') * 1]
endfunction
endif
function! screensaver#util#nmapall(mapping) abort
let save_cpo = &cpo
set cpo&vim
let nmaps = split(screensaver#util#capture('nmap'), '\n')
let cs = map(filter(map(nmaps, 'v:val[3:]'),
\ 'v:val !~# "screensaver\\|^<Plug>\\|^<[-A-Z]\\+> " && v:val =~# "^\\S\\S\\+"'),
\ 'substitute(v:val, "\\s.*", "", "")')
for c in cs
exec 'nmap <buffer> ' . c . ' ' . a:mapping
endfor
let cs = range(0, 57) + range(59, 255)
for c in cs
exec 'nmap <buffer> <Char-' . c . '> ' . a:mapping
exec 'nmap <buffer> <S-Char-' . c . '> ' . a:mapping
exec 'nmap <buffer> <C-Char-' . c . '> ' . a:mapping
endfor
let cs = [ 'Left', 'Right', 'Up', 'Down', 'Esc', 'Cr', 'Help', 'Undo',
\ 'Home', 'End', 'Bs', 'Del', 'PageUp', 'PageDown', 'Bar', 'Insert', 'Mouse',
\ 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12',
\ ]
for c in cs
exec 'nmap <buffer> <' . c . '> ' . a:mapping
exec 'nmap <buffer> <C-' . c . '> ' . a:mapping
exec 'nmap <buffer> <S-' . c . '> ' . a:mapping
endfor
let &cpo = save_cpo
endfunction
function! screensaver#util#capture(cmd) abort
let [save_verbose, save_verbosefile] = [&verbose, &verbosefile]
try
set verbose=0 verbosefile=
redir => res
silent! execute a:cmd
finally
redir END
let [&verbose, &verbosefile] = [save_verbose, save_verbosefile]
endtry
return res
endfunction
let &cpo = s:save_cpo
unlet s:save_cpo