let vim_itunes_list_buffer_name = "/tmp/vimitunes_playlist4vi_" . system("echo -n $RANDOM") if !exists('g:vim_itunes_playlist') let vim_itunes_playlist = "音乐" endif command -nargs=0 IT :call VimiTunesListInit() function VimiTunesListInit() let s:bufn = bufnr(g:vim_itunes_list_buffer_name) if s:bufn > -1 exe "silent " . s:bufn . "sb" else exe "silent split " . g:vim_itunes_list_buffer_name exe "silent setlocal nomodifiable" exe "silent setlocal nu" exe "silent setlocal cul" exe "silent setlocal hlsearch" exe "silent setlocal nospell" exe "silent setlocal noswapfile" exe "silent setlocal nowrap" exe "silent setlocal statusline=VimiTunesList\\ [\\ reaload\\ playlist]" noremap :call VimiTunesListPlay() noremap :call VimiTunesListLoad("1") exe "silent au VimLeave * :!rm " . g:vim_itunes_list_buffer_name call VimiTunesListLoad("0") endif endfunction function VimiTunesListLoad(reload) let s:width = winwidth(0) echo "Loading playlist ..." let s:xx = system("vimitunes getlist " . s:width . " " . a:reload . " \"" . g:vim_itunes_playlist . "\" > " . g:vim_itunes_list_buffer_name) exe "silent edit " . g:vim_itunes_list_buffer_name exe "silent redraw!" endfunction function VimiTunesListPlay() let s:lnum = line(".") let s:xx = system("vimitunes play " . s:lnum . " \"" . g:vim_itunes_playlist . "\"") endfunction