Vimana
view release on metacpan or search on metacpan
t/data/gist.vim view on Meta::CPAN
" delete the gist. (should be work on gist buffer)
" password authentication is needed.
"
" :Gist -e foo.js
" edit the gist with name 'foo.js'. (shoud be work on gist buffer)
"
" :Gist XXXXX
" edit gist XXXXX.
"
" :Gist -c XXXXX.
" get gist XXXXX and put to clipboard.
"
" :Gist -l
" list gists from mine.
"
" :Gist -l mattn
" list gists from mattn.
"
" :Gist -la
" list gists from all.
"
" Tips:
" * if set g:gist_clip_command, gist.vim will copy the gist code
" with option '-c'.
"
" # mac
" let g:gist_clip_command = 'pbcopy'
"
" # linux
" let g:gist_clip_command = 'xclip -selection clipboard'
"
" # others(cygwin?)
" let g:gist_clip_command = 'putclip'
"
" * if you want to detect filetype from gist's filename...
"
" # detect filetype if vim failed auto-detection.
" let g:gist_detect_filetype = 1
"
" # detect filetype always.
t/data/gist.vim view on Meta::CPAN
endfunction
function! s:GistWrite(fname)
if a:fname == expand("%:p")
Gist -e
else
exe "w".(v:cmdbang ? "!" : "")." ".fnameescape(v:cmdarg)." ".fnameescape(a:fname)
endif
endfunction
function! s:GistGet(user, token, gistid, clipboard)
let url = 'http://gist.github.com/'.a:gistid.'.txt'
let winnum = bufwinnr(bufnr('gist:'.a:gistid))
if winnum != -1
if winnum != bufwinnr('%')
exe "normal \<c-w>".winnum."w"
endif
setlocal modifiable
else
exec 'silent split gist:'.a:gistid
endif
filetype detect
exec '%d _'
exec 'silent 0r! curl -s '.url
setlocal buftype=acwrite bufhidden=delete noswapfile
setlocal nomodified
doau StdinReadPost <buffer>
normal! gg
if (&ft == '' && g:gist_detect_filetype == 1) || g:gist_detect_filetype == 2
call s:GistDetectFiletype(a:gistid)
endif
if a:clipboard
if exists('g:gist_clip_command')
exec 'silent w !'.g:gist_clip_command
else
normal! ggVG"+y
endif
endif
au BufWriteCmd <buffer> call s:GistWrite(expand("<amatch>"))
endfunction
function! s:GistListAction()
t/data/gist.vim view on Meta::CPAN
end
let bufname = bufname("%")
let user = g:github_user
let token = g:github_token
let gistid = ''
let gistls = ''
let gistnm = ''
let private = 0
let multibuffer = 0
let clipboard = 0
let deletepost = 0
let editpost = 0
let listmx = '^\(-l\|--list\)\s*\([^\s]\+\)\?$'
let bufnamemx = '^gist:\([0-9a-f]\+\)$'
let args = (a:0 > 0) ? split(a:1, ' ') : []
for arg in args
if arg =~ '^\(-la\|--listall\)$'
let gistls = '-all'
elseif arg =~ '^\(-l\|--list\)$'
t/data/gist.vim view on Meta::CPAN
else
let gistls = g:github_user
endif
elseif arg =~ '^\(-m\|--multibuffer\)$'
let multibuffer = 1
elseif arg =~ '^\(-p\|--private\)$'
let private = 1
elseif arg =~ '^\(-a\|--anonymous\)$'
let user = ''
let token = ''
elseif arg =~ '^\(-c\|--clipboard\)$'
let clipboard = 1
elseif arg =~ '^\(-d\|--delete\)$' && bufname =~ bufnamemx
let deletepost = 1
let gistid = substitute(bufname, bufnamemx, '\1', '')
elseif arg =~ '^\(-e\|--edit\)$' && bufname =~ bufnamemx
let editpost = 1
let gistid = substitute(bufname, bufnamemx, '\1', '')
elseif len(gistnm) == 0
if editpost == 1 || deletepost == 1
let gistnm = arg
elseif len(gistls) > 0
t/data/gist.vim view on Meta::CPAN
echoerr 'Invalid arguments'
unlet args
return 0
endif
endfor
unlet args
"echo "gistid=".gistid
"echo "gistls=".gistls
"echo "gistnm=".gistnm
"echo "private=".private
"echo "clipboard=".clipboard
"echo "editpost=".editpost
"echo "deletepost=".deletepost
if len(gistls) > 0
call s:GistList(user, token, gistls)
elseif len(gistid) > 0 && editpost == 0 && deletepost == 0
call s:GistGet(user, token, gistid, clipboard)
else
if multibuffer == 1
let url = s:GistPostBuffers(user, token, private)
else
let content = join(getline(a:line1, a:line2), "\n")
if editpost == 1
let url = s:GistUpdate(user, token, content, gistid, gistnm)
elseif deletepost == 1
let url = s:GistDelete(user, token, gistid)
else
( run in 1.093 second using v1.01-cache-2.11-cpan-81fc1098f69 )