mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-02 22:40:06 +08:00
chore(cheat): use bundle vim-cheat
This commit is contained in:
parent
ac74bffee5
commit
4446ad9663
@ -19,7 +19,7 @@ function! SpaceVim#layers#tools#plugins() abort
|
||||
call add(plugins, ['lymslive/vnote', { 'merged' : 0}])
|
||||
call add(plugins, [g:_spacevim_root_dir . 'bundle/rainbow', { 'merged' : 0}])
|
||||
call add(plugins, ['mbbill/fencview', { 'on_cmd' : 'FencAutoDetect'}])
|
||||
call add(plugins, ['wsdjeg/vim-cheat', { 'on_cmd' : 'Cheat'}])
|
||||
call add(plugins, [g:_spacevim_root_dir . 'bundle/vim-cheat', { 'on_cmd' : 'Cheat'}])
|
||||
call add(plugins, ['wsdjeg/Mysql.vim', { 'on_cmd' : 'SQLGetConnection'}])
|
||||
call add(plugins, ['wsdjeg/SourceCounter.vim', { 'on_cmd' : 'SourceCounter'}])
|
||||
call add(plugins, [g:_spacevim_root_dir . 'bundle/calendar.vim', { 'on_cmd' : 'Calendar'}])
|
||||
|
36
bundle/vim-cheat/.travis.yml
vendored
Normal file
36
bundle/vim-cheat/.travis.yml
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
language: python
|
||||
|
||||
cache:
|
||||
pip: true
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- LINT=vimlint-errors
|
||||
- LINT=vimlint
|
||||
- LINT=vint-errors
|
||||
- LINT=vint
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- env: LINT=vimlint
|
||||
- env: LINT=vint
|
||||
|
||||
install:
|
||||
- |
|
||||
if [ "${LINT#vimlint}" != "$LINT" ]; then
|
||||
git clone --depth=1 https://github.com/syngan/vim-vimlint /tmp/vimlint
|
||||
git clone --depth=1 https://github.com/ynkdir/vim-vimlparser /tmp/vimlparser
|
||||
elif [ "${LINT#vint}" != "$LINT" ]; then
|
||||
virtualenv /tmp/vint && source /tmp/vint/bin/activate && pip install vim-vint
|
||||
fi
|
||||
script:
|
||||
- |
|
||||
if [ "$LINT" = "vimlint" ]; then
|
||||
sh /tmp/vimlint/bin/vimlint.sh -l /tmp/vimlint -p /tmp/vimlparser .
|
||||
elif [ "$LINT" = "vimlint-errors" ]; then
|
||||
sh /tmp/vimlint/bin/vimlint.sh -E -l /tmp/vimlint -p /tmp/vimlparser .
|
||||
elif [ "$LINT" = "vint" ]; then
|
||||
vint .
|
||||
elif [ "$LINT" = "vint-errors" ]; then
|
||||
vint --error .
|
||||
fi
|
10
bundle/vim-cheat/.vintrc.yaml
vendored
Normal file
10
bundle/vim-cheat/.vintrc.yaml
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
cmdargs:
|
||||
# Checking more strictly
|
||||
severity: style_problem
|
||||
|
||||
# Enable coloring
|
||||
color: true
|
||||
|
||||
policies:
|
||||
ProhibitImplicitScopeVariable:
|
||||
enabled: false
|
21
bundle/vim-cheat/LICENSE.md
vendored
Normal file
21
bundle/vim-cheat/LICENSE.md
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Wang Shidong
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
14
bundle/vim-cheat/README.md
vendored
Normal file
14
bundle/vim-cheat/README.md
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
### vim-cheat
|
||||
[![Build Status](https://travis-ci.org/wsdjeg/vim-cheat.svg?branch=master)](https://travis-ci.org/wsdjeg/vim-cheat)
|
||||
|
||||
#### Usage:
|
||||
|
||||
```
|
||||
:Cheat <Tab>
|
||||
will autocomplete the available cheatsheets.
|
||||
```
|
||||
Default cheatsheets are available in [simplecheats](https://github.com/artur-shaik/simplecheats).
|
||||
|
||||
#### thanks:
|
||||
1. [cheat.vim](https://github.com/vim-scripts/cheat.vim)
|
||||
2. [simplecheats](https://github.com/artur-shaik/simplecheats)
|
30
bundle/vim-cheat/autoload/cheat.vim
vendored
Normal file
30
bundle/vim-cheat/autoload/cheat.vim
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
" vim-cheat
|
||||
"
|
||||
" Maintainer: Wang Shidong <wsdjeg@outlook.com>
|
||||
" License: MIT
|
||||
" Version: 0.1.0
|
||||
|
||||
function! s:_update_git() abort
|
||||
echom "Update git"
|
||||
let tips = eval(join(systemlist('curl -s https://raw.githubusercontent.com/git-tips/tips/master/tips.json')))
|
||||
|
||||
let t = ''
|
||||
for tip in tips
|
||||
let t = t . "###" . tip.title . "\n"
|
||||
let t = t . "```\n" . tip.tip . "\n```\n\n"
|
||||
endfor
|
||||
|
||||
call writefile(split(t,"\n"), g:cheats_dir . 'git.md')
|
||||
endfunction
|
||||
|
||||
function! cheat#Update(cheatName) abort
|
||||
if exists("*s:_update_" . a:cheatName)
|
||||
exec "call s:_update_" . a:cheatName ."()"
|
||||
else
|
||||
echohl WarningMsg | echom "Has no upstream for " . a:cheatName | echohl None
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! cheat#List_sheets() abort
|
||||
return map(split(globpath(g:cheats_dir, '*'),'\n'), "fnamemodify(v:val, ':t')")
|
||||
endfunction
|
112
bundle/vim-cheat/plugin/cheat.vim
vendored
Normal file
112
bundle/vim-cheat/plugin/cheat.vim
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
" vim-cheat
|
||||
"
|
||||
" Maintainer: Wang Shidong <wsdjeg@outlook.com>
|
||||
" License: MIT
|
||||
" Version: 0.1.0
|
||||
|
||||
if exists('g:loaded_cheat')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Set the path to the cheat sheets cache file, can be overriden from
|
||||
" .vimrc with:
|
||||
" let g:cheats_dir = '/path/to/your/cache/file'
|
||||
let g:cheats_dir = get(g:, 'cheats_dir', $HOME . '/.cheat/')
|
||||
|
||||
" Set the split direction for the output buffer.
|
||||
" It can be overriden from .vimrc as well, by setting g:cheats_split to hor | ver
|
||||
let s:cheats_split = get(g:, 'cheats_split', 'hor')
|
||||
|
||||
" Constants
|
||||
let s:splitCmdMap = { 'ver' : 'vsp' , 'hor' : 'sp' }
|
||||
|
||||
let s:cheat_options = {"-add" : "add new cheatsheet" , "-update" : "update current cheatsheet"}
|
||||
|
||||
" Func Defs
|
||||
func! FindOrCreateOutWin(bufName)
|
||||
let l:outWinNr = bufwinnr(a:bufName)
|
||||
let l:outBufNr = bufnr(a:bufName)
|
||||
|
||||
" Find or create a window for the bufName
|
||||
if l:outWinNr == -1
|
||||
" Create a new window
|
||||
exec s:splitCmdMap[s:cheats_split]
|
||||
|
||||
let l:outWinNr = bufwinnr('%')
|
||||
if l:outBufNr != -1
|
||||
" The buffer already exists. Open it here.
|
||||
exec 'b'.l:outBufNr
|
||||
endif
|
||||
" Jump back to the previous window the user was editing in.
|
||||
exec 'wincmd p'
|
||||
endif
|
||||
|
||||
" Find the buffer number or create one for bufName
|
||||
if l:outBufNr == -1
|
||||
" Jump to the output window
|
||||
exec l:outWinNr.' wincmd w'
|
||||
" Open a new output buffer
|
||||
exec 'e '.a:bufName
|
||||
setlocal noswapfile
|
||||
setlocal buftype=nofile
|
||||
setlocal wrap
|
||||
let l:outBufNr = bufnr('%')
|
||||
" Jump back to the previous window the user was editing in.
|
||||
exec 'wincmd p'
|
||||
endif
|
||||
return l:outBufNr
|
||||
endf
|
||||
|
||||
func! RunAndRedirectOut(cheatName, bufName)
|
||||
" Change to the output buffer window
|
||||
let l:outWinNr = bufwinnr(a:bufName)
|
||||
exec l:outWinNr.' wincmd w'
|
||||
|
||||
call append(0, readfile(fnameescape(g:cheats_dir . a:cheatName)))
|
||||
normal! gg
|
||||
endf
|
||||
|
||||
func! CheatCompletion(ArgLead, CmdLine, CursorPos)
|
||||
echom "arglead:[".a:ArgLead ."] cmdline:[" .a:CmdLine ."] cursorpos:[" .a:CursorPos ."]"
|
||||
if a:ArgLead =~ '^-\w*'
|
||||
return join(keys(s:cheat_options),"\n")
|
||||
endif
|
||||
return join(cheat#List_sheets(),"\n")
|
||||
endf
|
||||
|
||||
func! Cheat(...)
|
||||
let l:c = a:0 != 0 ? a:000 : split(input('Cheat Sheet: ', '', 'custom,CheatCompletion'),' ')
|
||||
if len(l:c) == 1 && l:c[0] !~ '^-\w*'
|
||||
let l:outBuf = FindOrCreateOutWin('-cheat_output-')
|
||||
call RunAndRedirectOut(l:c[0], l:outBuf)
|
||||
elseif len(l:c) == 2 && l:c[0] ==# '-add' && l:c[1] !~ '^-\w*'
|
||||
if index(cheat#List_sheets(), l:c[1]) == -1
|
||||
exe "split ". g:cheats_dir . fnameescape(l:c[1])
|
||||
else
|
||||
echohl WarningMsg | echom "cheets " . l:c[1] . " already exists" | echohl None
|
||||
endif
|
||||
elseif len(l:c) == 2 && l:c[0] ==# '-update' && l:c[1] !~ '^-\w*'
|
||||
call cheat#Update(l:c[1])
|
||||
endif
|
||||
endf
|
||||
|
||||
func! CheatCurrent()
|
||||
call Cheat(expand('<cword>'))
|
||||
endf
|
||||
|
||||
" Commands Mappings
|
||||
comm! -nargs=* -complete=custom,CheatCompletion Cheat :call Cheat(<f-args>)
|
||||
comm! CheatCurrent :call CheatCurrent()
|
||||
|
||||
" Disable default mappings
|
||||
" let g:Cheat_EnableDefaultMappings = 0
|
||||
if get(g:, 'Cheat_EnableDefaultMappings', 1)
|
||||
if empty(maparg('<Leader>C', 'n'))
|
||||
nnoremap <Leader>C :call Cheat()<CR>
|
||||
endif
|
||||
" Ask for cheatsheet for the word under cursor
|
||||
if empty(maparg('<Leader>ch', 'n'))
|
||||
nmap <leader>ch :call CheatCurrent()<CR>
|
||||
endif
|
||||
endif
|
||||
let g:loaded_cheat = 1
|
Loading…
Reference in New Issue
Block a user