From 4b5c56144e848a5d2f7ae4d1377611ebf94c467e Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 7 Nov 2010 07:00:26 -0500 Subject: [PATCH] I should sleep. --- .vim/autoload/pathogen.vim | 142 --- .vim/bundle/delimitMate | 1 - .vim/bundle/pluginkiller.vba | 753 ------------ .../autoload/pythoncomplete.vim | 625 ---------- .vim/bundle/python_syntax/ftplugin/python.vim | 374 ------ .../rainbow/plugin/rainbow_parenthsis.vim | 58 - .../bundle/snipmate/after/plugin/snipMate.vim | 35 - .vim/bundle/snipmate/autoload/snipMate.vim | 433 ------- .vim/bundle/snipmate/doc/snipMate.txt | 286 ----- .../snipmate/ftplugin/html_snip_helper.vim | 10 - .vim/bundle/snipmate/plugin/snipMate.vim | 247 ---- .vim/bundle/snipmate/snippets/_.snippets | 7 - .vim/bundle/snipmate/snippets/autoit.snippets | 66 - .vim/bundle/snipmate/snippets/c.snippets | 110 -- .vim/bundle/snipmate/snippets/cpp.snippets | 30 - .vim/bundle/snipmate/snippets/html.snippets | 190 --- .vim/bundle/snipmate/snippets/java.snippets | 78 -- .../snipmate/snippets/javascript.snippets | 74 -- .vim/bundle/snipmate/snippets/mako.snippets | 54 - .vim/bundle/snipmate/snippets/objc.snippets | 184 --- .vim/bundle/snipmate/snippets/perl.snippets | 91 -- .vim/bundle/snipmate/snippets/php.snippets | 216 ---- .vim/bundle/snipmate/snippets/python.snippets | 86 -- .vim/bundle/snipmate/snippets/ruby.snippets | 420 ------- .vim/bundle/snipmate/snippets/sh.snippets | 28 - .../bundle/snipmate/snippets/snippet.snippets | 7 - .vim/bundle/snipmate/snippets/tcl.snippets | 92 -- .vim/bundle/snipmate/snippets/tex.snippets | 115 -- .vim/bundle/snipmate/snippets/vim.snippets | 32 - .vim/bundle/snipmate/snippets/zsh.snippets | 58 - .vim/bundle/snipmate/syntax/snippet.vim | 19 - .vim/bundle/sparkup/README.txt | 23 - .vim/bundle/sparkup/ftplugin/html/sparkup.py | 1087 ----------------- .vim/bundle/sparkup/ftplugin/html/sparkup.vim | 74 -- .vim/bundle/tcomment_vim | 1 - .vim/bundle/vim-fugitive | 1 - .vim/bundle/vimball/autoload/vimball.vim | 737 ----------- .vim/bundle/vimball/doc/pi_vimball.txt | 231 ---- .vim/bundle/vimball/plugin/vimballPlugin.vim | 36 - vimrc | 109 ++ 40 files changed, 109 insertions(+), 7111 deletions(-) delete mode 100644 .vim/autoload/pathogen.vim delete mode 160000 .vim/bundle/delimitMate delete mode 100644 .vim/bundle/pluginkiller.vba delete mode 100644 .vim/bundle/python_complete/autoload/pythoncomplete.vim delete mode 100644 .vim/bundle/python_syntax/ftplugin/python.vim delete mode 100644 .vim/bundle/rainbow/plugin/rainbow_parenthsis.vim delete mode 100644 .vim/bundle/snipmate/after/plugin/snipMate.vim delete mode 100644 .vim/bundle/snipmate/autoload/snipMate.vim delete mode 100644 .vim/bundle/snipmate/doc/snipMate.txt delete mode 100644 .vim/bundle/snipmate/ftplugin/html_snip_helper.vim delete mode 100644 .vim/bundle/snipmate/plugin/snipMate.vim delete mode 100644 .vim/bundle/snipmate/snippets/_.snippets delete mode 100644 .vim/bundle/snipmate/snippets/autoit.snippets delete mode 100644 .vim/bundle/snipmate/snippets/c.snippets delete mode 100644 .vim/bundle/snipmate/snippets/cpp.snippets delete mode 100644 .vim/bundle/snipmate/snippets/html.snippets delete mode 100644 .vim/bundle/snipmate/snippets/java.snippets delete mode 100644 .vim/bundle/snipmate/snippets/javascript.snippets delete mode 100644 .vim/bundle/snipmate/snippets/mako.snippets delete mode 100644 .vim/bundle/snipmate/snippets/objc.snippets delete mode 100644 .vim/bundle/snipmate/snippets/perl.snippets delete mode 100644 .vim/bundle/snipmate/snippets/php.snippets delete mode 100644 .vim/bundle/snipmate/snippets/python.snippets delete mode 100644 .vim/bundle/snipmate/snippets/ruby.snippets delete mode 100644 .vim/bundle/snipmate/snippets/sh.snippets delete mode 100644 .vim/bundle/snipmate/snippets/snippet.snippets delete mode 100644 .vim/bundle/snipmate/snippets/tcl.snippets delete mode 100644 .vim/bundle/snipmate/snippets/tex.snippets delete mode 100644 .vim/bundle/snipmate/snippets/vim.snippets delete mode 100644 .vim/bundle/snipmate/snippets/zsh.snippets delete mode 100644 .vim/bundle/snipmate/syntax/snippet.vim delete mode 100644 .vim/bundle/sparkup/README.txt delete mode 100755 .vim/bundle/sparkup/ftplugin/html/sparkup.py delete mode 100644 .vim/bundle/sparkup/ftplugin/html/sparkup.vim delete mode 160000 .vim/bundle/tcomment_vim delete mode 160000 .vim/bundle/vim-fugitive delete mode 100644 .vim/bundle/vimball/autoload/vimball.vim delete mode 100644 .vim/bundle/vimball/doc/pi_vimball.txt delete mode 100644 .vim/bundle/vimball/plugin/vimballPlugin.vim create mode 100755 vimrc diff --git a/.vim/autoload/pathogen.vim b/.vim/autoload/pathogen.vim deleted file mode 100644 index 6f0a4e3..0000000 --- a/.vim/autoload/pathogen.vim +++ /dev/null @@ -1,142 +0,0 @@ -" pathogen.vim - path option manipulation -" Maintainer: Tim Pope -" Version: 1.2 - -" Install in ~/.vim/autoload (or ~\vimfiles\autoload). -" -" API is documented below. - -if exists("g:loaded_pathogen") || &cp - finish -endif -let g:loaded_pathogen = 1 - -" Split a path into a list. -function! pathogen#split(path) abort " {{{1 - if type(a:path) == type([]) | return a:path | endif - let split = split(a:path,'\\\@") - - " get start/stop if s:pkfile exists already - if filereadable(s:pkfile) - if serverlist() !~ '\' -" call Decho("can't find remote PLUGINKILLER; removing s:pkfile<".s:pkfile.">") - let response= confirm("Is it ok to delete ".s:pkfile."?","&yes\n&no",1) - if response == 1 - call delete(s:pkfile) - else - echo "PluginKiller aborted" -" call Dret("pluginkiller#PluginKiller") - return - endif - else -" call Decho("get the start/stop from the remote PLUGINKILLER") - call s:PKGetStartStop() - endif - endif - - " set up the PLUGINKILER server - if serverlist() !~ '\' -" call Decho("set up the PLUGINKILLER server") - call system('gvim --servername PLUGINKILLER '.s:pkfile) - while serverlist() !~ '\' - sleep 25m - endwhile - call remote_send("PLUGINKILLER",":call pluginkiller#RemoteSync()\","serverid") - call remote_send("PLUGINKILLER",":echo \" \"\") - let reply= remote_read(serverid) - call remote_send("PLUGINKILLER",":au VimLeave pluginkiller call pluginkiller#RemoteEnd('".s:pkfile."')\") - endif - - " The following title settings shouldn't hurt, they're just to let you know that the pluginkiller is active. - if !exists("s:oldtitle") - let s:oldtitle= &titlestring - endif - set title titlestring=Plugin\ Killer\ Active - - " record user's current settings - call s:PKRecordSettings() - - " set up troublesome pluginkiller setting list - call s:PKInitSettings() - - if !exists("g:pluginkiller_nofuncmap") && a:nofuncmap == 1 -" call Decho("set up ctrl-f1, ctrl-f2 maps") - ino :call BinSrch(1) - ino :call BinSrch(2) - nno :call BinSrch(1) - nno :call BinSrch(2) - endif - -" call Dret("pluginkiller#PluginKiller") -endfun - -" --------------------------------------------------------------------- -" pluginkiller#RemoteSendStartStop: used by the remote PLUGINKILLER gvim to reply with start/stop {{{2 -fun! pluginkiller#RemoteSendStartStop() - let client= expand("") -" call Dfunc("pluginkiller#RemoteSendStartStop() client<".client.">") - call server2client(client,"let s:pkstart=".g:pkstart."|let s:pkstop=".g:pkstop) -" call Dret("pluginkiller#RemoteSendStartStop : pkstart=".g:pkstart." pkstop=".g:pkstop) -endfun - -" --------------------------------------------------------------------- -" pluginkiller#RemoteSync: {{{2 -fun! pluginkiller#RemoteSync() - let client= expand("") -" call Dfunc("pluginkiller#RemoteSync()") - call server2client(client,"ready") -" call Dret("pluginkiller#RemoteSync") -endfun - -" --------------------------------------------------------------------- -" pluginkiller#RemoteSettings: called by remote PLUGINKILLER so that it, at least, {{{2 -" has acceptable options. -fun! pluginkiller#RemoteSettings() -" call Dfunc("pluginkiller#RemoteSettings()") - - set ai&vim cwh&vim hidden&vim more&vim sj&vim ss&vim sw&vim - set cin&vim cf&vim hls&vim magic&vim spell&vim sb&vim sr&vim - set ci&vim ea&vim ic&vim pi&vim report&vim spr&vim tw&vim - set acd&vim ead&vim im&vim pvh&vim siso&vim sol&vim top&vim - set cb&vim gd&vim js&vim remap&vim so&vim swb&vim ws&vim - set ch&vim go&vim ls&vim scr&vim ei&vim - set ma noswf fo=l nowrap nonu - -" call Dret("pluginkiller#RemoteSettings") -endfun - -" --------------------------------------------------------------------- -" s:BinSrch: {{{2 -fun! s:BinSrch(msg) -" call Dfunc("s:BinSrch(msg=".a:msg."<".["reset","good","bad","back"][a:msg].">)") -" call Decho("s:pkstart= setting#".s:pkstart."<".s:pklist[s:pkstart].">") -" call Decho("s:pkstop = setting#".s:pkstop."<".s:pklist[s:pkstop].">") -" call Decho("s:pkhist".string(s:pkhist)) - - " restore user settings - call s:PKRestoreSettings() - - if exists("s:pkinit") && a:msg == s:PluginKillerGood && s:pkstart == 0 && s:pkstop == (s:pkqty - 1) - call s:PKMesg("Congratuations -- looks like your plugin already handles all pluginkiller's settings!") -" call Dret("s:BinSrch") - return - endif - - if a:msg == s:PluginKillerReset - " use all troublesome pluginkiller settings - let s:pkstart = 0 - let s:pkstop = s:pkqty - 1 - let s:pkhist = [] - let s:pkinit = 1 - - elseif a:msg == s:PluginKillerGood - let histlen = len(s:pkhist) - if histlen > 0 - let prvhist = s:pkhist[histlen-1] - let s:pkstart = (prvhist[0] + prvhist[1])/2 + 1 - let s:pkstop = prvhist[1] - else - let s:pkstop = s:pkqty - 1 - let s:pkstart = s:pkstop/2 + 1 - let s:pkhist = [] - endif - call add(s:pkhist,[s:pkstart,s:pkstop]) - let s:pkstop = (s:pkstart + s:pkstop)/2 - -" let s:pkhist = s:pkhist + [s:pkstart,s:pkstop] -" let pkstart = s:pkstop + 1 -" let s:pkstop = s:pkstop + (s:pkstop - s:pkstart) -" let s:pkstart = pkstart -" let s:pkstop = (s:pkstart + s:pkstop)/2 - - elseif a:msg == s:PluginKillerBad - call add(s:pkhist,[s:pkstart,s:pkstop]) - if exists("s:pkinit") - unlet s:pkinit - endif - let s:pkstart = s:pkstart - let s:pkstop = (s:pkstart + s:pkstop)/2 - - elseif a:msg == s:PluginKillerBack - let histlen = len(s:pkhist) - if histlen > 1 - let prvhist = s:pkhist[histlen-2] - let s:pkstart = prvhist[0] - let s:pkstop = prvhist[1] - call remove(s:pkhist,histlen-2) - let s:pkstop = (s:pkstart + s:pkstop)/2 - else - let s:pkstart = 0 - let s:pkstop = s:pkqty - 1 - let s:pkhist = [] - let s:pkinit = 1 - endif - endif - - if s:pkstart >= s:pkstop -" call Decho("[s:pkstart=".s:pkstart."] == [s:pkstop=".s:pkstop."]") - call s:PKSendSettings(s:pkstart,s:pkstart) - call s:PKMesg(s:pklist[s:pkstart].": ".s:pkmesg[s:pkstart]) - let s:pkstart= 0 - let s:pkstop = s:pkqty - 1 - let s:pkhist = [] - let s:pkinit = 1 - else - call s:PKSendSettings(s:pkstart,s:pkstop) - endif - -" call Decho("s:pkhist".string(s:pkhist)) -" call Dret("s:BinSrch") -endfun - -" --------------------------------------------------------------------- -" s:PKSendSettings: send settings s:pklist[a:pkstart..a:pkstop] to PLUGINKILLER {{{2 -fun! s:PKSendSettings(pkstart,pkstop) -" call Dfunc("s:PKSendSettings(pkstart=".a:pkstart." pkstop=".a:pkstop.")") -" call Decho("trying start setting#".a:pkstart."<".s:pklist[a:pkstart].">") -" call Decho("trying stop setting#".a:pkstop."<".s:pklist[a:pkstop].">") - - call remote_send("PLUGINKILLER",":call pluginkiller#RemoteSettings()\") - call remote_send("PLUGINKILLER",":sil! keepj %d\") - call remote_send("PLUGINKILLER","Go\" --------------------------\") - call remote_send("PLUGINKILLER","Go\" Plugin Killer Test Options: #".(a:pkstart+0)."<".s:pklist[a:pkstart]."> - #".(a:pkstop+0)."<".s:pklist[a:pkstop].">\") - call remote_send("PLUGINKILLER","Go\" --------------------------\") - let i = a:pkstart -" call Decho("sending settings ".a:pkstart."...".a:pkstop." (".s:pklist[a:pkstart]."...".s:pklist[a:pkstop].")") - while i <= a:pkstop - call remote_send("PLUGINKILLER","Go".s:pklist[i]."\") - let i= i + 1 - endwhile - call remote_send("PLUGINKILLER","1Gdd") - call remote_send("PLUGINKILLER",":setl nomod noma ft=vim\") - call remote_send("PLUGINKILLER",":w!\") - call remote_send("PLUGINKILLER",":syn on\") - call remote_send("PLUGINKILLER",":let g:pkstart=".s:pkstart."|let g:pkstop=".s:pkstop."\") - call remote_send("PLUGINKILLER",":echo \" \"\") - call remote_send("PLUGINKILLER",":call pluginkiller#RemoteSync()\","serverid") - call remote_send("PLUGINKILLER",":echo \" \"\") - let reply= remote_read(serverid) -" call Decho("exe sil! keepj so ".s:pkfile.")") - exe "sil! keepj so ".s:pkfile - -" call Dret("s:PKSendSettings") -endfun - -" --------------------------------------------------------------------- -" s:PKGetStartStop: gets the remote PLUGINKILLER's pkstart and pkstop {{{2 -fun! s:PKGetStartStop() -" call Dfunc("s:PKGetStartStop() s:pkfile<".s:pkfile.">") - if exists("s:reply") - unlet s:reply - endif - call remote_send("PLUGINKILLER",":call pluginkiller#RemoteSendStartStop()\","serverid") - let reply= remote_read(serverid) -" call Decho("reply<".reply.">") - exe reply -" call Dret("s:PKGetStartStop : s:pkstart=".s:pkstart." s:pkstop=".s:pkstop) -endfun - -" --------------------------------------------------------------------- -" s:PKRecordSettings: record user's original settings {{{2 -fun! s:PKRecordSettings() -" call Dfunc("s:PKRecordSettings()") - " save initial settings -" call Decho("saving initial option settings") - let s:PluginKiller_keep_ai = &ai - let s:PluginKiller_keep_cin = &cin - let s:PluginKiller_keep_ci = &ci - if exists("&acd") - let s:PluginKiller_keep_acd = &acd - endif - let s:PluginKiller_keep_cb = &cb - let s:PluginKiller_keep_ch = &ch - let s:PluginKiller_keep_cwh = &cwh - let s:PluginKiller_keep_cf = &cf - let s:PluginKiller_keep_ea = &ea - let s:PluginKiller_keep_ead = &ead - let s:PluginKiller_keep_fo = &fo - let s:PluginKiller_keep_gd = &gd - let s:PluginKiller_keep_go = &go - let s:PluginKiller_keep_hidden = &hidden - let s:PluginKiller_keep_hls = &hls - let s:PluginKiller_keep_ic = &ic - let s:PluginKiller_keep_im = &im - let s:PluginKiller_keep_js = &js - let s:PluginKiller_keep_ls = &ls - let s:PluginKiller_keep_more = &more - let s:PluginKiller_keep_magic = &magic - let s:PluginKiller_keep_num = &number - let s:PluginKiller_keep_pi = &pi - let s:PluginKiller_keep_pvh = &pvh - let s:PluginKiller_keep_remap = &remap - let s:PluginKiller_keep_scr = &scr - let s:PluginKiller_keep_sj = &sj - let s:PluginKiller_keep_spell = &spell - let s:PluginKiller_keep_report = &report - let s:PluginKiller_keep_siso = &siso - let s:PluginKiller_keep_smd = &smd - let s:PluginKiller_keep_siso = &siso - let s:PluginKiller_keep_so = &so - let s:PluginKiller_keep_ss = &ss - let s:PluginKiller_keep_sb = &sb - let s:PluginKiller_keep_spr = &spr - let s:PluginKiller_keep_sol = &sol - let s:PluginKiller_keep_swb = &swb - let s:PluginKiller_keep_sw = &sw - let s:PluginKiller_keep_sr = &sr - let s:PluginKiller_keep_tw = &tw - let s:PluginKiller_keep_top = &top - let s:PluginKiller_keep_ws = &ws -" call Dret("s:PKRecordSettings") -endfun - -" --------------------------------------------------------------------- -" s:PKRestoreSettings: restore original user's settings {{{2 -fun! s:PKRestoreSettings() -" call Dfunc("s:PKRestoreSettings()") - -" call Decho("restoring initial option settings") - let &ai = s:PluginKiller_keep_ai - let &cin = s:PluginKiller_keep_cin - let &ci = s:PluginKiller_keep_ci - if exists("&acd") - let &acd = s:PluginKiller_keep_acd - endif - let &cb = s:PluginKiller_keep_cb - let &ch = s:PluginKiller_keep_ch - let &cwh = s:PluginKiller_keep_cwh - let &cf = s:PluginKiller_keep_cf - let &ea = s:PluginKiller_keep_ea - let &ead = s:PluginKiller_keep_ead - let &fo = s:PluginKiller_keep_fo - let &gd = s:PluginKiller_keep_gd - let &go = s:PluginKiller_keep_go - let &hidden = s:PluginKiller_keep_hidden - let &hls = s:PluginKiller_keep_hls - let &ic = s:PluginKiller_keep_ic - let &im = s:PluginKiller_keep_im - let &js = s:PluginKiller_keep_js - let &ls = s:PluginKiller_keep_ls - let &more = s:PluginKiller_keep_more - let &magic = s:PluginKiller_keep_magic - let &number = s:PluginKiller_keep_num - let &pi = s:PluginKiller_keep_pi - let &pvh = s:PluginKiller_keep_pvh - let &remap = s:PluginKiller_keep_remap - let &scr = s:PluginKiller_keep_scr - let &sj = s:PluginKiller_keep_sj - let &spell = s:PluginKiller_keep_spell - let &report = s:PluginKiller_keep_report - let &siso = s:PluginKiller_keep_siso - let &smd = s:PluginKiller_keep_smd - let &siso = s:PluginKiller_keep_siso - let &so = s:PluginKiller_keep_so - let &ss = s:PluginKiller_keep_ss - let &sb = s:PluginKiller_keep_sb - let &spr = s:PluginKiller_keep_spr - let &sol = s:PluginKiller_keep_sol - let &swb = s:PluginKiller_keep_swb - let &sw = s:PluginKiller_keep_sw - let &sr = s:PluginKiller_keep_sr - let &tw = s:PluginKiller_keep_tw - let &top = s:PluginKiller_keep_top - let &ws = s:PluginKiller_keep_ws -" call Dret("s:PKRestoreSettings") -endfun - -" --------------------------------------------------------------------- -" s:PKInitSettings: set up the s:pklist and s:pkmesg lists {{{2 -fun! s:PKInitSettings() -" call Dfunc("s:PKInitSettings()") - - let s:pklist= [] - let s:pkmesg= [] - let s:pkhist= [] - let s:pkqty = 0 - let s:pkinit= 1 - if exists("&acd") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set acd") | call add(s:pkmesg,"changes working directory when you open a file, switch buffers, delete buffer, open/close window") - endif - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ai") | call add(s:pkmesg,"when inserting lines, you probably don't want ai (autoindent)") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set cin") | call add(s:pkmesg,"when inserting lines, you probably don't want cin (c-program indenting)") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ci") | call add(s:pkmesg,"when inserting lines, you probably don't want ci (copy indenting structure)") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set cb=autoselect") | call add(s:pkmesg,"don't want to have clipboard changed when using, say norm! vy") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ch=1") | call add(s:pkmesg,"try to avoid |hit-enter| prompts anyway") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set cwh=1") | call add(s:pkmesg,"if you're using it, maybe you want to see it >1 line?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set cf") | call add(s:pkmesg,"you don't want confirm dialogs when changing things while in a plugin") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ea") | call add(s:pkmesg,"windows are automatically being made the same size") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ead=ver") | call add(s:pkmesg,"don't want plugins unexpectedly changing window sizes") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ed") | call add(s:pkmesg,"makes 'g' and 'c' flags toggle each time flag is given") - if &fen - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set nofen") | call add(s:pkmesg,"your plugin doesn't like folds disabled") - else - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set fen") | call add(s:pkmesg,"your plugin doesn't like folds enabled") - endif - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set fo=tcroqwan2vblmMB1") | call add(s:pkmesg,"if this is your problem, suggest your plugin uses fo=tcq") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set gd") | call add(s:pkmesg,"all substitutions have \"g\" flag appended (yuck)") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set go+=a") | call add(s:pkmesg,"another visual-selection messes with clipboard") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set hidden") | call add(s:pkmesg,"does your plugin leave [Scratch] buffers behind?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set hls") | call add(s:pkmesg,"don't want to change @/") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ic") | call add(s:pkmesg,"ignores case -- does your plugin still work?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set im") | call add(s:pkmesg,"insertmode is now vim's default mode") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set js") | call add(s:pkmesg,"does joining with two spaces clobber something?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ls=0") | call add(s:pkmesg,"does your plugin use the status line? This'll do it in...") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set more") | call add(s:pkmesg,"yep, listings pauses will help plugins a lot - not!") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set nomagic") | call add(s:pkmesg,"there goes all your nifty regexps with magic") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set pi") | call add(s:pkmesg,"always preserves indent...") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set pvh=1") | call add(s:pkmesg,"previewheight of 1 makes it \"go away\". Does your plugin want a preview window?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set noremap") | call add(s:pkmesg,"always prevents mapping recursion (ie. your map can't call upon other maps)") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set number") | call add(s:pkmesg,"responsible for printing the line numbers to the left of the text") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set scr=3") | call add(s:pkmesg,"made ctrl-u and ctrl-d do only three lines. Got any maps using these?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set sj=4") | call add(s:pkmesg,"guess you don't like jumpy displays") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set spell") | call add(s:pkmesg,"do you really want spellchecking?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set nosol") | call add(s:pkmesg,"various commands move cursor to first non-blank of line") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set report=0") | call add(s:pkmesg,"is your plugin real noisy now? this one reports all changes.") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set siso=5") | call add(s:pkmesg,"the sidescrolloff option is causing you problems") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set smd") | call add(s:pkmesg,"show extra messages when in insert, replace, visual modes.") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set siso=30") | call add(s:pkmesg,"min qty screen columns to left") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set so=100") | call add(s:pkmesg,"scrolloff - keeps &so lines above&below cursor") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ss=10") | call add(s:pkmesg,"min qty columns to scroll horizontally") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set sb") | call add(s:pkmesg,"split windows below -- does your new window open ok?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set spr") | call add(s:pkmesg,"split windows to right -- does your new window open ok?") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set sol") | call add(s:pkmesg,"a number of motion commands move cursor to first non-blank of line") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set swb=split") | call add(s:pkmesg,"split current window before loading a buffer") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set sw=2") | call add(s:pkmesg,"qty spaces to use for each indent") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set sr") | call add(s:pkmesg,"round indent to multiple of 'sw'") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set tw=50") | call add(s:pkmesg,"medium size textwidth selected") - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set top") | call add(s:pkmesg,"make ~ behave like an operator") - if &wrap - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set wrap") | call add(s:pkmesg,"problem with wrap off?") - else - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set nowrap") | call add(s:pkmesg,"problem with wrap on?") - endif - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set nows") | call add(s:pkmesg,"no wrapscan (ie. searches don't wrap around the end-of-file)") - if &ve == "" - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ve=all") | call add(s:pkmesg,"problem with virtual edit on?") - else - let s:pkqty= s:pkqty+1 | call add(s:pklist,"set ve=") | call add(s:pkmesg,"problem with virtual edit off?") - endif -" call Decho("s:pkqty=".s:pkqty) - - if !exists("s:pkstart") || !exists("s:pkstop") - " initialize setting-interval to cover all settings -" call Decho("initialize start/stop") - let s:pkstart = 0 - let s:pkstop = s:pkqty - 1 - endif - - " initialize settings - call s:PKSendSettings(s:pkstart,s:pkstop) - -" call Dret("s:PKInitSettings : s:pkqty=".s:pkqty." s:pkstart=".s:pkstart." s:pkstop=".s:pkstop) -endfun - -" --------------------------------------------------------------------- -" s:PKMesg: makes a string appear on the remote PLUGINKILLER {{{2 -fun! s:PKMesg(mesg) -" call Dfunc("s:PKMesg(mesg<".a:mesg.">)") - call remote_send("PLUGINKILLER",":setl nomod noma\") - call remote_send("PLUGINKILLER",":echo '".substitute(a:mesg,"'","''","g")."'\") -" call Dret("s:PKMesg") -endfun - -" --------------------------------------------------------------------- -" s:PKRemoteOff: tell the remote PLUGINKILLER to terminate {{{2 -fun! s:PKRemoteOff() -" call Dfunc("s:PKRemoteOff()") - if serverlist() !~ '\' -" call Decho("telling PLUGINKILLER to quit") - call remote_send("PLUGINKILLER",":q!\") - endif - if filereadable(s:pkfile) -" call Decho("deleting pkfile<".s:pkfile.">") - call delete(s:pkfile) - endif -" call Dret("s:PKRemoteOff") -endfun - -" --------------------------------------------------------------------- -" pluginkiller#RemoteEnd: called by the remote PLUGINKILLER when a VimLeave event occurs {{{2 -fun! pluginkiller#RemoteEnd(pkfile) -" call Dfunc("pluginkiller#RemoteEnd(pkfile<".a:pkfile.">)") - if filereadable(a:pkfile) -" call Decho("deleting pkfile<".a:pkfile.">") - call delete(a:pkfile) - endif -" call Dret("pluginkiller#RemoteEnd") -endfun - -" --------------------------------------------------------------------- -" Restore: {{{1 -let &cpo= s:keepcpo -unlet s:keepcpo -" vim: ts=4 fdm=marker -doc/pluginkiller.txt [[[1 -209 -*pluginkiller.txt* Plugin Killer Apr 15, 2010 - -Author: Charles E. Campbell, Jr. - (remove NOSPAM from Campbell's email first) -Copyright: (c) 2006-2010 by Charles E. Campbell, Jr. *pluginkiller-copyright* - The VIM LICENSE applies to pluginkiller.vim - (see |copyright|) except use "pluginkiller instead of "Vim" - No warranty, express or implied. Use At-Your-Own-Risk. - -============================================================================== -1. Contents *pluginkiller* *pluginkiller-contents* -> - Purpose: to help plugin writers find options that interfere - with their plugin's operation before their users do. -< - 1. Contents..............................: |pluginkiller-contents| - 2. Pluginkiller Manual...................: |pluginkiller-manual| - 3. Pluginkiller Usage....................: |pluginkiller-usage| - 4. Installing the PluginKiller...........: |pluginkiller-install| - 5. History...............................: |pluginkiller-history| - -============================================================================== -2. Pluginkiller Manual *pluginkiller-manual* - - *pluginkiller-PK* - :PK This command loads the pluginkiller's settings into the - window under test -- ie. initializes your plugin with the - pluginkiller's "nasty" vim option settings. It will also - start up the PLUGINKILLER server as required. - *pluginkiller-PKnfm* - :PKnfm This command is like :PK except that no function maps are - produced - (ie. no ctrl-f1 or ctrl-f2 maps, see |pluginkiller-funcmap|) - *pluginkiller-PKr* - :PKr Resets the pluginkiller so that all of its problematic - settings are enabled. - *pluginkiller-PKg* - :PKg Used in the pluginkiller.vim window; you use this command - to indicate to the pluginkiller that the current settings - yielded good/expected/nominal behavior. - *pluginkiller-PKb* - :PKb Used in the pluginkiller.vim window; you use this command - to indicate to the pluginkiller that the current settings - yielded bad behavior. - - *pluginkiller-PKB* - :PKB The pluginkiller backs up to the previous set of options. - - *pluginkiller-funcmap* - *pluginkiller-fm* - same as :PKg (makes normal mode and insert mode maps) - same as :PKb (makes normal mode and insert mode maps) - Also see |g:pluginkiller_nofuncmap| - - *pluginkiller-nofuncmap* - g:pluginkiller_nofuncmap If this variable exists, then no - function maps will be made (ie. no ctrl-f1 or ctrl-f2 maps) - -============================================================================== -3. Pluginkiller Usage *pluginkiller-usage* - - The PluginKiller helps Vim plugin writers determine which options that - their users might set that will cause problems with their plugin before - their users do! - - To do this, the PluginKiller utilizes two instantiations of vim. The - first vim is your working vim; in it you normally startup and exercise - your plugin. The second one (see Step 1 below) is the pluginkiller - server; it keeps a copy of the current potential trouble-making - options. - - Whenever your plugin works satisfactorily with the currently active - trouble-makers shown in the PluginKiller gvim, type :PKg (for - PluginKiller-good) (or if function maps are available). - This tells the PluginKiller server about the nice set of options it - selected, and it responds with a new set. - - On the other hand, whenever your plugin isn't performing up to your - exacting specifications, type :PKb (for PluginKiller-bad) (or - if function maps are available). This command tells the - PluginKiller server about the trouble it caused, and the PluginKiller - responds with a smaller set of potential troublemakers. - - You'll need to repeat trying out your plugin and typing :PKg or :PKb - until the PluginKiller has found the culprit option. Its OK to quit - the first vim where you're exercising your plugin; if you do, use :PK - to resume working with the PluginKiller server -- whether you need to - quit and resume depends on how your plugin operates -- :PK just - reloads the current settings that the PluginKiller wants to have tried - out. - - *pluginkiller-steps* - Step 1: Bring up vim with a test file where you can exercise your - plugin with the pluginkiller. Type > - vim some_test_file - (do whatever you need to do, if anything, to load your new plugin) - :PK -< The :PK command sets up the pluginkiller server window; it will - show > - " Plugin Killer Testing Options: start -< at the top of the screen in the server, followed by a number - of options that often cause problems with plugins. - - Step 2: In the vim holding the test file (NOT the pluginkiller - server): - - UNTIL a message pops up about what option your plugin - is having a problem with: - - Exercise/run your plugin - - IF your plugin worked, type > - :PKg -< Otherwise, type > - :PKb -< - Note that you may have to type > - ctrl-o :PKg -< -or- > - ctrl-o :PKb -< to get the commands to work if you seem to be stuck in insert - mode. - - The :PKg (for good plugin behavior) and the :PKb (for bad - plugin behavior) commands implement a binary search technique - to determine which option is giving your plugin trouble. If, - as may sadly be the case, more than one such option is giving - your plugin fits, you may have to run through this process - several times. - - What I usually do is create two functions that look something - like this: > - - fun! s:SaveUserSettings() - let b:keep_optionname= &optionname - ... - setlocal [no]optionname - endfun - fun! s:RestoreUserSettings() - let &l:optionname= b:keep_optionname - endfun -< - At the top of any function in my plugin that's being called, I - call the s:SaveUserSettings() function. This function saves - the user's current settings that caused my plugin difficulties - and then sets them to something that doesn't. Before any - return and the end of the function I call - s:RestoreUserFunctions(), which, of course, restores the - user's settings. - - The l:optionname is the local version of the option, and the - setlocal means I only change the local option to support my - plugin. - -============================================================================== -4. Installing the PluginKiller *pluginkiller-install* - - First, you really _don't_ want to install the pluginkiller in your - normal .vim/plugin directory. - - 1. You will need vimball v18 or later; you can get it from - - http://mysite.verizon.net/astronaut/vim/index.html#VimFuncs - as "Vimball Archiver", or from - http://vim.sourceforge.net/scripts/script.php?script_id=1502 - - Be sure to remove all vestiges of any earlier vimball versions - such as comes with vim 7.0: typically, that means, as superuser: > - - cd /usr/local/share/vim/vim70 - /bin/rm plugin/vimball*.vim - /bin/rm autoload/vimball*.vim - /bin/rm doc/pi_vimball.txt -< - 2. vim pluginkiller.vba.gz - :so % - :q - - This will create > - PluginKiller/ - |- pluginkiller.vim - \- pluginkiller - doc/ - \- pluginkiller.txt -< - The directions under |pluginkiller-steps| give detailed information on - how to use the pluginkiller. - - 2. Enable the help: > - :helptags ~/.vim/doc -< - -============================================================================== -5. PluginKiller History *pluginkiller-history* - - v4 Apr 15, 2010 * Complete re-write, and new :PKB command - Now uses lists. The remote PLUGINKILLER - window now holds only the settings under - test, and is separate from the pluginkiller.vim - plugin itself. - v3 Oct 10, 2007 * added more options for pluginkiller checkout: - acd, insertmode, num, spell - v2 May 01, 2006 * the acd option is not always defined - Oct 19, 2006 * :PK will initialize the PLUGINKILLER - server automatically, as required. - v1 Mar 08, 2006 * initial release - - -vim: ts=8 diff --git a/.vim/bundle/python_complete/autoload/pythoncomplete.vim b/.vim/bundle/python_complete/autoload/pythoncomplete.vim deleted file mode 100644 index 57add71..0000000 --- a/.vim/bundle/python_complete/autoload/pythoncomplete.vim +++ /dev/null @@ -1,625 +0,0 @@ -"pythoncomplete.vim - Omni Completion for python -" Maintainer: Aaron Griffin -" Version: 0.9 -" Last Updated: 18 Jun 2009 -" -" Changes -" TODO: -" 'info' item output can use some formatting work -" Add an "unsafe eval" mode, to allow for return type evaluation -" Complete basic syntax along with import statements -" i.e. "import url" -" Continue parsing on invalid line?? -" -" v 0.9 -" * Fixed docstring parsing for classes and functions -" * Fixed parsing of *args and **kwargs type arguments -" * Better function param parsing to handle things like tuples and -" lambda defaults args -" -" v 0.8 -" * Fixed an issue where the FIRST assignment was always used instead of -" using a subsequent assignment for a variable -" * Fixed a scoping issue when working inside a parameterless function -" -" -" v 0.7 -" * Fixed function list sorting (_ and __ at the bottom) -" * Removed newline removal from docs. It appears vim handles these better in -" recent patches -" -" v 0.6: -" * Fixed argument completion -" * Removed the 'kind' completions, as they are better indicated -" with real syntax -" * Added tuple assignment parsing (whoops, that was forgotten) -" * Fixed import handling when flattening scope -" -" v 0.5: -" Yeah, I skipped a version number - 0.4 was never public. -" It was a bugfix version on top of 0.3. This is a complete -" rewrite. -" - -if !has('python') - echo "Error: Required vim compiled with +python" - finish -endif - -function! pythoncomplete#Complete(findstart, base) - "findstart = 1 when we need to get the text length - if a:findstart == 1 - let line = getline('.') - let idx = col('.') - while idx > 0 - let idx -= 1 - let c = line[idx] - if c =~ '\w' - continue - elseif ! c =~ '\.' - let idx = -1 - break - else - break - endif - endwhile - - return idx - "findstart = 0 when we need to return the list of completions - else - "vim no longer moves the cursor upon completion... fix that - let line = getline('.') - let idx = col('.') - let cword = '' - while idx > 0 - let idx -= 1 - let c = line[idx] - if c =~ '\w' || c =~ '\.' - let cword = c . cword - continue - elseif strlen(cword) > 0 || idx == 0 - break - endif - endwhile - execute "python vimcomplete('" . cword . "', '" . a:base . "')" - return g:pythoncomplete_completions - endif -endfunction - -function! s:DefPython() -python << PYTHONEOF -import sys, tokenize, cStringIO, types -from token import NAME, DEDENT, NEWLINE, STRING - -debugstmts=[] -def dbg(s): debugstmts.append(s) -def showdbg(): - for d in debugstmts: print "DBG: %s " % d - -def vimcomplete(context,match): - global debugstmts - debugstmts = [] - try: - import vim - def complsort(x,y): - try: - xa = x['abbr'] - ya = y['abbr'] - if xa[0] == '_': - if xa[1] == '_' and ya[0:2] == '__': - return xa > ya - elif ya[0:2] == '__': - return -1 - elif y[0] == '_': - return xa > ya - else: - return 1 - elif ya[0] == '_': - return -1 - else: - return xa > ya - except: - return 0 - cmpl = Completer() - cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')")) - all = cmpl.get_completions(context,match) - all.sort(complsort) - dictstr = '[' - # have to do this for double quoting - for cmpl in all: - dictstr += '{' - for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x]) - dictstr += '"icase":0},' - if dictstr[-1] == ',': dictstr = dictstr[:-1] - dictstr += ']' - #dbg("dict: %s" % dictstr) - vim.command("silent let g:pythoncomplete_completions = %s" % dictstr) - #dbg("Completion dict:\n%s" % all) - except vim.error: - dbg("VIM Error: %s" % vim.error) - -class Completer(object): - def __init__(self): - self.compldict = {} - self.parser = PyParser() - - def evalsource(self,text,line=0): - sc = self.parser.parse(text,line) - src = sc.get_code() - dbg("source: %s" % src) - try: exec(src) in self.compldict - except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1])) - for l in sc.locals: - try: exec(l) in self.compldict - except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l)) - - def _cleanstr(self,doc): - return doc.replace('"',' ').replace("'",' ') - - def get_arguments(self,func_obj): - def _ctor(obj): - try: return class_ob.__init__.im_func - except AttributeError: - for base in class_ob.__bases__: - rc = _find_constructor(base) - if rc is not None: return rc - return None - - arg_offset = 1 - if type(func_obj) == types.ClassType: func_obj = _ctor(func_obj) - elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func - else: arg_offset = 0 - - arg_text='' - if type(func_obj) in [types.FunctionType, types.LambdaType]: - try: - cd = func_obj.func_code - real_args = cd.co_varnames[arg_offset:cd.co_argcount] - defaults = func_obj.func_defaults or '' - defaults = map(lambda name: "=%s" % name, defaults) - defaults = [""] * (len(real_args)-len(defaults)) + defaults - items = map(lambda a,d: a+d, real_args, defaults) - if func_obj.func_code.co_flags & 0x4: - items.append("...") - if func_obj.func_code.co_flags & 0x8: - items.append("***") - arg_text = (','.join(items)) + ')' - - except: - dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1])) - pass - if len(arg_text) == 0: - # The doc string sometimes contains the function signature - # this works for alot of C modules that are part of the - # standard library - doc = func_obj.__doc__ - if doc: - doc = doc.lstrip() - pos = doc.find('\n') - if pos > 0: - sigline = doc[:pos] - lidx = sigline.find('(') - ridx = sigline.find(')') - if lidx > 0 and ridx > 0: - arg_text = sigline[lidx+1:ridx] + ')' - if len(arg_text) == 0: arg_text = ')' - return arg_text - - def get_completions(self,context,match): - dbg("get_completions('%s','%s')" % (context,match)) - stmt = '' - if context: stmt += str(context) - if match: stmt += str(match) - try: - result = None - all = {} - ridx = stmt.rfind('.') - if len(stmt) > 0 and stmt[-1] == '(': - result = eval(_sanitize(stmt[:-1]), self.compldict) - doc = result.__doc__ - if doc is None: doc = '' - args = self.get_arguments(result) - return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}] - elif ridx == -1: - match = stmt - all = self.compldict - else: - match = stmt[ridx+1:] - stmt = _sanitize(stmt[:ridx]) - result = eval(stmt, self.compldict) - all = dir(result) - - dbg("completing: stmt:%s" % stmt) - completions = [] - - try: maindoc = result.__doc__ - except: maindoc = ' ' - if maindoc is None: maindoc = ' ' - for m in all: - if m == "_PyCmplNoType": continue #this is internal - try: - dbg('possible completion: %s' % m) - if m.find(match) == 0: - if result is None: inst = all[m] - else: inst = getattr(result,m) - try: doc = inst.__doc__ - except: doc = maindoc - typestr = str(inst) - if doc is None or doc == '': doc = maindoc - - wrd = m[len(match):] - c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)} - if "function" in typestr: - c['word'] += '(' - c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst)) - elif "method" in typestr: - c['word'] += '(' - c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst)) - elif "module" in typestr: - c['word'] += '.' - elif "class" in typestr: - c['word'] += '(' - c['abbr'] += '(' - completions.append(c) - except: - i = sys.exc_info() - dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt)) - return completions - except: - i = sys.exc_info() - dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt)) - return [] - -class Scope(object): - def __init__(self,name,indent,docstr=''): - self.subscopes = [] - self.docstr = docstr - self.locals = [] - self.parent = None - self.name = name - self.indent = indent - - def add(self,sub): - #print 'push scope: [%s@%s]' % (sub.name,sub.indent) - sub.parent = self - self.subscopes.append(sub) - return sub - - def doc(self,str): - """ Clean up a docstring """ - d = str.replace('\n',' ') - d = d.replace('\t',' ') - while d.find(' ') > -1: d = d.replace(' ',' ') - while d[0] in '"\'\t ': d = d[1:] - while d[-1] in '"\'\t ': d = d[:-1] - dbg("Scope(%s)::docstr = %s" % (self,d)) - self.docstr = d - - def local(self,loc): - self._checkexisting(loc) - self.locals.append(loc) - - def copy_decl(self,indent=0): - """ Copy a scope's declaration only, at the specified indent level - not local variables """ - return Scope(self.name,indent,self.docstr) - - def _checkexisting(self,test): - "Convienance function... keep out duplicates" - if test.find('=') > -1: - var = test.split('=')[0].strip() - for l in self.locals: - if l.find('=') > -1 and var == l.split('=')[0].strip(): - self.locals.remove(l) - - def get_code(self): - str = "" - if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n' - for l in self.locals: - if l.startswith('import'): str += l+'\n' - str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n' - for sub in self.subscopes: - str += sub.get_code() - for l in self.locals: - if not l.startswith('import'): str += l+'\n' - - return str - - def pop(self,indent): - #print 'pop scope: [%s] to [%s]' % (self.indent,indent) - outer = self - while outer.parent != None and outer.indent >= indent: - outer = outer.parent - return outer - - def currentindent(self): - #print 'parse current indent: %s' % self.indent - return ' '*self.indent - - def childindent(self): - #print 'parse child indent: [%s]' % (self.indent+1) - return ' '*(self.indent+1) - -class Class(Scope): - def __init__(self, name, supers, indent, docstr=''): - Scope.__init__(self,name,indent, docstr) - self.supers = supers - def copy_decl(self,indent=0): - c = Class(self.name,self.supers,indent, self.docstr) - for s in self.subscopes: - c.add(s.copy_decl(indent+1)) - return c - def get_code(self): - str = '%sclass %s' % (self.currentindent(),self.name) - if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers) - str += ':\n' - if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n' - if len(self.subscopes) > 0: - for s in self.subscopes: str += s.get_code() - else: - str += '%spass\n' % self.childindent() - return str - - -class Function(Scope): - def __init__(self, name, params, indent, docstr=''): - Scope.__init__(self,name,indent, docstr) - self.params = params - def copy_decl(self,indent=0): - return Function(self.name,self.params,indent, self.docstr) - def get_code(self): - str = "%sdef %s(%s):\n" % \ - (self.currentindent(),self.name,','.join(self.params)) - if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n' - str += "%spass\n" % self.childindent() - return str - -class PyParser: - def __init__(self): - self.top = Scope('global',0) - self.scope = self.top - - def _parsedotname(self,pre=None): - #returns (dottedname, nexttoken) - name = [] - if pre is None: - tokentype, token, indent = self.next() - if tokentype != NAME and token != '*': - return ('', token) - else: token = pre - name.append(token) - while True: - tokentype, token, indent = self.next() - if token != '.': break - tokentype, token, indent = self.next() - if tokentype != NAME: break - name.append(token) - return (".".join(name), token) - - def _parseimportlist(self): - imports = [] - while True: - name, token = self._parsedotname() - if not name: break - name2 = '' - if token == 'as': name2, token = self._parsedotname() - imports.append((name, name2)) - while token != "," and "\n" not in token: - tokentype, token, indent = self.next() - if token != ",": break - return imports - - def _parenparse(self): - name = '' - names = [] - level = 1 - while True: - tokentype, token, indent = self.next() - if token in (')', ',') and level == 1: - if '=' not in name: name = name.replace(' ', '') - names.append(name.strip()) - name = '' - if token == '(': - level += 1 - name += "(" - elif token == ')': - level -= 1 - if level == 0: break - else: name += ")" - elif token == ',' and level == 1: - pass - else: - name += "%s " % str(token) - return names - - def _parsefunction(self,indent): - self.scope=self.scope.pop(indent) - tokentype, fname, ind = self.next() - if tokentype != NAME: return None - - tokentype, open, ind = self.next() - if open != '(': return None - params=self._parenparse() - - tokentype, colon, ind = self.next() - if colon != ':': return None - - return Function(fname,params,indent) - - def _parseclass(self,indent): - self.scope=self.scope.pop(indent) - tokentype, cname, ind = self.next() - if tokentype != NAME: return None - - super = [] - tokentype, next, ind = self.next() - if next == '(': - super=self._parenparse() - elif next != ':': return None - - return Class(cname,super,indent) - - def _parseassignment(self): - assign='' - tokentype, token, indent = self.next() - if tokentype == tokenize.STRING or token == 'str': - return '""' - elif token == '(' or token == 'tuple': - return '()' - elif token == '[' or token == 'list': - return '[]' - elif token == '{' or token == 'dict': - return '{}' - elif tokentype == tokenize.NUMBER: - return '0' - elif token == 'open' or token == 'file': - return 'file' - elif token == 'None': - return '_PyCmplNoType()' - elif token == 'type': - return 'type(_PyCmplNoType)' #only for method resolution - else: - assign += token - level = 0 - while True: - tokentype, token, indent = self.next() - if token in ('(','{','['): - level += 1 - elif token in (']','}',')'): - level -= 1 - if level == 0: break - elif level == 0: - if token in (';','\n'): break - assign += token - return "%s" % assign - - def next(self): - type, token, (lineno, indent), end, self.parserline = self.gen.next() - if lineno == self.curline: - #print 'line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name) - self.currentscope = self.scope - return (type, token, indent) - - def _adjustvisibility(self): - newscope = Scope('result',0) - scp = self.currentscope - while scp != None: - if type(scp) == Function: - slice = 0 - #Handle 'self' params - if scp.parent != None and type(scp.parent) == Class: - slice = 1 - newscope.local('%s = %s' % (scp.params[0],scp.parent.name)) - for p in scp.params[slice:]: - i = p.find('=') - if len(p) == 0: continue - pvar = '' - ptype = '' - if i == -1: - pvar = p - ptype = '_PyCmplNoType()' - else: - pvar = p[:i] - ptype = _sanitize(p[i+1:]) - if pvar.startswith('**'): - pvar = pvar[2:] - ptype = '{}' - elif pvar.startswith('*'): - pvar = pvar[1:] - ptype = '[]' - - newscope.local('%s = %s' % (pvar,ptype)) - - for s in scp.subscopes: - ns = s.copy_decl(0) - newscope.add(ns) - for l in scp.locals: newscope.local(l) - scp = scp.parent - - self.currentscope = newscope - return self.currentscope - - #p.parse(vim.current.buffer[:],vim.eval("line('.')")) - def parse(self,text,curline=0): - self.curline = int(curline) - buf = cStringIO.StringIO(''.join(text) + '\n') - self.gen = tokenize.generate_tokens(buf.readline) - self.currentscope = self.scope - - try: - freshscope=True - while True: - tokentype, token, indent = self.next() - #dbg( 'main: token=[%s] indent=[%s]' % (token,indent)) - - if tokentype == DEDENT or token == "pass": - self.scope = self.scope.pop(indent) - elif token == 'def': - func = self._parsefunction(indent) - if func is None: - print "function: syntax error..." - continue - dbg("new scope: function") - freshscope = True - self.scope = self.scope.add(func) - elif token == 'class': - cls = self._parseclass(indent) - if cls is None: - print "class: syntax error..." - continue - freshscope = True - dbg("new scope: class") - self.scope = self.scope.add(cls) - - elif token == 'import': - imports = self._parseimportlist() - for mod, alias in imports: - loc = "import %s" % mod - if len(alias) > 0: loc += " as %s" % alias - self.scope.local(loc) - freshscope = False - elif token == 'from': - mod, token = self._parsedotname() - if not mod or token != "import": - print "from: syntax error..." - continue - names = self._parseimportlist() - for name, alias in names: - loc = "from %s import %s" % (mod,name) - if len(alias) > 0: loc += " as %s" % alias - self.scope.local(loc) - freshscope = False - elif tokentype == STRING: - if freshscope: self.scope.doc(token) - elif tokentype == NAME: - name,token = self._parsedotname(token) - if token == '=': - stmt = self._parseassignment() - dbg("parseassignment: %s = %s" % (name, stmt)) - if stmt != None: - self.scope.local("%s = %s" % (name,stmt)) - freshscope = False - except StopIteration: #thrown on EOF - pass - except: - dbg("parse error: %s, %s @ %s" % - (sys.exc_info()[0], sys.exc_info()[1], self.parserline)) - return self._adjustvisibility() - -def _sanitize(str): - val = '' - level = 0 - for c in str: - if c in ('(','{','['): - level += 1 - elif c in (']','}',')'): - level -= 1 - elif level == 0: - val += c - return val - -sys.path.extend(['.','..']) -PYTHONEOF -endfunction - -call s:DefPython() -" vim: set et ts=4: diff --git a/.vim/bundle/python_syntax/ftplugin/python.vim b/.vim/bundle/python_syntax/ftplugin/python.vim deleted file mode 100644 index 0e0bb12..0000000 --- a/.vim/bundle/python_syntax/ftplugin/python.vim +++ /dev/null @@ -1,374 +0,0 @@ -" Vim syntax file -" Language: Python -" Maintainer: Dmitry Vasiliev -" URL: http://www.hlabs.spb.ru/vim/python.vim -" Last Change: 2010-04-09 -" Filenames: *.py -" Version: 2.6.6 -" -" Based on python.vim (from Vim 6.1 distribution) -" by Neil Schemenauer -" -" Thanks: -" -" Jeroen Ruigrok van der Werven -" for the idea to highlight erroneous operators -" Pedro Algarvio -" for the patch to enable spell checking only for the right spots -" (strings and comments) -" John Eikenberry -" for the patch fixing small typo -" Caleb Adamantine -" for the patch fixing highlighting for decorators -" Andrea Riciputi -" for the patch with new configuration options - -" -" Options: -" -" For set option do: let OPTION_NAME = 1 -" For clear option do: let OPTION_NAME = 0 -" -" Option names: -" -" For highlight builtin functions and objects: -" python_highlight_builtins -" -" For highlight builtin objects: -" python_highlight_builtin_objs -" -" For highlight builtin funtions: -" python_highlight_builtin_funcs -" -" For highlight standard exceptions: -" python_highlight_exceptions -" -" For highlight string formatting: -" python_highlight_string_formatting -" -" For highlight str.format syntax: -" python_highlight_string_format -" -" For highlight string.Template syntax: -" python_highlight_string_templates -" -" For highlight indentation errors: -" python_highlight_indent_errors -" -" For highlight trailing spaces: -" python_highlight_space_errors -" -" For highlight doc-tests: -" python_highlight_doctests -" -" If you want all Python highlightings above: -" python_highlight_all -" (This option not override previously set options) -" -" For fast machines: -" python_slow_sync -" -" For "print" builtin as function: -" python_print_as_function - -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 - syntax clear -elseif exists("b:current_syntax") - finish -endif - -if exists("python_highlight_all") && python_highlight_all != 0 - " Not override previously set options - if !exists("python_highlight_builtins") - if !exists("python_highlight_builtin_objs") - let python_highlight_builtin_objs = 1 - endif - if !exists("python_highlight_builtin_funcs") - let python_highlight_builtin_funcs = 1 - endif - endif - if !exists("python_highlight_exceptions") - let python_highlight_exceptions = 1 - endif - if !exists("python_highlight_string_formatting") - let python_highlight_string_formatting = 1 - endif - if !exists("python_highlight_string_format") - let python_highlight_string_format = 1 - endif - if !exists("python_highlight_string_templates") - let python_highlight_string_templates = 1 - endif - if !exists("python_highlight_indent_errors") - let python_highlight_indent_errors = 1 - endif - if !exists("python_highlight_space_errors") - let python_highlight_space_errors = 1 - endif - if !exists("python_highlight_doctests") - let python_highlight_doctests = 1 - endif -endif - -" Keywords -syn keyword pythonStatement break continue del -syn keyword pythonStatement exec return -syn keyword pythonStatement pass raise -syn keyword pythonStatement global assert -syn keyword pythonStatement lambda yield -syn keyword pythonStatement with -syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite -syn match pythonFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained -syn keyword pythonRepeat for while -syn keyword pythonConditional if elif else -syn keyword pythonPreCondit import from as -syn keyword pythonException try except finally -syn keyword pythonOperator and in is not or - -if !exists("python_print_as_function") || python_print_as_function == 0 - syn keyword pythonStatement print -endif - -" Decorators (new in Python 2.4) -syn match pythonDecorator "@" display nextgroup=pythonDottedName skipwhite -syn match pythonDottedName "[a-zA-Z_][a-zA-Z0-9_]*\(\.[a-zA-Z_][a-zA-Z0-9_]*\)*" display contained -syn match pythonDot "\." display containedin=pythonDottedName - -" Comments -syn match pythonComment "#.*$" display contains=pythonTodo,@Spell -syn match pythonRun "\%^#!.*$" -syn match pythonCoding "\%^.*\(\n.*\)\?#.*coding[:=]\s*[0-9A-Za-z-_.]\+.*$" -syn keyword pythonTodo TODO FIXME XXX contained - -" Errors -syn match pythonError "\<\d\+\D\+\>" display -syn match pythonError "[$?]" display -syn match pythonError "[&|]\{2,}" display -syn match pythonError "[=]\{3,}" display - -" TODO: Mixing spaces and tabs also may be used for pretty formatting multiline -" statements. For now I don't know how to work around this. -if exists("python_highlight_indent_errors") && python_highlight_indent_errors != 0 - syn match pythonIndentError "^\s*\( \t\|\t \)\s*\S"me=e-1 display -endif - -" Trailing space errors -if exists("python_highlight_space_errors") && python_highlight_space_errors != 0 - syn match pythonSpaceError "\s\+$" display -endif - -" Strings -syn region pythonString start=+[bB]\='+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell -syn region pythonString start=+[bB]\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonEscapeError,@Spell -syn region pythonString start=+[bB]\="""+ end=+"""+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest2,pythonSpaceError,@Spell -syn region pythonString start=+[bB]\='''+ end=+'''+ keepend contains=pythonEscape,pythonEscapeError,pythonDocTest,pythonSpaceError,@Spell - -syn match pythonEscape +\\[abfnrtv'"\\]+ display contained -syn match pythonEscape "\\\o\o\=\o\=" display contained -syn match pythonEscapeError "\\\o\{,2}[89]" display contained -syn match pythonEscape "\\x\x\{2}" display contained -syn match pythonEscapeError "\\x\x\=\X" display contained -syn match pythonEscape "\\$" - -" Unicode strings -syn region pythonUniString start=+[uU]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell -syn region pythonUniString start=+[uU]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,@Spell -syn region pythonUniString start=+[uU]"""+ end=+"""+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,pythonDocTest2,pythonSpaceError,@Spell -syn region pythonUniString start=+[uU]'''+ end=+'''+ keepend contains=pythonEscape,pythonUniEscape,pythonEscapeError,pythonUniEscapeError,pythonDocTest,pythonSpaceError,@Spell - -syn match pythonUniEscape "\\u\x\{4}" display contained -syn match pythonUniEscapeError "\\u\x\{,3}\X" display contained -syn match pythonUniEscape "\\U\x\{8}" display contained -syn match pythonUniEscapeError "\\U\x\{,7}\X" display contained -syn match pythonUniEscape "\\N{[A-Z ]\+}" display contained -syn match pythonUniEscapeError "\\N{[^A-Z ]\+}" display contained - -" Raw strings -syn region pythonRawString start=+[rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,@Spell -syn region pythonRawString start=+[rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,@Spell -syn region pythonRawString start=+[rR]"""+ end=+"""+ keepend contains=pythonDocTest2,pythonSpaceError,@Spell -syn region pythonRawString start=+[rR]'''+ end=+'''+ keepend contains=pythonDocTest,pythonSpaceError,@Spell - -syn match pythonRawEscape +\\['"]+ display transparent contained - -" Unicode raw strings -syn region pythonUniRawString start=+[uU][rR]'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell -syn region pythonUniRawString start=+[uU][rR]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonRawEscape,pythonUniRawEscape,pythonUniRawEscapeError,@Spell -syn region pythonUniRawString start=+[uU][rR]"""+ end=+"""+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest2,pythonSpaceError,@Spell -syn region pythonUniRawString start=+[uU][rR]'''+ end=+'''+ keepend contains=pythonUniRawEscape,pythonUniRawEscapeError,pythonDocTest,pythonSpaceError,@Spell - -syn match pythonUniRawEscape "\([^\\]\(\\\\\)*\)\@<=\\u\x\{4}" display contained -syn match pythonUniRawEscapeError "\([^\\]\(\\\\\)*\)\@<=\\u\x\{,3}\X" display contained - -if exists("python_highlight_string_formatting") && python_highlight_string_formatting != 0 - " String formatting - syn match pythonStrFormatting "%\(([^)]\+)\)\=[-#0 +]*\d*\(\.\d\+\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrFormatting "%[-#0 +]*\(\*\|\d\+\)\=\(\.\(\*\|\d\+\)\)\=[hlL]\=[diouxXeEfFgGcrs%]" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString -endif - -if exists("python_highlight_string_format") && python_highlight_string_format != 0 - " str.format syntax - syn match pythonStrFormat "{{\|}}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrFormat "{\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)\(\.[a-zA-Z_][a-zA-Z0-9_]*\|\[\(\d\+\|[^!:\}]\+\)\]\)*\(![rs]\)\=\(:\({\([a-zA-Z_][a-zA-Z0-9_]*\|\d\+\)}\|\([^}]\=[<>=^]\)\=[ +-]\=#\=0\=\d*\(\.\d\+\)\=[bcdeEfFgGnoxX%]\=\)\=\)\=}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString -endif - -if exists("python_highlight_string_templates") && python_highlight_string_templates != 0 - " String templates - syn match pythonStrTemplate "\$\$" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrTemplate "\${[a-zA-Z_][a-zA-Z0-9_]*}" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString - syn match pythonStrTemplate "\$[a-zA-Z_][a-zA-Z0-9_]*" contained containedin=pythonString,pythonUniString,pythonRawString,pythonUniRawString -endif - -if exists("python_highlight_doctests") && python_highlight_doctests != 0 - " DocTests - syn region pythonDocTest start="^\s*>>>" end=+'''+he=s-1 end="^\s*$" contained - syn region pythonDocTest2 start="^\s*>>>" end=+"""+he=s-1 end="^\s*$" contained -endif - -" Numbers (ints, longs, floats, complex) -syn match pythonHexError "\<0[xX]\x*[g-zG-Z]\x*[lL]\=\>" display - -syn match pythonHexNumber "\<0[xX]\x\+[lL]\=\>" display -syn match pythonOctNumber "\<0[oO]\o\+[lL]\=\>" display -syn match pythonBinNumber "\<0[bB][01]\+[lL]\=\>" display - -syn match pythonNumber "\<\d\+[lLjJ]\=\>" display - -syn match pythonFloat "\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>" display -syn match pythonFloat "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" display -syn match pythonFloat "\<\d\+\.\d*\([eE][+-]\=\d\+\)\=[jJ]\=" display - -syn match pythonOctError "\<0[oO]\=\o*[8-9]\d*[lL]\=\>" display -syn match pythonBinError "\<0[bB][01]*[2-9]\d*[lL]\=\>" display - -if exists("python_highlight_builtin_objs") && python_highlight_builtin_objs != 0 - " Builtin objects and types - syn keyword pythonBuiltinObj True False Ellipsis None NotImplemented - syn keyword pythonBuiltinObj __debug__ __doc__ __file__ __name__ __package__ -endif - -if exists("python_highlight_builtin_funcs") && python_highlight_builtin_funcs != 0 - " Builtin functions - syn keyword pythonBuiltinFunc __import__ abs all any apply - syn keyword pythonBuiltinFunc basestring bin bool buffer bytearray bytes callable - syn keyword pythonBuiltinFunc chr classmethod cmp coerce compile complex - syn keyword pythonBuiltinFunc delattr dict dir divmod enumerate eval - syn keyword pythonBuiltinFunc execfile file filter float format frozenset getattr - syn keyword pythonBuiltinFunc globals hasattr hash help hex id - syn keyword pythonBuiltinFunc input int intern isinstance - syn keyword pythonBuiltinFunc issubclass iter len list locals long map max - syn keyword pythonBuiltinFunc min next object oct open ord - syn keyword pythonBuiltinFunc pow property range - syn keyword pythonBuiltinFunc raw_input reduce reload repr - syn keyword pythonBuiltinFunc reversed round set setattr - syn keyword pythonBuiltinFunc slice sorted staticmethod str sum super tuple - syn keyword pythonBuiltinFunc type unichr unicode vars xrange zip - - if exists("python_print_as_function") && python_print_as_function != 0 - syn keyword pythonBuiltinFunc print - endif -endif - -if exists("python_highlight_exceptions") && python_highlight_exceptions != 0 - " Builtin exceptions and warnings - syn keyword pythonExClass BaseException - syn keyword pythonExClass Exception StandardError ArithmeticError - syn keyword pythonExClass LookupError EnvironmentError - - syn keyword pythonExClass AssertionError AttributeError BufferError EOFError - syn keyword pythonExClass FloatingPointError GeneratorExit IOError - syn keyword pythonExClass ImportError IndexError KeyError - syn keyword pythonExClass KeyboardInterrupt MemoryError NameError - syn keyword pythonExClass NotImplementedError OSError OverflowError - syn keyword pythonExClass ReferenceError RuntimeError StopIteration - syn keyword pythonExClass SyntaxError IndentationError TabError - syn keyword pythonExClass SystemError SystemExit TypeError - syn keyword pythonExClass UnboundLocalError UnicodeError - syn keyword pythonExClass UnicodeEncodeError UnicodeDecodeError - syn keyword pythonExClass UnicodeTranslateError ValueError VMSError - syn keyword pythonExClass WindowsError ZeroDivisionError - - syn keyword pythonExClass Warning UserWarning BytesWarning DeprecationWarning - syn keyword pythonExClass PendingDepricationWarning SyntaxWarning - syn keyword pythonExClass RuntimeWarning FutureWarning - syn keyword pythonExClass ImportWarning UnicodeWarning -endif - -if exists("python_slow_sync") && python_slow_sync != 0 - syn sync minlines=2000 -else - " This is fast but code inside triple quoted strings screws it up. It - " is impossible to fix because the only way to know if you are inside a - " triple quoted string is to start from the beginning of the file. - syn sync match pythonSync grouphere NONE "):$" - syn sync maxlines=200 -endif - -if version >= 508 || !exists("did_python_syn_inits") - if version <= 508 - let did_python_syn_inits = 1 - command -nargs=+ HiLink hi link - else - command -nargs=+ HiLink hi def link - endif - - HiLink pythonStatement Statement - HiLink pythonPreCondit Statement - HiLink pythonFunction Function - HiLink pythonConditional Conditional - HiLink pythonRepeat Repeat - HiLink pythonException Exception - HiLink pythonOperator Operator - - HiLink pythonDecorator Define - HiLink pythonDottedName Function - HiLink pythonDot Normal - - HiLink pythonComment Comment - HiLink pythonCoding Special - HiLink pythonRun Special - HiLink pythonTodo Todo - - HiLink pythonError Error - HiLink pythonIndentError Error - HiLink pythonSpaceError Error - - HiLink pythonString String - HiLink pythonUniString String - HiLink pythonRawString String - HiLink pythonUniRawString String - - HiLink pythonEscape Special - HiLink pythonEscapeError Error - HiLink pythonUniEscape Special - HiLink pythonUniEscapeError Error - HiLink pythonUniRawEscape Special - HiLink pythonUniRawEscapeError Error - - HiLink pythonStrFormatting Special - HiLink pythonStrFormat Special - HiLink pythonStrTemplate Special - - HiLink pythonDocTest Special - HiLink pythonDocTest2 Special - - HiLink pythonNumber Number - HiLink pythonHexNumber Number - HiLink pythonOctNumber Number - HiLink pythonBinNumber Number - HiLink pythonFloat Float - HiLink pythonOctError Error - HiLink pythonHexError Error - HiLink pythonBinError Error - - HiLink pythonBuiltinObj Structure - HiLink pythonBuiltinFunc Function - - HiLink pythonExClass Structure - - delcommand HiLink -endif - -let b:current_syntax = "python" diff --git a/.vim/bundle/rainbow/plugin/rainbow_parenthsis.vim b/.vim/bundle/rainbow/plugin/rainbow_parenthsis.vim deleted file mode 100644 index f17fcd7..0000000 --- a/.vim/bundle/rainbow/plugin/rainbow_parenthsis.vim +++ /dev/null @@ -1,58 +0,0 @@ -" This is a simple script. It extends the syntax highlighting to -" highlight each matching set of parens in different colors, to make -" it visually obvious what matches which. - -" Obviously, most useful when working with lisp. But it's also nice othe -" times. - -" I don't intend to maintain this script. I hacked it together for my -" own purposes, and it is sufficient to the day. If you want to improve it, -" knock yourself out. - -" This file is public domain. - - -" define colors. Note that the one numbered '16' is the outermost pair, -" keep that in mind if you want to change the colors. -" Also, if this script doesn't work on your terminal, you may need to add -" guifg=xx or ever termfg=, though what good this script will do on a -" black and white terminal I don't know. -hi level1c ctermfg=brown -hi level2c ctermfg=Darkblue -hi level3c ctermfg=darkgray -hi level4c ctermfg=darkgreen -hi level5c ctermfg=darkcyan -hi level6c ctermfg=darkred -hi level7c ctermfg=darkmagenta -hi level8c ctermfg=brown -hi level9c ctermfg=gray -hi level10c ctermfg=black -hi level11c ctermfg=darkmagenta -hi level12c ctermfg=Darkblue -hi level13c ctermfg=darkgreen -hi level14c ctermfg=darkcyan -hi level15c ctermfg=darkred -hi level16c ctermfg=red - - - -" These are the regions for each pair. -" This could be improved, perhaps, by makeing them match [ and { also, -" but I'm not going to take the time to figure out haw to make the -" end pattern match only the proper type. -syn region level1 matchgroup=level1c start=/(/ end=/)/ contains=TOP,level1,level2,level3,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level2 matchgroup=level2c start=/(/ end=/)/ contains=TOP,level2,level3,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level3 matchgroup=level3c start=/(/ end=/)/ contains=TOP,level3,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level4 matchgroup=level4c start=/(/ end=/)/ contains=TOP,level4,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level5 matchgroup=level5c start=/(/ end=/)/ contains=TOP,level5,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level6 matchgroup=level6c start=/(/ end=/)/ contains=TOP,level6,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level7 matchgroup=level7c start=/(/ end=/)/ contains=TOP,level7,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level8 matchgroup=level8c start=/(/ end=/)/ contains=TOP,level8,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level9 matchgroup=level9c start=/(/ end=/)/ contains=TOP,level9,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level10 matchgroup=level10c start=/(/ end=/)/ contains=TOP,level10,level11,level12,level13,level14,level15, level16,NoInParens -syn region level11 matchgroup=level11c start=/(/ end=/)/ contains=TOP,level11,level12,level13,level14,level15, level16,NoInParens -syn region level12 matchgroup=level12c start=/(/ end=/)/ contains=TOP,level12,level13,level14,level15, level16,NoInParens -syn region level13 matchgroup=level13c start=/(/ end=/)/ contains=TOP,level13,level14,level15, level16,NoInParens -syn region level14 matchgroup=level14c start=/(/ end=/)/ contains=TOP,level14,level15, level16,NoInParens -syn region level15 matchgroup=level15c start=/(/ end=/)/ contains=TOP,level15, level16,NoInParens -syn region level16 matchgroup=level16c start=/(/ end=/)/ contains=TOP,level16,NoInParens diff --git a/.vim/bundle/snipmate/after/plugin/snipMate.vim b/.vim/bundle/snipmate/after/plugin/snipMate.vim deleted file mode 100644 index 03e79ae..0000000 --- a/.vim/bundle/snipmate/after/plugin/snipMate.vim +++ /dev/null @@ -1,35 +0,0 @@ -" These are the mappings for snipMate.vim. Putting it here ensures that it -" will be mapped after other plugins such as supertab.vim. -if !exists('loaded_snips') || exists('s:did_snips_mappings') - finish -endif -let s:did_snips_mappings = 1 - -ino =TriggerSnippet() -snor i=TriggerSnippet() -ino =BackwardsSnippet() -snor i=BackwardsSnippet() -ino =ShowAvailableSnips() - -" The default mappings for these are annoying & sometimes break snipMate. -" You can change them back if you want, I've put them here for convenience. -snor b -snor a -snor bi -snor ' b' -snor ` b` -snor % b% -snor U bU -snor ^ b^ -snor \ b\ -snor b - -" By default load snippets in snippets_dir -if empty(snippets_dir) - finish -endif - -call GetSnippets(snippets_dir, '_') " Get global snippets - -au FileType * if &ft != 'help' | call GetSnippets(snippets_dir, &ft) | endif -" vim:noet:sw=4:ts=4:ft=vim diff --git a/.vim/bundle/snipmate/autoload/snipMate.vim b/.vim/bundle/snipmate/autoload/snipMate.vim deleted file mode 100644 index dcd28f6..0000000 --- a/.vim/bundle/snipmate/autoload/snipMate.vim +++ /dev/null @@ -1,433 +0,0 @@ -fun! Filename(...) - let filename = expand('%:t:r') - if filename == '' | return a:0 == 2 ? a:2 : '' | endif - return !a:0 || a:1 == '' ? filename : substitute(a:1, '$1', filename, 'g') -endf - -fun s:RemoveSnippet() - unl! g:snipPos s:curPos s:snipLen s:endCol s:endLine s:prevLen - \ s:lastBuf s:oldWord - if exists('s:update') - unl s:startCol s:origWordLen s:update - if exists('s:oldVars') | unl s:oldVars s:oldEndCol | endif - endif - aug! snipMateAutocmds -endf - -fun snipMate#expandSnip(snip, col) - let lnum = line('.') | let col = a:col - - let snippet = s:ProcessSnippet(a:snip) - " Avoid error if eval evaluates to nothing - if snippet == '' | return '' | endif - - " Expand snippet onto current position with the tab stops removed - let snipLines = split(substitute(snippet, '$\d\+\|${\d\+.\{-}}', '', 'g'), "\n", 1) - - let line = getline(lnum) - let afterCursor = strpart(line, col - 1) - " Keep text after the cursor - if afterCursor != "\t" && afterCursor != ' ' - let line = strpart(line, 0, col - 1) - let snipLines[-1] .= afterCursor - else - let afterCursor = '' - " For some reason the cursor needs to move one right after this - if line != '' && col == 1 && &ve != 'all' && &ve != 'onemore' - let col += 1 - endif - endif - - call setline(lnum, line.snipLines[0]) - - " Autoindent snippet according to previous indentation - let indent = matchend(line, '^.\{-}\ze\(\S\|$\)') + 1 - call append(lnum, map(snipLines[1:], "'".strpart(line, 0, indent - 1)."'.v:val")) - - " Open any folds snippet expands into - if &fen | sil! exe lnum.','.(lnum + len(snipLines) - 1).'foldopen' | endif - - let [g:snipPos, s:snipLen] = s:BuildTabStops(snippet, lnum, col - indent, indent) - - if s:snipLen - aug snipMateAutocmds - au CursorMovedI * call s:UpdateChangedSnip(0) - au InsertEnter * call s:UpdateChangedSnip(1) - aug END - let s:lastBuf = bufnr(0) " Only expand snippet while in current buffer - let s:curPos = 0 - let s:endCol = g:snipPos[s:curPos][1] - let s:endLine = g:snipPos[s:curPos][0] - - call cursor(g:snipPos[s:curPos][0], g:snipPos[s:curPos][1]) - let s:prevLen = [line('$'), col('$')] - if g:snipPos[s:curPos][2] != -1 | return s:SelectWord() | endif - else - unl g:snipPos s:snipLen - " Place cursor at end of snippet if no tab stop is given - let newlines = len(snipLines) - 1 - call cursor(lnum + newlines, indent + len(snipLines[-1]) - len(afterCursor) - \ + (newlines ? 0: col - 1)) - endif - return '' -endf - -" Prepare snippet to be processed by s:BuildTabStops -fun s:ProcessSnippet(snip) - let snippet = a:snip - " Evaluate eval (`...`) expressions. - " Using a loop here instead of a regex fixes a bug with nested "\=". - if stridx(snippet, '`') != -1 - while match(snippet, '`.\{-}`') != -1 - let snippet = substitute(snippet, '`.\{-}`', - \ substitute(eval(matchstr(snippet, '`\zs.\{-}\ze`')), - \ "\n\\%$", '', ''), '') - endw - let snippet = substitute(snippet, "\r", "\n", 'g') - endif - - " Place all text after a colon in a tab stop after the tab stop - " (e.g. "${#:foo}" becomes "${:foo}foo"). - " This helps tell the position of the tab stops later. - let snippet = substitute(snippet, '${\d\+:\(.\{-}\)}', '&\1', 'g') - - " Update the a:snip so that all the $# become the text after - " the colon in their associated ${#}. - " (e.g. "${1:foo}" turns all "$1"'s into "foo") - let i = 1 - while stridx(snippet, '${'.i) != -1 - let s = matchstr(snippet, '${'.i.':\zs.\{-}\ze}') - if s != '' - let snippet = substitute(snippet, '$'.i, s.'&', 'g') - endif - let i += 1 - endw - - if &et " Expand tabs to spaces if 'expandtab' is set. - return substitute(snippet, '\t', repeat(' ', &sts ? &sts : &sw), 'g') - endif - return snippet -endf - -" Counts occurences of haystack in needle -fun s:Count(haystack, needle) - let counter = 0 - let index = stridx(a:haystack, a:needle) - while index != -1 - let index = stridx(a:haystack, a:needle, index+1) - let counter += 1 - endw - return counter -endf - -" Builds a list of a list of each tab stop in the snippet containing: -" 1.) The tab stop's line number. -" 2.) The tab stop's column number -" (by getting the length of the string between the last "\n" and the -" tab stop). -" 3.) The length of the text after the colon for the current tab stop -" (e.g. "${1:foo}" would return 3). If there is no text, -1 is returned. -" 4.) If the "${#:}" construct is given, another list containing all -" the matches of "$#", to be replaced with the placeholder. This list is -" composed the same way as the parent; the first item is the line number, -" and the second is the column. -fun s:BuildTabStops(snip, lnum, col, indent) - let snipPos = [] - let i = 1 - let withoutVars = substitute(a:snip, '$\d\+', '', 'g') - while stridx(a:snip, '${'.i) != -1 - let beforeTabStop = matchstr(withoutVars, '^.*\ze${'.i.'\D') - let withoutOthers = substitute(withoutVars, '${\('.i.'\D\)\@!\d\+.\{-}}', '', 'g') - - let j = i - 1 - call add(snipPos, [0, 0, -1]) - let snipPos[j][0] = a:lnum + s:Count(beforeTabStop, "\n") - let snipPos[j][1] = a:indent + len(matchstr(withoutOthers, '.*\(\n\|^\)\zs.*\ze${'.i.'\D')) - if snipPos[j][0] == a:lnum | let snipPos[j][1] += a:col | endif - - " Get all $# matches in another list, if ${#:name} is given - if stridx(withoutVars, '${'.i.':') != -1 - let snipPos[j][2] = len(matchstr(withoutVars, '${'.i.':\zs.\{-}\ze}')) - let dots = repeat('.', snipPos[j][2]) - call add(snipPos[j], []) - let withoutOthers = substitute(a:snip, '${\d\+.\{-}}\|$'.i.'\@!\d\+', '', 'g') - while match(withoutOthers, '$'.i.'\(\D\|$\)') != -1 - let beforeMark = matchstr(withoutOthers, '^.\{-}\ze'.dots.'$'.i.'\(\D\|$\)') - call add(snipPos[j][3], [0, 0]) - let snipPos[j][3][-1][0] = a:lnum + s:Count(beforeMark, "\n") - let snipPos[j][3][-1][1] = a:indent + (snipPos[j][3][-1][0] > a:lnum - \ ? len(matchstr(beforeMark, '.*\n\zs.*')) - \ : a:col + len(beforeMark)) - let withoutOthers = substitute(withoutOthers, '$'.i.'\ze\(\D\|$\)', '', '') - endw - endif - let i += 1 - endw - return [snipPos, i - 1] -endf - -fun snipMate#jumpTabStop(backwards) - let leftPlaceholder = exists('s:origWordLen') - \ && s:origWordLen != g:snipPos[s:curPos][2] - if leftPlaceholder && exists('s:oldEndCol') - let startPlaceholder = s:oldEndCol + 1 - endif - - if exists('s:update') - call s:UpdatePlaceholderTabStops() - else - call s:UpdateTabStops() - endif - - " Don't reselect placeholder if it has been modified - if leftPlaceholder && g:snipPos[s:curPos][2] != -1 - if exists('startPlaceholder') - let g:snipPos[s:curPos][1] = startPlaceholder - else - let g:snipPos[s:curPos][1] = col('.') - let g:snipPos[s:curPos][2] = 0 - endif - endif - - let s:curPos += a:backwards ? -1 : 1 - " Loop over the snippet when going backwards from the beginning - if s:curPos < 0 | let s:curPos = s:snipLen - 1 | endif - - if s:curPos == s:snipLen - let sMode = s:endCol == g:snipPos[s:curPos-1][1]+g:snipPos[s:curPos-1][2] - call s:RemoveSnippet() - return sMode ? "\" : TriggerSnippet() - endif - - call cursor(g:snipPos[s:curPos][0], g:snipPos[s:curPos][1]) - - let s:endLine = g:snipPos[s:curPos][0] - let s:endCol = g:snipPos[s:curPos][1] - let s:prevLen = [line('$'), col('$')] - - return g:snipPos[s:curPos][2] == -1 ? '' : s:SelectWord() -endf - -fun s:UpdatePlaceholderTabStops() - let changeLen = s:origWordLen - g:snipPos[s:curPos][2] - unl s:startCol s:origWordLen s:update - if !exists('s:oldVars') | return | endif - " Update tab stops in snippet if text has been added via "$#" - " (e.g., in "${1:foo}bar$1${2}"). - if changeLen != 0 - let curLine = line('.') - - for pos in g:snipPos - if pos == g:snipPos[s:curPos] | continue | endif - let changed = pos[0] == curLine && pos[1] > s:oldEndCol - let changedVars = 0 - let endPlaceholder = pos[2] - 1 + pos[1] - " Subtract changeLen from each tab stop that was after any of - " the current tab stop's placeholders. - for [lnum, col] in s:oldVars - if lnum > pos[0] | break | endif - if pos[0] == lnum - if pos[1] > col || (pos[2] == -1 && pos[1] == col) - let changed += 1 - elseif col < endPlaceholder - let changedVars += 1 - endif - endif - endfor - let pos[1] -= changeLen * changed - let pos[2] -= changeLen * changedVars " Parse variables within placeholders - " e.g., "${1:foo} ${2:$1bar}" - - if pos[2] == -1 | continue | endif - " Do the same to any placeholders in the other tab stops. - for nPos in pos[3] - let changed = nPos[0] == curLine && nPos[1] > s:oldEndCol - for [lnum, col] in s:oldVars - if lnum > nPos[0] | break | endif - if nPos[0] == lnum && nPos[1] > col - let changed += 1 - endif - endfor - let nPos[1] -= changeLen * changed - endfor - endfor - endif - unl s:endCol s:oldVars s:oldEndCol -endf - -fun s:UpdateTabStops() - let changeLine = s:endLine - g:snipPos[s:curPos][0] - let changeCol = s:endCol - g:snipPos[s:curPos][1] - if exists('s:origWordLen') - let changeCol -= s:origWordLen - unl s:origWordLen - endif - let lnum = g:snipPos[s:curPos][0] - let col = g:snipPos[s:curPos][1] - " Update the line number of all proceeding tab stops if has - " been inserted. - if changeLine != 0 - let changeLine -= 1 - for pos in g:snipPos - if pos[0] >= lnum - if pos[0] == lnum | let pos[1] += changeCol | endif - let pos[0] += changeLine - endif - if pos[2] == -1 | continue | endif - for nPos in pos[3] - if nPos[0] >= lnum - if nPos[0] == lnum | let nPos[1] += changeCol | endif - let nPos[0] += changeLine - endif - endfor - endfor - elseif changeCol != 0 - " Update the column of all proceeding tab stops if text has - " been inserted/deleted in the current line. - for pos in g:snipPos - if pos[1] >= col && pos[0] == lnum - let pos[1] += changeCol - endif - if pos[2] == -1 | continue | endif - for nPos in pos[3] - if nPos[0] > lnum | break | endif - if nPos[0] == lnum && nPos[1] >= col - let nPos[1] += changeCol - endif - endfor - endfor - endif -endf - -fun s:SelectWord() - let s:origWordLen = g:snipPos[s:curPos][2] - let s:oldWord = strpart(getline('.'), g:snipPos[s:curPos][1] - 1, - \ s:origWordLen) - let s:prevLen[1] -= s:origWordLen - if !empty(g:snipPos[s:curPos][3]) - let s:update = 1 - let s:endCol = -1 - let s:startCol = g:snipPos[s:curPos][1] - 1 - endif - if !s:origWordLen | return '' | endif - let l = col('.') != 1 ? 'l' : '' - if &sel == 'exclusive' - return "\".l.'v'.s:origWordLen."l\" - endif - return s:origWordLen == 1 ? "\".l.'gh' - \ : "\".l.'v'.(s:origWordLen - 1)."l\" -endf - -" This updates the snippet as you type when text needs to be inserted -" into multiple places (e.g. in "${1:default text}foo$1bar$1", -" "default text" would be highlighted, and if the user types something, -" UpdateChangedSnip() would be called so that the text after "foo" & "bar" -" are updated accordingly) -" -" It also automatically quits the snippet if the cursor is moved out of it -" while in insert mode. -fun s:UpdateChangedSnip(entering) - if exists('g:snipPos') && bufnr(0) != s:lastBuf - call s:RemoveSnippet() - elseif exists('s:update') " If modifying a placeholder - if !exists('s:oldVars') && s:curPos + 1 < s:snipLen - " Save the old snippet & word length before it's updated - " s:startCol must be saved too, in case text is added - " before the snippet (e.g. in "foo$1${2}bar${1:foo}"). - let s:oldEndCol = s:startCol - let s:oldVars = deepcopy(g:snipPos[s:curPos][3]) - endif - let col = col('.') - 1 - - if s:endCol != -1 - let changeLen = col('$') - s:prevLen[1] - let s:endCol += changeLen - else " When being updated the first time, after leaving select mode - if a:entering | return | endif - let s:endCol = col - 1 - endif - - " If the cursor moves outside the snippet, quit it - if line('.') != g:snipPos[s:curPos][0] || col < s:startCol || - \ col - 1 > s:endCol - unl! s:startCol s:origWordLen s:oldVars s:update - return s:RemoveSnippet() - endif - - call s:UpdateVars() - let s:prevLen[1] = col('$') - elseif exists('g:snipPos') - if !a:entering && g:snipPos[s:curPos][2] != -1 - let g:snipPos[s:curPos][2] = -2 - endif - - let col = col('.') - let lnum = line('.') - let changeLine = line('$') - s:prevLen[0] - - if lnum == s:endLine - let s:endCol += col('$') - s:prevLen[1] - let s:prevLen = [line('$'), col('$')] - endif - if changeLine != 0 - let s:endLine += changeLine - let s:endCol = col - endif - - " Delete snippet if cursor moves out of it in insert mode - if (lnum == s:endLine && (col > s:endCol || col < g:snipPos[s:curPos][1])) - \ || lnum > s:endLine || lnum < g:snipPos[s:curPos][0] - call s:RemoveSnippet() - endif - endif -endf - -" This updates the variables in a snippet when a placeholder has been edited. -" (e.g., each "$1" in "${1:foo} $1bar $1bar") -fun s:UpdateVars() - let newWordLen = s:endCol - s:startCol + 1 - let newWord = strpart(getline('.'), s:startCol, newWordLen) - if newWord == s:oldWord || empty(g:snipPos[s:curPos][3]) - return - endif - - let changeLen = g:snipPos[s:curPos][2] - newWordLen - let curLine = line('.') - let startCol = col('.') - let oldStartSnip = s:startCol - let updateTabStops = changeLen != 0 - let i = 0 - - for [lnum, col] in g:snipPos[s:curPos][3] - if updateTabStops - let start = s:startCol - if lnum == curLine && col <= start - let s:startCol -= changeLen - let s:endCol -= changeLen - endif - for nPos in g:snipPos[s:curPos][3][(i):] - " This list is in ascending order, so quit if we've gone too far. - if nPos[0] > lnum | break | endif - if nPos[0] == lnum && nPos[1] > col - let nPos[1] -= changeLen - endif - endfor - if lnum == curLine && col > start - let col -= changeLen - let g:snipPos[s:curPos][3][i][1] = col - endif - let i += 1 - endif - - " "Very nomagic" is used here to allow special characters. - call setline(lnum, substitute(getline(lnum), '\%'.col.'c\V'. - \ escape(s:oldWord, '\'), escape(newWord, '\&'), '')) - endfor - if oldStartSnip != s:startCol - call cursor(0, startCol + s:startCol - oldStartSnip) - endif - - let s:oldWord = newWord - let g:snipPos[s:curPos][2] = newWordLen -endf -" vim:noet:sw=4:ts=4:ft=vim diff --git a/.vim/bundle/snipmate/doc/snipMate.txt b/.vim/bundle/snipmate/doc/snipMate.txt deleted file mode 100644 index 704d44a..0000000 --- a/.vim/bundle/snipmate/doc/snipMate.txt +++ /dev/null @@ -1,286 +0,0 @@ -*snipMate.txt* Plugin for using TextMate-style snippets in Vim. - -snipMate *snippet* *snippets* *snipMate* -Last Change: July 13, 2009 - -|snipMate-description| Description -|snipMate-syntax| Snippet syntax -|snipMate-usage| Usage -|snipMate-settings| Settings -|snipMate-features| Features -|snipMate-disadvantages| Disadvantages to TextMate -|snipMate-contact| Contact - -For Vim version 7.0 or later. -This plugin only works if 'compatible' is not set. -{Vi does not have any of these features.} - -============================================================================== -DESCRIPTION *snipMate-description* - -snipMate.vim implements some of TextMate's snippets features in Vim. A -snippet is a piece of often-typed text that you can insert into your -document using a trigger word followed by a . - -For instance, in a C file using the default installation of snipMate.vim, if -you type "for" in insert mode, it will expand a typical for loop in C: > - - for (i = 0; i < count; i++) { - - } - - -To go to the next item in the loop, simply over to it; if there is -repeated code, such as the "i" variable in this example, you can simply -start typing once it's highlighted and all the matches specified in the -snippet will be updated. To go in reverse, use . - -============================================================================== -SYNTAX *snippet-syntax* - -Snippets can be defined in two ways. They can be in their own file, named -after their trigger in 'snippets//.snippet', or they can be -defined together in a 'snippets/.snippets' file. Note that dotted -'filetype' syntax is supported -- e.g., you can use > - - :set ft=html.eruby - -to activate snippets for both HTML and eRuby for the current file. - -The syntax for snippets in *.snippets files is the following: > - - snippet trigger - expanded text - more expanded text - -Note that the first hard tab after the snippet trigger is required, and not -expanded in the actual snippet. The syntax for *.snippet files is the same, -only without the trigger declaration and starting indentation. - -Also note that snippets must be defined using hard tabs. They can be expanded -to spaces later if desired (see |snipMate-indenting|). - -"#" is used as a line-comment character in *.snippets files; however, they can -only be used outside of a snippet declaration. E.g.: > - - # this is a correct comment - snippet trigger - expanded text - snippet another_trigger - # this isn't a comment! - expanded text -< -This should hopefully be obvious with the included syntax highlighting. - - *snipMate-${#}* -Tab stops ~ - -By default, the cursor is placed at the end of a snippet. To specify where the -cursor is to be placed next, use "${#}", where the # is the number of the tab -stop. E.g., to place the cursor first on the id of a
tag, and then allow -the user to press to go to the middle of it: - > - snippet div -
- ${2} -
-< - *snipMate-placeholders* *snipMate-${#:}* *snipMate-$#* -Placeholders ~ - -Placeholder text can be supplied using "${#:text}", where # is the number of -the tab stop. This text then can be copied throughout the snippet using "$#", -given # is the same number as used before. So, to make a C for loop: > - - snippet for - for (${2:i}; $2 < ${1:count}; $1++) { - ${4} - } - -This will cause "count" to first be selected and change if the user starts -typing. When is pressed, the "i" in ${2}'s position will be selected; -all $2 variables will default to "i" and automatically be updated if the user -starts typing. -NOTE: "$#" syntax is used only for variables, not for tab stops as in TextMate. - -Variables within variables are also possible. For instance: > - - snippet opt - - -Will, as usual, cause "option" to first be selected and update all the $1 -variables if the user starts typing. Since one of these variables is inside of -${2}, this text will then be used as a placeholder for the next tab stop, -allowing the user to change it if he wishes. - -To copy a value throughout a snippet without supplying default text, simply -use the "${#:}" construct without the text; e.g.: > - - snippet foo - ${1:}bar$1 -< *snipMate-commands* -Interpolated Vim Script ~ - -Snippets can also contain Vim script commands that are executed (via |eval()|) -when the snippet is inserted. Commands are given inside backticks (`...`); for -TextMates's functionality, use the |system()| function. E.g.: > - - snippet date - `system("date +%Y-%m-%d")` - -will insert the current date, assuming you are on a Unix system. Note that you -can also (and should) use |strftime()| for this example. - -Filename([{expr}] [, {defaultText}]) *snipMate-filename* *Filename()* - -Since the current filename is used often in snippets, a default function -has been defined for it in snipMate.vim, appropriately called Filename(). - -With no arguments, the default filename without an extension is returned; -the first argument specifies what to place before or after the filename, -and the second argument supplies the default text to be used if the file -has not been named. "$1" in the first argument is replaced with the filename; -if you only want the filename to be returned, the first argument can be left -blank. Examples: > - - snippet filename - `Filename()` - snippet filename_with_default - `Filename('', 'name')` - snippet filename_foo - `filename('$1_foo')` - -The first example returns the filename if it the file has been named, and an -empty string if it hasn't. The second returns the filename if it's been named, -and "name" if it hasn't. The third returns the filename followed by "_foo" if -it has been named, and an empty string if it hasn't. - - *multi_snip* -To specify that a snippet can have multiple matches in a *.snippets file, use -this syntax: > - - snippet trigger A description of snippet #1 - expand this text - snippet trigger A description of snippet #2 - expand THIS text! - -In this example, when "trigger" is typed, a numbered menu containing all -of the descriptions of the "trigger" will be shown; when the user presses the -corresponding number, that snippet will then be expanded. - -To create a snippet with multiple matches using *.snippet files, -simply place all the snippets in a subdirectory with the trigger name: -'snippets///.snippet'. - -============================================================================== -USAGE *snipMate-usage* - - *'snippets'* *g:snippets_dir* -Snippets are by default looked for any 'snippets' directory in your -'runtimepath'. Typically, it is located at '~/.vim/snippets/' on *nix or -'$HOME\vimfiles\snippets\' on Windows. To change that location or add another -one, change the g:snippets_dir variable in your |.vimrc| to your preferred -directory, or use the |ExtractSnips()|function. This will be used by the -|globpath()| function, and so accepts the same syntax as it (e.g., -comma-separated paths). - -ExtractSnipsFile({directory}, {filetype}) *ExtractSnipsFile()* *.snippets* - -ExtractSnipsFile() extracts the specified *.snippets file for the given -filetype. A .snippets file contains multiple snippet declarations for the -filetype. It is further explained above, in |snippet-syntax|. - -ExtractSnips({directory}, {filetype}) *ExtractSnips()* *.snippet* - -ExtractSnips() extracts *.snippet files from the specified directory and -defines them as snippets for the given filetype. The directory tree should -look like this: 'snippets//.snippet'. If the snippet has -multiple matches, it should look like this: -'snippets///.snippet' (see |multi_snip|). - - *ResetSnippets()* -The ResetSnippets() function removes all snippets from memory. This is useful -to put at the top of a snippet setup file for if you would like to |:source| -it multiple times. - - *list-snippets* *i_CTRL-R_* -If you would like to see what snippets are available, simply type -in the current buffer to show a list via |popupmenu-completion|. - -============================================================================== -SETTINGS *snipMate-settings* *g:snips_author* - -The g:snips_author string (similar to $TM_FULLNAME in TextMate) should be set -to your name; it can then be used in snippets to automatically add it. E.g.: > - - let g:snips_author = 'Hubert Farnsworth' - snippet name - `g:snips_author` -< - *snipMate-expandtab* *snipMate-indenting* -If you would like your snippets to be expanded using spaces instead of tabs, -just enable 'expandtab' and set 'softtabstop' to your preferred amount of -spaces. If 'softtabstop' is not set, 'shiftwidth' is used instead. - - *snipMate-remap* -snipMate does not come with a setting to customize the trigger key, but you -can remap it easily in the two lines it's defined in the 'after' directory -under 'plugin/snipMate.vim'. For instance, to change the trigger key -to CTRL-J, just change this: > - - ino =TriggerSnippet() - snor i=TriggerSnippet() - -to this: > - ino =TriggerSnippet() - snor i=TriggerSnippet() - -============================================================================== -FEATURES *snipMate-features* - -snipMate.vim has the following features among others: - - The syntax of snippets is very similar to TextMate's, allowing - easy conversion. - - The position of the snippet is kept transparently (i.e. it does not use - markers/placeholders written to the buffer), which allows you to escape - out of an incomplete snippet, something particularly useful in Vim. - - Variables in snippets are updated as-you-type. - - Snippets can have multiple matches. - - Snippets can be out of order. For instance, in a do...while loop, the - condition can be added before the code. - - [New] File-based snippets are supported. - - [New] Triggers after non-word delimiters are expanded, e.g. "foo" - in "bar.foo". - - [New] can now be used to jump tab stops in reverse order. - -============================================================================== -DISADVANTAGES *snipMate-disadvantages* - -snipMate.vim currently has the following disadvantages to TextMate's snippets: - - There is no $0; the order of tab stops must be explicitly stated. - - Placeholders within placeholders are not possible. E.g.: > - - '${3}
' -< - In TextMate this would first highlight ' id="some_id"', and if - you hit delete it would automatically skip ${2} and go to ${3} - on the next , but if you didn't delete it it would highlight - "some_id" first. You cannot do this in snipMate.vim. - - Regex cannot be performed on variables, such as "${1/.*/\U&}" - - Placeholders cannot span multiple lines. - - Activating snippets in different scopes of the same file is - not possible. - -Perhaps some of these features will be added in a later release. - -============================================================================== -CONTACT *snipMate-contact* *snipMate-author* - -To contact the author (Michael Sanders), please email: - msanders42+snipmate gmail com - -I greatly appreciate any suggestions or improvements offered for the script. - -============================================================================== - -vim:tw=78:ts=8:ft=help:norl: diff --git a/.vim/bundle/snipmate/ftplugin/html_snip_helper.vim b/.vim/bundle/snipmate/ftplugin/html_snip_helper.vim deleted file mode 100644 index 2e54570..0000000 --- a/.vim/bundle/snipmate/ftplugin/html_snip_helper.vim +++ /dev/null @@ -1,10 +0,0 @@ -" Helper function for (x)html snippets -if exists('s:did_snip_helper') || &cp || !exists('loaded_snips') - finish -endif -let s:did_snip_helper = 1 - -" Automatically closes tag if in xhtml -fun! Close() - return stridx(&ft, 'xhtml') == -1 ? '' : ' /' -endf diff --git a/.vim/bundle/snipmate/plugin/snipMate.vim b/.vim/bundle/snipmate/plugin/snipMate.vim deleted file mode 100644 index 3efee2a..0000000 --- a/.vim/bundle/snipmate/plugin/snipMate.vim +++ /dev/null @@ -1,247 +0,0 @@ -" File: snipMate.vim -" Author: Michael Sanders -" Last Updated: July 13, 2009 -" Version: 0.83 -" Description: snipMate.vim implements some of TextMate's snippets features in -" Vim. A snippet is a piece of often-typed text that you can -" insert into your document using a trigger word followed by a "". -" -" For more help see snipMate.txt; you can do this by using: -" :helptags ~/.vim/doc -" :h snipMate.txt - -if exists('loaded_snips') || &cp || version < 700 - finish -endif -let loaded_snips = 1 -if !exists('snips_author') | let snips_author = 'Me' | endif - -au BufRead,BufNewFile *.snippets\= set ft=snippet -au FileType snippet setl noet fdm=indent - -let s:snippets = {} | let s:multi_snips = {} - -if !exists('snippets_dir') - let snippets_dir = substitute(globpath(&rtp, 'snippets/'), "\n", ',', 'g') -endif - -fun! MakeSnip(scope, trigger, content, ...) - let multisnip = a:0 && a:1 != '' - let var = multisnip ? 's:multi_snips' : 's:snippets' - if !has_key({var}, a:scope) | let {var}[a:scope] = {} | endif - if !has_key({var}[a:scope], a:trigger) - let {var}[a:scope][a:trigger] = multisnip ? [[a:1, a:content]] : a:content - elseif multisnip | let {var}[a:scope][a:trigger] += [[a:1, a:content]] - else - echom 'Warning in snipMate.vim: Snippet '.a:trigger.' is already defined.' - \ .' See :h multi_snip for help on snippets with multiple matches.' - endif -endf - -fun! ExtractSnips(dir, ft) - for path in split(globpath(a:dir, '*'), "\n") - if isdirectory(path) - let pathname = fnamemodify(path, ':t') - for snipFile in split(globpath(path, '*.snippet'), "\n") - call s:ProcessFile(snipFile, a:ft, pathname) - endfor - elseif fnamemodify(path, ':e') == 'snippet' - call s:ProcessFile(path, a:ft) - endif - endfor -endf - -" Processes a single-snippet file; optionally add the name of the parent -" directory for a snippet with multiple matches. -fun s:ProcessFile(file, ft, ...) - let keyword = fnamemodify(a:file, ':t:r') - if keyword == '' | return | endif - try - let text = join(readfile(a:file), "\n") - catch /E484/ - echom "Error in snipMate.vim: couldn't read file: ".a:file - endtry - return a:0 ? MakeSnip(a:ft, a:1, text, keyword) - \ : MakeSnip(a:ft, keyword, text) -endf - -fun! ExtractSnipsFile(file, ft) - if !filereadable(a:file) | return | endif - let text = readfile(a:file) - let inSnip = 0 - for line in text + ["\n"] - if inSnip && (line[0] == "\t" || line == '') - let content .= strpart(line, 1)."\n" - continue - elseif inSnip - call MakeSnip(a:ft, trigger, content[:-2], name) - let inSnip = 0 - endif - - if line[:6] == 'snippet' - let inSnip = 1 - let trigger = strpart(line, 8) - let name = '' - let space = stridx(trigger, ' ') + 1 - if space " Process multi snip - let name = strpart(trigger, space) - let trigger = strpart(trigger, 0, space - 1) - endif - let content = '' - endif - endfor -endf - -fun! ResetSnippets() - let s:snippets = {} | let s:multi_snips = {} | let g:did_ft = {} -endf - -let g:did_ft = {} -fun! GetSnippets(dir, filetypes) - for ft in split(a:filetypes, '\.') - if has_key(g:did_ft, ft) | continue | endif - call s:DefineSnips(a:dir, ft, ft) - if ft == 'objc' || ft == 'cpp' || ft == 'cs' - call s:DefineSnips(a:dir, 'c', ft) - elseif ft == 'xhtml' - call s:DefineSnips(a:dir, 'html', 'xhtml') - endif - let g:did_ft[ft] = 1 - endfor -endf - -" Define "aliasft" snippets for the filetype "realft". -fun s:DefineSnips(dir, aliasft, realft) - for path in split(globpath(a:dir, a:aliasft.'/')."\n". - \ globpath(a:dir, a:aliasft.'-*/'), "\n") - call ExtractSnips(path, a:realft) - endfor - for path in split(globpath(a:dir, a:aliasft.'.snippets')."\n". - \ globpath(a:dir, a:aliasft.'-*.snippets'), "\n") - call ExtractSnipsFile(path, a:realft) - endfor -endf - -fun! TriggerSnippet() - if exists('g:SuperTabMappingForward') - if g:SuperTabMappingForward == "" - let SuperTabKey = "\" - elseif g:SuperTabMappingBackward == "" - let SuperTabKey = "\" - endif - endif - - if pumvisible() " Update snippet if completion is used, or deal with supertab - if exists('SuperTabKey') - call feedkeys(SuperTabKey) | return '' - endif - call feedkeys("\a", 'n') " Close completion menu - call feedkeys("\") | return '' - endif - - if exists('g:snipPos') | return snipMate#jumpTabStop(0) | endif - - let word = matchstr(getline('.'), '\S\+\%'.col('.').'c') - for scope in [bufnr('%')] + split(&ft, '\.') + ['_'] - let [trigger, snippet] = s:GetSnippet(word, scope) - " If word is a trigger for a snippet, delete the trigger & expand - " the snippet. - if snippet != '' - let col = col('.') - len(trigger) - sil exe 's/\V'.escape(trigger, '/.').'\%#//' - return snipMate#expandSnip(snippet, col) - endif - endfor - - if exists('SuperTabKey') - call feedkeys(SuperTabKey) - return '' - endif - return "\" -endf - -fun! BackwardsSnippet() - if exists('g:snipPos') | return snipMate#jumpTabStop(1) | endif - - if exists('g:SuperTabMappingForward') - if g:SuperTabMappingBackward == "" - let SuperTabKey = "\" - elseif g:SuperTabMappingForward == "" - let SuperTabKey = "\" - endif - endif - if exists('SuperTabKey') - call feedkeys(SuperTabKey) - return '' - endif - return "\" -endf - -" Check if word under cursor is snippet trigger; if it isn't, try checking if -" the text after non-word characters is (e.g. check for "foo" in "bar.foo") -fun s:GetSnippet(word, scope) - let word = a:word | let snippet = '' - while snippet == '' - if exists('s:snippets["'.a:scope.'"]["'.escape(word, '\"').'"]') - let snippet = s:snippets[a:scope][word] - elseif exists('s:multi_snips["'.a:scope.'"]["'.escape(word, '\"').'"]') - let snippet = s:ChooseSnippet(a:scope, word) - if snippet == '' | break | endif - else - if match(word, '\W') == -1 | break | endif - let word = substitute(word, '.\{-}\W', '', '') - endif - endw - if word == '' && a:word != '.' && stridx(a:word, '.') != -1 - let [word, snippet] = s:GetSnippet('.', a:scope) - endif - return [word, snippet] -endf - -fun s:ChooseSnippet(scope, trigger) - let snippet = [] - let i = 1 - for snip in s:multi_snips[a:scope][a:trigger] - let snippet += [i.'. '.snip[0]] - let i += 1 - endfor - if i == 2 | return s:multi_snips[a:scope][a:trigger][0][1] | endif - let num = inputlist(snippet) - 1 - return num == -1 ? '' : s:multi_snips[a:scope][a:trigger][num][1] -endf - -fun! ShowAvailableSnips() - let line = getline('.') - let col = col('.') - let word = matchstr(getline('.'), '\S\+\%'.col.'c') - let words = [word] - if stridx(word, '.') - let words += split(word, '\.', 1) - endif - let matchlen = 0 - let matches = [] - for scope in [bufnr('%')] + split(&ft, '\.') + ['_'] - let triggers = has_key(s:snippets, scope) ? keys(s:snippets[scope]) : [] - if has_key(s:multi_snips, scope) - let triggers += keys(s:multi_snips[scope]) - endif - for trigger in triggers - for word in words - if word == '' - let matches += [trigger] " Show all matches if word is empty - elseif trigger =~ '^'.word - let matches += [trigger] - let len = len(word) - if len > matchlen | let matchlen = len | endif - endif - endfor - endfor - endfor - - " This is to avoid a bug with Vim when using complete(col - matchlen, matches) - " (Issue#46 on the Google Code snipMate issue tracker). - call setline(line('.'), substitute(line, repeat('.', matchlen).'\%'.col.'c', '', '')) - call complete(col, matches) - return '' -endf -" vim:noet:sw=4:ts=4:ft=vim diff --git a/.vim/bundle/snipmate/snippets/_.snippets b/.vim/bundle/snipmate/snippets/_.snippets deleted file mode 100644 index c3925a5..0000000 --- a/.vim/bundle/snipmate/snippets/_.snippets +++ /dev/null @@ -1,7 +0,0 @@ -# Global snippets - -# (c) holds no legal value ;) -snippet c) - `&enc[:2] == "utf" ? "©" : "(c)"` Copyright `strftime("%Y")` ${1:`g:snips_author`}. All Rights Reserved.${2} -snippet date - `strftime("%Y-%m-%d")` diff --git a/.vim/bundle/snipmate/snippets/autoit.snippets b/.vim/bundle/snipmate/snippets/autoit.snippets deleted file mode 100644 index 690018c..0000000 --- a/.vim/bundle/snipmate/snippets/autoit.snippets +++ /dev/null @@ -1,66 +0,0 @@ -snippet if - If ${1:condition} Then - ${2:; True code} - EndIf -snippet el - Else - ${1} -snippet elif - ElseIf ${1:condition} Then - ${2:; True code} -# If/Else block -snippet ifel - If ${1:condition} Then - ${2:; True code} - Else - ${3:; Else code} - EndIf -# If/ElseIf/Else block -snippet ifelif - If ${1:condition 1} Then - ${2:; True code} - ElseIf ${3:condition 2} Then - ${4:; True code} - Else - ${5:; Else code} - EndIf -# Switch block -snippet switch - Switch (${1:condition}) - Case {$2:case1}: - {$3:; Case 1 code} - Case Else: - {$4:; Else code} - EndSwitch -# Select block -snippet select - Select (${1:condition}) - Case {$2:case1}: - {$3:; Case 1 code} - Case Else: - {$4:; Else code} - EndSelect -# While loop -snippet while - While (${1:condition}) - ${2:; code...} - WEnd -# For loop -snippet for - For ${1:n} = ${3:1} to ${2:count} - ${4:; code...} - Next -# New Function -snippet func - Func ${1:fname}(${2:`indent('.') ? 'self' : ''`}): - ${4:Return} - EndFunc -# Message box -snippet msg - MsgBox(${3:MsgType}, ${1:"Title"}, ${2:"Message Text"}) -# Debug Message -snippet debug - MsgBox(0, "Debug", ${1:"Debug Message"}) -# Show Variable Debug Message -snippet showvar - MsgBox(0, "${1:VarName}", $1) diff --git a/.vim/bundle/snipmate/snippets/c.snippets b/.vim/bundle/snipmate/snippets/c.snippets deleted file mode 100644 index 89b81ba..0000000 --- a/.vim/bundle/snipmate/snippets/c.snippets +++ /dev/null @@ -1,110 +0,0 @@ -# main() -snippet main - int main(int argc, const char *argv[]) - { - ${1} - return 0; - } -# #include <...> -snippet inc - #include <${1:stdio}.h>${2} -# #include "..." -snippet Inc - #include "${1:`Filename("$1.h")`}"${2} -# #ifndef ... #define ... #endif -snippet Def - #ifndef $1 - #define ${1:SYMBOL} ${2:value} - #endif${3} -snippet def - #define -snippet ifdef - #ifdef ${1:FOO} - ${2:#define } - #endif -snippet #if - #if ${1:FOO} - ${2} - #endif -# Header Include-Guard -# (the randomizer code is taken directly from TextMate; it could probably be -# cleaner, I don't know how to do it in vim script) -snippet once - #ifndef ${1:`toupper(Filename('', 'UNTITLED').'_'.system("/usr/bin/ruby -e 'print (rand * 2821109907455).round.to_s(36)'"))`} - - #define $1 - - ${2} - - #endif /* end of include guard: $1 */ -# If Condition -snippet if - if (${1:/* condition */}) { - ${2:/* code */} - } -snippet el - else { - ${1} - } -# Tertiary conditional -snippet t - ${1:/* condition */} ? ${2:a} : ${3:b} -# Do While Loop -snippet do - do { - ${2:/* code */} - } while (${1:/* condition */}); -# While Loop -snippet wh - while (${1:/* condition */}) { - ${2:/* code */} - } -# For Loop -snippet for - for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) { - ${4:/* code */} - } -# Custom For Loop -snippet forr - for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) { - ${5:/* code */} - } -# Function -snippet fun - ${1:void} ${2:function_name}(${3}) - { - ${4:/* code */} - } -# Function Declaration -snippet fund - ${1:void} ${2:function_name}(${3});${4} -# Typedef -snippet td - typedef ${1:int} ${2:MyCustomType};${3} -# Struct -snippet st - struct ${1:`Filename('$1_t', 'name')`} { - ${2:/* data */} - }${3: /* optional variable list */};${4} -# Typedef struct -snippet tds - typedef struct ${2:_$1 }{ - ${3:/* data */} - } ${1:`Filename('$1_t', 'name')`}; -# Typdef enum -snippet tde - typedef enum { - ${1:/* data */} - } ${2:foo}; -# printf -# unfortunately version this isn't as nice as TextMates's, given the lack of a -# dynamic `...` -snippet pr - printf("${1:%s}\n"${2});${3} -# fprintf (again, this isn't as nice as TextMate's version, but it works) -snippet fpr - fprintf(${1:stderr}, "${2:%s}\n"${3});${4} -snippet . - [${1}]${2} -snippet un - unsigned diff --git a/.vim/bundle/snipmate/snippets/cpp.snippets b/.vim/bundle/snipmate/snippets/cpp.snippets deleted file mode 100644 index e4850cd..0000000 --- a/.vim/bundle/snipmate/snippets/cpp.snippets +++ /dev/null @@ -1,30 +0,0 @@ -# Read File Into Vector -snippet readfile - std::vector v; - if (FILE *${2:fp} = fopen(${1:"filename"}, "r")) { - char buf[1024]; - while (size_t len = fread(buf, 1, sizeof(buf), $2)) - v.insert(v.end(), buf, buf + len); - fclose($2); - }${3} -# std::map -snippet map - std::map<${1:key}, ${2:value}> map${3}; -# std::vector -snippet vector - std::vector<${1:char}> v${2}; -# Namespace -snippet ns - namespace ${1:`Filename('', 'my')`} { - ${2} - } /* $1 */ -# Class -snippet cl - class ${1:`Filename('$1_t', 'name')`} { - public: - $1 (${2:arguments}); - virtual ~$1 (); - - private: - ${3:/* data */} - }; diff --git a/.vim/bundle/snipmate/snippets/html.snippets b/.vim/bundle/snipmate/snippets/html.snippets deleted file mode 100644 index aefb9db..0000000 --- a/.vim/bundle/snipmate/snippets/html.snippets +++ /dev/null @@ -1,190 +0,0 @@ -# Some useful Unicode entities -# Non-Breaking Space -snippet nbs -   -# ← -snippet left - ← -# → -snippet right - → -# ↑ -snippet up - ↑ -# ↓ -snippet down - ↓ -# ↩ -snippet return - ↩ -# ⇤ -snippet backtab - ⇤ -# ⇥ -snippet tab - ⇥ -# ⇧ -snippet shift - ⇧ -# ⌃ -snippet control - ⌃ -# ⌅ -snippet enter - ⌅ -# ⌘ -snippet command - ⌘ -# ⌥ -snippet option - ⌥ -# ⌦ -snippet delete - ⌦ -# ⌫ -snippet backspace - ⌫ -# ⎋ -snippet escape - ⎋ -# Generic Doctype -snippet doctype HTML 4.01 Strict - -snippet doctype HTML 4.01 Transitional - -snippet doctype HTML 5 - -snippet doctype XHTML 1.0 Frameset - -snippet doctype XHTML 1.0 Strict - -snippet doctype XHTML 1.0 Transitional - -snippet doctype XHTML 1.1 - -# HTML Doctype 4.01 Strict -snippet docts - -# HTML Doctype 4.01 Transitional -snippet doct - -# HTML Doctype 5 -snippet doct5 - -# XHTML Doctype 1.0 Frameset -snippet docxf - -# XHTML Doctype 1.0 Strict -snippet docxs - -# XHTML Doctype 1.0 Transitional -snippet docxt - -# XHTML Doctype 1.1 -snippet docx - -snippet html - - ${1} - -snippet xhtml - - ${1} - -snippet body - - ${1} - -snippet head - - - - ${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`} - ${2} - -snippet title - ${1:`substitute(Filename('', 'Page Title'), '^.', '\u&', '')`}${2} -snippet script - ${2} -snippet scriptsrc - ${2} -snippet style - ${3} -snippet base - -snippet r - -snippet div -
- ${2} -
-# Embed QT Movie -snippet movie - - - - - - ${6} -snippet fieldset -
- ${1:name} - - ${3} -
-snippet form -
- ${3} - - -

-
-snippet h1 -

${2:$1}

-snippet input - ${4} -snippet label - ${7} -snippet link - ${4} -snippet mailto - ${3:email me} -snippet meta - ${3} -snippet opt - ${3} -snippet optt - ${2} -snippet select - ${5} -snippet table - - - -
${2:Header}
${3:Data}
${4} -snippet textarea - ${5} diff --git a/.vim/bundle/snipmate/snippets/java.snippets b/.vim/bundle/snipmate/snippets/java.snippets deleted file mode 100644 index fd705cb..0000000 --- a/.vim/bundle/snipmate/snippets/java.snippets +++ /dev/null @@ -1,78 +0,0 @@ -snippet main - public static void main (String [] args) - { - ${1:/* code */} - } -snippet pu - public -snippet po - protected -snippet pr - private -snippet st - static -snippet fi - final -snippet ab - abstract -snippet re - return -snippet br - break; -snippet de - default: - ${1} -snippet ca - catch(${1:Exception} ${2:e}) ${3} -snippet th - throw -snippet sy - synchronized -snippet im - import -snippet j.u - java.util -snippet j.i - java.io. -snippet j.b - java.beans. -snippet j.n - java.net. -snippet j.m - java.math. -snippet if - if (${1}) ${2} -snippet el - else -snippet elif - else if (${1}) ${2} -snippet wh - while (${1}) ${2} -snippet for - for (${1}; ${2}; ${3}) ${4} -snippet fore - for (${1} : ${2}) ${3} -snippet sw - switch (${1}) ${2} -snippet cs - case ${1}: - ${2} - ${3} -snippet tc - public class ${1:`Filename()`} extends ${2:TestCase} -snippet t - public void test${1:Name}() throws Exception ${2} -snippet cl - class ${1:`Filename("", "untitled")`} ${2} -snippet in - interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3} -snippet m - ${1:void} ${2:method}(${3}) ${4:throws }${5} -snippet v - ${1:String} ${2:var}${3: = null}${4};${5} -snippet co - static public final ${1:String} ${2:var} = ${3};${4} -snippet cos - static public final String ${1:var} = "${2}";${3} -snippet as - assert ${1:test} : "${2:Failure message}";${3} diff --git a/.vim/bundle/snipmate/snippets/javascript.snippets b/.vim/bundle/snipmate/snippets/javascript.snippets deleted file mode 100644 index 51f5e05..0000000 --- a/.vim/bundle/snipmate/snippets/javascript.snippets +++ /dev/null @@ -1,74 +0,0 @@ -# Prototype -snippet proto - ${1:class_name}.prototype.${2:method_name} = - function(${3:first_argument}) { - ${4:// body...} - }; -# Function -snippet fun - function ${1:function_name} (${2:argument}) { - ${3:// body...} - } -# Anonymous Function -snippet f - function(${1}) {${2}}; -# if -snippet if - if (${1:true}) {${2}}; -# if ... else -snippet ife - if (${1:true}) {${2}} - else{${3}}; -# tertiary conditional -snippet t - ${1:/* condition */} ? ${2:a} : ${3:b} -# switch -snippet switch - switch(${1:expression}) { - case '${3:case}': - ${4:// code} - break; - ${5} - default: - ${2:// code} - } -# case -snippet case - case '${1:case}': - ${2:// code} - break; - ${3} -# for (...) {...} -snippet for - for (var ${2:i} = 0; $2 < ${1:Things}.length; $2${3:++}) { - ${4:$1[$2]} - }; -# for (...) {...} (Improved Native For-Loop) -snippet forr - for (var ${2:i} = ${1:Things}.length - 1; $2 >= 0; $2${3:--}) { - ${4:$1[$2]} - }; -# while (...) {...} -snippet wh - while (${1:/* condition */}) { - ${2:/* code */} - } -# do...while -snippet do - do { - ${2:/* code */} - } while (${1:/* condition */}); -# Object Method -snippet :f - ${1:method_name}: function(${2:attribute}) { - ${4} - }${3:,} -# setTimeout function -snippet timeout - setTimeout(function() {${3}}${2}, ${1:10}; -# Get Elements -snippet get - getElementsBy${1:TagName}('${2}')${3} -# Get Element -snippet gett - getElementBy${1:Id}('${2}')${3} diff --git a/.vim/bundle/snipmate/snippets/mako.snippets b/.vim/bundle/snipmate/snippets/mako.snippets deleted file mode 100644 index 2a0aef9..0000000 --- a/.vim/bundle/snipmate/snippets/mako.snippets +++ /dev/null @@ -1,54 +0,0 @@ -snippet def - <%def name="${1:name}"> - ${2:} - -snippet call - <%call expr="${1:name}"> - ${2:} - -snippet doc - <%doc> - ${1:} - -snippet text - <%text> - ${1:} - -snippet for - % for ${1:i} in ${2:iter}: - ${3:} - % endfor -snippet if if - % if ${1:condition}: - ${2:} - % endif -snippet if if/else - % if ${1:condition}: - ${2:} - % else: - ${3:} - % endif -snippet try - % try: - ${1:} - % except${2:}: - ${3:pass} - % endtry -snippet wh - % while ${1:}: - ${2:} - % endwhile -snippet $ - ${ ${1:} } -snippet <% - <% ${1:} %> -snippet -snippet inherit - <%inherit file="${1:filename}" /> -snippet include - <%include file="${1:filename}" /> -snippet namespace - <%namespace file="${1:name}" /> -snippet page - <%page args="${1:}" /> diff --git a/.vim/bundle/snipmate/snippets/objc.snippets b/.vim/bundle/snipmate/snippets/objc.snippets deleted file mode 100644 index 4749bb7..0000000 --- a/.vim/bundle/snipmate/snippets/objc.snippets +++ /dev/null @@ -1,184 +0,0 @@ -# #import <...> -snippet Imp - #import <${1:Cocoa/Cocoa.h}>${2} -# #import "..." -snippet imp - #import "${1:`Filename()`.h}"${2} -# @selector(...) -snippet sel - @selector(${1:method}:)${3} -# @"..." string -snippet s - @"${1}"${2} -# Object -snippet o - ${1:NSObject} *${2:foo} = [${3:$1 alloc}]${4};${5} -# NSLog(...) -snippet log - NSLog(@"${1:%@}"${2});${3} -# Class -snippet objc - @interface ${1:`Filename('', 'someClass')`} : ${2:NSObject} - { - } - @end - - @implementation $1 - ${3} - @end -# Class Interface -snippet int - @interface ${1:`Filename('', 'someClass')`} : ${2:NSObject} - {${3} - } - ${4} - @end -# Class Implementation -snippet impl - @implementation ${1:`Filename('', 'someClass')`} - ${2} - @end -snippet init - - (id)init - { - [super init]; - return self; - } -snippet ifself - if (self = [super init]) { - ${1:/* code */} - } - return self; -snippet ibo - IBOutlet ${1:NSSomeClass} *${2:$1};${3} -# Category -snippet cat - @interface ${1:NSObject} (${2:Category}) - @end - - @implementation $1 ($2) - ${3} - @end -# Category Interface -snippet cath - @interface ${1:NSObject} (${2:Category}) - ${3} - @end -# NSArray -snippet array - NSMutableArray *${1:array} = [NSMutable array];${2} -# NSDictionary -snippet dict - NSMutableDictionary *${1:dict} = [NSMutableDictionary dictionary];${2} -# NSBezierPath -snippet bez - NSBezierPath *${1:path} = [NSBezierPath bezierPath];${2} -# Method -snippet m - - (${1:id})${2:method} - { - ${3} - } -# Method declaration -snippet md - - (${1:id})${2:method};${3} -# IBAction declaration -snippet ibad - - (IBAction)${1:method}:(${2:id})sender;${3} -# IBAction method -snippet iba - - (IBAction)${1:method}:(${2:id})sender - { - ${3} - } -# awakeFromNib method -snippet wake - - (void)awakeFromNib - { - ${1} - } -# Class Method -snippet M - + (${1:id})${2:method} - {${3} - return nil; - } -# Sub-method (Call super) -snippet sm - - (${1:id})${2:method} - { - [super $2];${3} - return self; - } -# Method: Initialize -snippet I - + (void) initialize - { - [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWIthObjectsAndKeys: - ${1}@"value", @"key", - nil]]; - } -# Accessor Methods For: -# Object -snippet objacc - - (${1:id})${2:thing} - { - return $2; - } - - - (void)set$2:($1)${3:new$2} - { - [$3 retain]; - [$2 release]; - $2 = $3; - }${4} -# for (object in array) -snippet forin - for (${1:Class} *${2:some$1} in ${3:array}) { - ${4} - } -snippet forarray - unsigned int ${1:object}Count = [${2:array} count]; - - for (unsigned int index = 0; index < $1Count; index++) { - ${3:id} $1 = [$2 $1AtIndex:index]; - ${4} - } -# IBOutlet -# @property (Objective-C 2.0) -snippet prop - @property (${1:retain}) ${2:NSSomeClass} ${3:*$2};${4} -# @synthesize (Objective-C 2.0) -snippet syn - @synthesize ${1:property};${2} -# [[ alloc] init] -snippet alloc - [[${1:foo} alloc] init${2}];${3} -# retain -snippet ret - [${1:foo} retain];${2} -# release -snippet rel - [${1:foo} release]; - ${2:$1 = nil;} -# autorelease -snippet arel - [${1:foo} autorelease]; -# autorelease pool -snippet pool - NSAutoreleasePool *${1:pool} = [[NSAutoreleasePool alloc] init]; - ${2:/* code */} - [$1 drain]; -# Throw an exception -snippet except - NSException *${1:badness}; - $1 = [NSException exceptionWithName:@"${2:$1Name}" - reason:@"${3}" - userInfo:nil]; - [$1 raise]; -snippet prag - #pragma mark ${1:foo} -snippet cl - @class ${1:Foo};${2} -snippet color - [[NSColor ${1:blackColor}] set]; diff --git a/.vim/bundle/snipmate/snippets/perl.snippets b/.vim/bundle/snipmate/snippets/perl.snippets deleted file mode 100644 index cf8f9fc..0000000 --- a/.vim/bundle/snipmate/snippets/perl.snippets +++ /dev/null @@ -1,91 +0,0 @@ -# #!/usr/bin/perl -snippet #! - #!/usr/bin/perl - -# Hash Pointer -snippet . - => -# Function -snippet sub - sub ${1:function_name} { - ${2:#body ...} - } -# Conditional -snippet if - if (${1}) { - ${2:# body...} - } -# Conditional if..else -snippet ife - if (${1}) { - ${2:# body...} - } else { - ${3:# else...} - } -# Conditional if..elsif..else -snippet ifee - if (${1}) { - ${2:# body...} - } elsif (${3}) { - ${4:# elsif...} - } else { - ${5:# else...} - } -# Conditional One-line -snippet xif - ${1:expression} if ${2:condition};${3} -# Unless conditional -snippet unless - unless (${1}) { - ${2:# body...} - } -# Unless conditional One-line -snippet xunless - ${1:expression} unless ${2:condition};${3} -# Try/Except -snippet eval - eval { - ${1:# do something risky...} - }; - if ($@) { - ${2:# handle failure...} - } -# While Loop -snippet wh - while (${1}) { - ${2:# body...} - } -# While Loop One-line -snippet xwh - ${1:expression} while ${2:condition};${3} -# For Loop -snippet for - for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) { - ${4:# body...} - } -# Foreach Loop -snippet fore - foreach my $${1:x} (@${2:array}) { - ${3:# body...} - } -# Foreach Loop One-line -snippet xfore - ${1:expression} foreach @${2:array};${3} -# Package -snippet cl - package ${1:ClassName}; - - use base qw(${2:ParentClass}); - - sub new { - my $class = shift; - $class = ref $class if ref $class; - my $self = bless {}, $class; - $self; - } - - 1;${3} -# Read File -snippet slurp - my $${1:var}; - { local $/ = undef; local *FILE; open FILE, "<${2:file}"; $$1 = ; close FILE }${3} diff --git a/.vim/bundle/snipmate/snippets/php.snippets b/.vim/bundle/snipmate/snippets/php.snippets deleted file mode 100644 index 3ce9e26..0000000 --- a/.vim/bundle/snipmate/snippets/php.snippets +++ /dev/null @@ -1,216 +0,0 @@ -snippet php - -snippet ec - echo "${1:string}"${2}; -snippet inc - include '${1:file}';${2} -snippet inc1 - include_once '${1:file}';${2} -snippet req - require '${1:file}';${2} -snippet req1 - require_once '${1:file}';${2} -# $GLOBALS['...'] -snippet globals - $GLOBALS['${1:variable}']${2: = }${3:something}${4:;}${5} -snippet $_ COOKIE['...'] - $_COOKIE['${1:variable}']${2} -snippet $_ ENV['...'] - $_ENV['${1:variable}']${2} -snippet $_ FILES['...'] - $_FILES['${1:variable}']${2} -snippet $_ Get['...'] - $_GET['${1:variable}']${2} -snippet $_ POST['...'] - $_POST['${1:variable}']${2} -snippet $_ REQUEST['...'] - $_REQUEST['${1:variable}']${2} -snippet $_ SERVER['...'] - $_SERVER['${1:variable}']${2} -snippet $_ SESSION['...'] - $_SESSION['${1:variable}']${2} -# Start Docblock -snippet /* - /** - * ${1} - **/ -# Class - post doc -snippet doc_cp - /** - * ${1:undocumented class} - * - * @package ${2:default} - * @author ${3:`g:snips_author`} - **/${4} -# Class Variable - post doc -snippet doc_vp - /** - * ${1:undocumented class variable} - * - * @var ${2:string} - **/${3} -# Class Variable -snippet doc_v - /** - * ${3:undocumented class variable} - * - * @var ${4:string} - **/ - ${1:var} $${2};${5} -# Class -snippet doc_c - /** - * ${3:undocumented class} - * - * @packaged ${4:default} - * @author ${5:`g:snips_author`} - **/ - ${1:}class ${2:} - {${6} - } // END $1class $2 -# Constant Definition - post doc -snippet doc_dp - /** - * ${1:undocumented constant} - **/${2} -# Constant Definition -snippet doc_d - /** - * ${3:undocumented constant} - **/ - define(${1}, ${2});${4} -# Function - post doc -snippet doc_fp - /** - * ${1:undocumented function} - * - * @return ${2:void} - * @author ${3:`g:snips_author`} - **/${4} -# Function signature -snippet doc_s - /** - * ${4:undocumented function} - * - * @return ${5:void} - * @author ${6:`g:snips_author`} - **/ - ${1}function ${2}(${3});${7} -# Function -snippet doc_f - /** - * ${4:undocumented function} - * - * @return ${5:void} - * @author ${6:`g:snips_author`} - **/ - ${1}function ${2}(${3}) - {${7} - } -# Header -snippet doc_h - /** - * ${1} - * - * @author ${2:`g:snips_author`} - * @version ${3:$Id$} - * @copyright ${4:$2}, `strftime('%d %B, %Y')` - * @package ${5:default} - **/ - - /** - * Define DocBlock - *// -# Interface -snippet doc_i - /** - * ${2:undocumented class} - * - * @package ${3:default} - * @author ${4:`g:snips_author`} - **/ - interface ${1:} - {${5} - } // END interface $1 -# class ... -snippet class - /** - * ${1} - **/ - class ${2:ClassName} - { - ${3} - function ${4:__construct}(${5:argument}) - { - ${6:// code...} - } - } -# define(...) -snippet def - define('${1}'${2});${3} -# defined(...) -snippet def? - ${1}defined('${2}')${3} -snippet wh - while (${1:/* condition */}) { - ${2:// code...} - } -# do ... while -snippet do - do { - ${2:// code... } - } while (${1:/* condition */}); -snippet if - if (${1:/* condition */}) { - ${2:// code...} - } -snippet ife - if (${1:/* condition */}) { - ${2:// code...} - } else { - ${3:// code...} - } - ${4} -snippet else - else { - ${1:// code...} - } -snippet elseif - elseif (${1:/* condition */}) { - ${2:// code...} - } -# Tertiary conditional -snippet t - $${1:retVal} = (${2:condition}) ? ${3:a} : ${4:b};${5} -snippet switch - switch ($${1:variable}) { - case '${2:value}': - ${3:// code...} - break; - ${5} - default: - ${4:// code...} - break; - } -snippet case - case '${1:value}': - ${2:// code...} - break;${3} -snippet for - for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) { - ${4: // code...} - } -snippet foreach - foreach ($${1:variable} as $${2:key}) { - ${3:// code...} - } -snippet fun - ${1:public }function ${2:FunctionName}(${3}) - { - ${4:// code...} - } -# $... = array (...) -snippet array - $${1:arrayName} = array('${2}' => ${3});${4} diff --git a/.vim/bundle/snipmate/snippets/python.snippets b/.vim/bundle/snipmate/snippets/python.snippets deleted file mode 100644 index d511184..0000000 --- a/.vim/bundle/snipmate/snippets/python.snippets +++ /dev/null @@ -1,86 +0,0 @@ -snippet #! - #!/usr/bin/python - -snippet imp - import ${1:module} -# Module Docstring -snippet docs - ''' - File: ${1:`Filename('$1.py', 'foo.py')`} - Author: ${2:`g:snips_author`} - Description: ${3} - ''' -snippet wh - while ${1:condition}: - ${2:# code...} -snippet for - for ${1:needle} in ${2:haystack}: - ${3:# code...} -# New Class -snippet cl - class ${1:ClassName}(${2:object}): - """${3:docstring for $1}""" - def __init__(self, ${4:arg}): - ${5:super($1, self).__init__()} - self.$4 = $4 - ${6} -# New Function -snippet def - def ${1:fname}(${2:`indent('.') ? 'self' : ''`}): - """${3:docstring for $1}""" - ${4:pass} -snippet deff - def ${1:fname}(${2:`indent('.') ? 'self' : ''`}): - ${3} -# New Method -snippet defs - def ${1:mname}(self, ${2:arg}): - ${3:pass} -# New Property -snippet property - def ${1:foo}(): - doc = "${2:The $1 property.}" - def fget(self): - ${3:return self._$1} - def fset(self, value): - ${4:self._$1 = value} -# Lambda -snippet ld - ${1:var} = lambda ${2:vars} : ${3:action} -snippet . - self. -snippet try Try/Except - try: - ${1:pass} - except ${2:Exception}, ${3:e}: - ${4:raise $3} -snippet try Try/Except/Else - try: - ${1:pass} - except ${2:Exception}, ${3:e}: - ${4:raise $3} - else: - ${5:pass} -snippet try Try/Except/Finally - try: - ${1:pass} - except ${2:Exception}, ${3:e}: - ${4:raise $3} - finally: - ${5:pass} -snippet try Try/Except/Else/Finally - try: - ${1:pass} - except ${2:Exception}, ${3:e}: - ${4:raise $3} - else: - ${5:pass} - finally: - ${6:pass} -# if __name__ == '__main__': -snippet ifmain - if __name__ == '__main__': - ${1:main()} -# __magic__ -snippet _ - __${1:init}__${2} diff --git a/.vim/bundle/snipmate/snippets/ruby.snippets b/.vim/bundle/snipmate/snippets/ruby.snippets deleted file mode 100644 index bf1d7f1..0000000 --- a/.vim/bundle/snipmate/snippets/ruby.snippets +++ /dev/null @@ -1,420 +0,0 @@ -# #!/usr/bin/ruby -snippet #! - #!/usr/bin/ruby - -# New Block -snippet =b - =begin rdoc - ${1} - =end -snippet y - :yields: ${1:arguments} -snippet rb - #!/usr/bin/env ruby -wKU - -snippet req - require "${1}"${2} -snippet # - # => -snippet end - __END__ -snippet case - case ${1:object} - when ${2:condition} - ${3} - end -snippet when - when ${1:condition} - ${2} -snippet def - def ${1:method_name} - ${2} - end -snippet deft - def test_${1:case_name} - ${2} - end -snippet if - if ${1:condition} - ${2} - end -snippet ife - if ${1:condition} - ${2} - else - ${3} - end -snippet elsif - elsif ${1:condition} - ${2} -snippet unless - unless ${1:condition} - ${2} - end -snippet while - while ${1:condition} - ${2} - end -snippet until - until ${1:condition} - ${2} - end -snippet cla class .. end - class ${1:`substitute(Filename(), '^.', '\u&', '')`} - ${2} - end -snippet cla class .. initialize .. end - class ${1:`substitute(Filename(), '^.', '\u&', '')`} - def initialize(${2:args}) - ${3} - end - - - end -snippet cla class .. < ParentClass .. initialize .. end - class ${1:`substitute(Filename(), '^.', '\u&', '')`} < ${2:ParentClass} - def initialize(${3:args}) - ${4} - end - - - end -snippet cla ClassName = Struct .. do .. end - ${1:`substitute(Filename(), '^.', '\u&', '')`} = Struct.new(:${2:attr_names}) do - def ${3:method_name} - ${4} - end - - - end -snippet cla class BlankSlate .. initialize .. end - class ${1:BlankSlate} - instance_methods.each { |meth| undef_method(meth) unless meth =~ /\A__/ } -snippet cla class << self .. end - class << ${1:self} - ${2} - end -# class .. < DelegateClass .. initialize .. end -snippet cla- - class ${1:`substitute(Filename(), '^.', '\u&', '')`} < DelegateClass(${2:ParentClass}) - def initialize(${3:args}) - super(${4:del_obj}) - - ${5} - end - - - end -snippet mod module .. end - module ${1:`substitute(Filename(), '^.', '\u&', '')`} - ${2} - end -snippet mod module .. module_function .. end - module ${1:`substitute(Filename(), '^.', '\u&', '')`} - module_function - - ${2} - end -snippet mod module .. ClassMethods .. end - module ${1:`substitute(Filename(), '^.', '\u&', '')`} - module ClassMethods - ${2} - end - - module InstanceMethods - - end - - def self.included(receiver) - receiver.extend ClassMethods - receiver.send :include, InstanceMethods - end - end -# attr_reader -snippet r - attr_reader :${1:attr_names} -# attr_writer -snippet w - attr_writer :${1:attr_names} -# attr_accessor -snippet rw - attr_accessor :${1:attr_names} -# include Enumerable -snippet Enum - include Enumerable - - def each(&block) - ${1} - end -# include Comparable -snippet Comp - include Comparable - - def <=>(other) - ${1} - end -# extend Forwardable -snippet Forw- - extend Forwardable -# def self -snippet defs - def self.${1:class_method_name} - ${2} - end -# def method_missing -snippet defmm - def method_missing(meth, *args, &blk) - ${1} - end -snippet defd - def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name} -snippet defds - def_delegators :${1:@del_obj}, :${2:del_methods} -snippet am - alias_method :${1:new_name}, :${2:old_name} -snippet app - if __FILE__ == $PROGRAM_NAME - ${1} - end -# usage_if() -snippet usai - if ARGV.${1} - abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3} - end -# usage_unless() -snippet usau - unless ARGV.${1} - abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3} - end -snippet array - Array.new(${1:10}) { |${2:i}| ${3} } -snippet hash - Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} } -snippet file File.foreach() { |line| .. } - File.foreach(${1:"path/to/file"}) { |${2:line}| ${3} } -snippet file File.read() - File.read(${1:"path/to/file"})${2} -snippet Dir Dir.global() { |file| .. } - Dir.glob(${1:"dir/glob/*"}) { |${2:file}| ${3} } -snippet Dir Dir[".."] - Dir[${1:"glob/**/*.rb"}]${2} -snippet dir - Filename.dirname(__FILE__) -snippet deli - delete_if { |${1:e}| ${2} } -snippet fil - fill(${1:range}) { |${2:i}| ${3} } -# flatten_once() -snippet flao - inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3} -snippet zip - zip(${1:enums}) { |${2:row}| ${3} } -# downto(0) { |n| .. } -snippet dow - downto(${1:0}) { |${2:n}| ${3} } -snippet ste - step(${1:2}) { |${2:n}| ${3} } -snippet tim - times { |${1:n}| ${2} } -snippet upt - upto(${1:1.0/0.0}) { |${2:n}| ${3} } -snippet loo - loop { ${1} } -snippet ea - each { |${1:e}| ${2} } -snippet eab - each_byte { |${1:byte}| ${2} } -snippet eac- each_char { |chr| .. } - each_char { |${1:chr}| ${2} } -snippet eac- each_cons(..) { |group| .. } - each_cons(${1:2}) { |${2:group}| ${3} } -snippet eai - each_index { |${1:i}| ${2} } -snippet eak - each_key { |${1:key}| ${2} } -snippet eal - each_line { |${1:line}| ${2} } -snippet eap - each_pair { |${1:name}, ${2:val}| ${3} } -snippet eas- - each_slice(${1:2}) { |${2:group}| ${3} } -snippet eav - each_value { |${1:val}| ${2} } -snippet eawi - each_with_index { |${1:e}, ${2:i}| ${3} } -snippet reve - reverse_each { |${1:e}| ${2} } -snippet inj - inject(${1:init}) { |${2:mem}, ${3:var}| ${4} } -snippet map - map { |${1:e}| ${2} } -snippet mapwi- - enum_with_index.map { |${1:e}, ${2:i}| ${3} } -snippet sor - sort { |a, b| ${1} } -snippet sorb - sort_by { |${1:e}| ${2} } -snippet ran - sort_by { rand } -snippet all - all? { |${1:e}| ${2} } -snippet any - any? { |${1:e}| ${2} } -snippet cl - classify { |${1:e}| ${2} } -snippet col - collect { |${1:e}| ${2} } -snippet det - detect { |${1:e}| ${2} } -snippet fet - fetch(${1:name}) { |${2:key}| ${3} } -snippet fin - find { |${1:e}| ${2} } -snippet fina - find_all { |${1:e}| ${2} } -snippet gre - grep(${1:/pattern/}) { |${2:match}| ${3} } -snippet sub - ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} } -snippet sca - scan(${1:/pattern/}) { |${2:match}| ${3} } -snippet max - max { |a, b|, ${1} } -snippet min - min { |a, b|, ${1} } -snippet par - partition { |${1:e}|, ${2} } -snippet rej - reject { |${1:e}|, ${2} } -snippet sel - select { |${1:e}|, ${2} } -snippet lam - lambda { |${1:args}| ${2} } -snippet do - do |${1:variable}| - ${2} - end -snippet : - :${1:key} => ${2:"value"}${3} -snippet ope - open(${1:"path/or/url/or/pipe"}, "${2:w}") { |${3:io}| ${4} } -# path_from_here() -snippet patfh - File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2} -# unix_filter {} -snippet unif - ARGF.each_line${1} do |${2:line}| - ${3} - end -# option_parse {} -snippet optp - require "optparse" - - options = {${1:default => "args"}} - - ARGV.options do |opts| - opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} -snippet opt - opts.on( "-${1:o}", "--${2:long-option-name}", ${3:String}, - "${4:Option description.}") do |${5:opt}| - ${6} - end -snippet tc - require "test/unit" - - require "${1:library_file_name}" - - class Test${2:$1} < Test::Unit::TestCase - def test_${3:case_name} - ${4} - end - end -snippet ts - require "test/unit" - - require "tc_${1:test_case_file}" - require "tc_${2:test_case_file}"${3} -snippet as - assert(${1:test}, "${2:Failure message.}")${3} -snippet ase - assert_equal(${1:expected}, ${2:actual})${3} -snippet asne - assert_not_equal(${1:unexpected}, ${2:actual})${3} -snippet asid - assert_in_delta(${1:expected_float}, ${2:actual_float}, ${3:2 ** -20})${4} -snippet asio - assert_instance_of(${1:ExpectedClass}, ${2:actual_instance})${3} -snippet asko - assert_kind_of(${1:ExpectedKind}, ${2:actual_instance})${3} -snippet asn - assert_nil(${1:instance})${2} -snippet asnn - assert_not_nil(${1:instance})${2} -snippet asm - assert_match(/${1:expected_pattern}/, ${2:actual_string})${3} -snippet asnm - assert_no_match(/${1:unexpected_pattern}/, ${2:actual_string})${3} -snippet aso - assert_operator(${1:left}, :${2:operator}, ${3:right})${4} -snippet asr - assert_raise(${1:Exception}) { ${2} } -snippet asnr - assert_nothing_raised(${1:Exception}) { ${2} } -snippet asrt - assert_respond_to(${1:object}, :${2:method})${3} -snippet ass assert_same(..) - assert_same(${1:expected}, ${2:actual})${3} -snippet ass assert_send(..) - assert_send([${1:object}, :${2:message}, ${3:args}])${4} -snippet asns - assert_not_same(${1:unexpected}, ${2:actual})${3} -snippet ast - assert_throws(:${1:expected}) { ${2} } -snippet asnt - assert_nothing_thrown { ${1} } -snippet fl - flunk("${1:Failure message.}")${2} -# Benchmark.bmbm do .. end -snippet bm- - TESTS = ${1:10_000} - Benchmark.bmbm do |results| - ${2} - end -snippet rep - results.report("${1:name}:") { TESTS.times { ${2} }} -# Marshal.dump(.., file) -snippet Md - File.open(${1:"path/to/file.dump"}, "wb") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4} -# Mashal.load(obj) -snippet Ml - File.open(${1:"path/to/file.dump"}, "rb") { |${2:file}| Marshal.load($2) }${3} -# deep_copy(..) -snippet deec - Marshal.load(Marshal.dump(${1:obj_to_copy}))${2} -snippet Pn- - PStore.new(${1:"file_name.pstore"})${2} -snippet tra - transaction(${1:true}) { ${2} } -# xmlread(..) -snippet xml- - REXML::Document.new(File.read(${1:"path/to/file"}))${2} -# xpath(..) { .. } -snippet xpa - elements.each(${1:"//Xpath"}) do |${2:node}| - ${3} - end -# class_from_name() -snippet clafn - split("::").inject(Object) { |par, const| par.const_get(const) } -# singleton_class() -snippet sinc - class << self; self end -snippet nam - namespace :${1:`Filename()`} do - ${2} - end -snippet tas - desc "${1:Task description\}" - task :${2:task_name => [:dependent, :tasks]} do - ${3} - end diff --git a/.vim/bundle/snipmate/snippets/sh.snippets b/.vim/bundle/snipmate/snippets/sh.snippets deleted file mode 100644 index f035126..0000000 --- a/.vim/bundle/snipmate/snippets/sh.snippets +++ /dev/null @@ -1,28 +0,0 @@ -# #!/bin/bash -snippet #! - #!/bin/bash - -snippet if - if [[ ${1:condition} ]]; then - ${2:#statements} - fi -snippet elif - elif [[ ${1:condition} ]]; then - ${2:#statements} -snippet for - for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do - ${3:#statements} - done -snippet wh - while [[ ${1:condition} ]]; do - ${2:#statements} - done -snippet until - until [[ ${1:condition} ]]; do - ${2:#statements} - done -snippet case - case ${1:word} in - ${2:pattern}) - ${3};; - esac diff --git a/.vim/bundle/snipmate/snippets/snippet.snippets b/.vim/bundle/snipmate/snippets/snippet.snippets deleted file mode 100644 index 854c058..0000000 --- a/.vim/bundle/snipmate/snippets/snippet.snippets +++ /dev/null @@ -1,7 +0,0 @@ -# snippets for making snippets :) -snippet snip - snippet ${1:trigger} - ${2} -snippet msnip - snippet ${1:trigger} ${2:description} - ${3} diff --git a/.vim/bundle/snipmate/snippets/tcl.snippets b/.vim/bundle/snipmate/snippets/tcl.snippets deleted file mode 100644 index bee2ef8..0000000 --- a/.vim/bundle/snipmate/snippets/tcl.snippets +++ /dev/null @@ -1,92 +0,0 @@ -# #!/usr/bin/tclsh -snippet #! - #!/usr/bin/tclsh - -# Process -snippet pro - proc ${1:function_name} {${2:args}} { - ${3:#body ...} - } -#xif -snippet xif - ${1:expr}? ${2:true} : ${3:false} -# Conditional -snippet if - if {${1}} { - ${2:# body...} - } -# Conditional if..else -snippet ife - if {${1}} { - ${2:# body...} - } else { - ${3:# else...} - } -# Conditional if..elsif..else -snippet ifee - if {${1}} { - ${2:# body...} - } elseif {${3}} { - ${4:# elsif...} - } else { - ${5:# else...} - } -# If catch then -snippet ifc - if { [catch {${1:#do something...}} ${2:err}] } { - ${3:# handle failure...} - } -# Catch -snippet catch - catch {${1}} ${2:err} ${3:options} -# While Loop -snippet wh - while {${1}} { - ${2:# body...} - } -# For Loop -snippet for - for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} { - ${4:# body...} - } -# Foreach Loop -snippet fore - foreach ${1:x} {${2:#list}} { - ${3:# body...} - } -# after ms script... -snippet af - after ${1:ms} ${2:#do something} -# after cancel id -snippet afc - after cancel ${1:id or script} -# after idle -snippet afi - after idle ${1:script} -# after info id -snippet afin - after info ${1:id} -# Expr -snippet exp - expr {${1:#expression here}} -# Switch -snippet sw - switch ${1:var} { - ${3:pattern 1} { - ${4:#do something} - } - default { - ${2:#do something} - } - } -# Case -snippet ca - ${1:pattern} { - ${2:#do something} - }${3} -# Namespace eval -snippet ns - namespace eval ${1:path} {${2:#script...}} -# Namespace current -snippet nsc - namespace current diff --git a/.vim/bundle/snipmate/snippets/tex.snippets b/.vim/bundle/snipmate/snippets/tex.snippets deleted file mode 100644 index 22f7316..0000000 --- a/.vim/bundle/snipmate/snippets/tex.snippets +++ /dev/null @@ -1,115 +0,0 @@ -# \begin{}...\end{} -snippet begin - \begin{${1:env}} - ${2} - \end{$1} -# Tabular -snippet tab - \begin{${1:tabular}}{${2:c}} - ${3} - \end{$1} -# Align(ed) -snippet ali - \begin{align${1:ed}} - ${2} - \end{align$1} -# Gather(ed) -snippet gat - \begin{gather${1:ed}} - ${2} - \end{gather$1} -# Equation -snippet eq - \begin{equation} - ${1} - \end{equation} -# Unnumbered Equation -snippet \ - \\[ - ${1} - \\] -# Enumerate -snippet enum - \begin{enumerate} - \item ${1} - \end{enumerate} -# Itemize -snippet item - \begin{itemize} - \item ${1} - \end{itemize} -# Description -snippet desc - \begin{description} - \item[${1}] ${2} - \end{description} -# Matrix -snippet mat - \begin{${1:p/b/v/V/B/small}matrix} - ${2} - \end{$1matrix} -# Cases -snippet cas - \begin{cases} - ${1:equation}, &\text{ if }${2:case}\\ - ${3} - \end{cases} -# Split -snippet spl - \begin{split} - ${1} - \end{split} -# Part -snippet part - \part{${1:part name}} % (fold) - \label{prt:${2:$1}} - ${3} - % part $2 (end) -# Chapter -snippet cha - \chapter{${1:chapter name}} % (fold) - \label{cha:${2:$1}} - ${3} - % chapter $2 (end) -# Section -snippet sec - \section{${1:section name}} % (fold) - \label{sec:${2:$1}} - ${3} - % section $2 (end) -# Sub Section -snippet sub - \subsection{${1:subsection name}} % (fold) - \label{sub:${2:$1}} - ${3} - % subsection $2 (end) -# Sub Sub Section -snippet subs - \subsubsection{${1:subsubsection name}} % (fold) - \label{ssub:${2:$1}} - ${3} - % subsubsection $2 (end) -# Paragraph -snippet par - \paragraph{${1:paragraph name}} % (fold) - \label{par:${2:$1}} - ${3} - % paragraph $2 (end) -# Sub Paragraph -snippet subp - \subparagraph{${1:subparagraph name}} % (fold) - \label{subp:${2:$1}} - ${3} - % subparagraph $2 (end) -snippet itd - \item[${1:description}] ${2:item} -snippet figure - ${1:Figure}~\ref{${2:fig:}}${3} -snippet table - ${1:Table}~\ref{${2:tab:}}${3} -snippet listing - ${1:Listing}~\ref{${2:list}}${3} -snippet section - ${1:Section}~\ref{${2:sec:}}${3} -snippet page - ${1:page}~\pageref{${2}}${3} diff --git a/.vim/bundle/snipmate/snippets/vim.snippets b/.vim/bundle/snipmate/snippets/vim.snippets deleted file mode 100644 index 64e7807..0000000 --- a/.vim/bundle/snipmate/snippets/vim.snippets +++ /dev/null @@ -1,32 +0,0 @@ -snippet header - " File: ${1:`expand('%:t')`} - " Author: ${2:`g:snips_author`} - " Description: ${3} - ${4:" Last Modified: `strftime("%B %d, %Y")`} -snippet guard - if exists('${1:did_`Filename()`}') || &cp${2: || version < 700} - finish - endif - let $1 = 1${3} -snippet f - fun ${1:function_name}(${2}) - ${3:" code} - endf -snippet for - for ${1:needle} in ${2:haystack} - ${3:" code} - endfor -snippet wh - while ${1:condition} - ${2:" code} - endw -snippet if - if ${1:condition} - ${2:" code} - endif -snippet ife - if ${1:condition} - ${2} - else - ${3} - endif diff --git a/.vim/bundle/snipmate/snippets/zsh.snippets b/.vim/bundle/snipmate/snippets/zsh.snippets deleted file mode 100644 index 7aee05b..0000000 --- a/.vim/bundle/snipmate/snippets/zsh.snippets +++ /dev/null @@ -1,58 +0,0 @@ -# #!/bin/zsh -snippet #! - #!/bin/zsh - -snippet if - if ${1:condition}; then - ${2:# statements} - fi -snippet ife - if ${1:condition}; then - ${2:# statements} - else - ${3:# statements} - fi -snippet elif - elif ${1:condition} ; then - ${2:# statements} -snippet for - for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do - ${3:# statements} - done -snippet fore - for ${1:item} in ${2:list}; do - ${3:# statements} - done -snippet wh - while ${1:condition}; do - ${2:# statements} - done -snippet until - until ${1:condition}; do - ${2:# statements} - done -snippet repeat - repeat ${1:integer}; do - ${2:# statements} - done -snippet case - case ${1:word} in - ${2:pattern}) - ${3};; - esac -snippet select - select ${1:answer} in ${2:choices}; do - ${3:# statements} - done -snippet ( - ( ${1:#statements} ) -snippet { - { ${1:#statements} } -snippet [ - [[ ${1:test} ]] -snippet always - { ${1:try} } always { ${2:always} } -snippet fun - function ${1:name} (${2:args}) { - ${3:# body} - } diff --git a/.vim/bundle/snipmate/syntax/snippet.vim b/.vim/bundle/snipmate/syntax/snippet.vim deleted file mode 100644 index 5e919e7..0000000 --- a/.vim/bundle/snipmate/syntax/snippet.vim +++ /dev/null @@ -1,19 +0,0 @@ -" Syntax highlighting for snippet files (used for snipMate.vim) -" Hopefully this should make snippets a bit nicer to write! -syn match snipComment '^#.*' -syn match placeHolder '\${\d\+\(:.\{-}\)\=}' contains=snipCommand -syn match tabStop '\$\d\+' -syn match snipCommand '`.\{-}`' -syn match snippet '^snippet.*' transparent contains=multiSnipText,snipKeyword -syn match multiSnipText '\S\+ \zs.*' contained -syn match snipKeyword '^snippet'me=s+8 contained -syn match snipError "^[^#s\t].*$" - -hi link snipComment Comment -hi link multiSnipText String -hi link snipKeyword Keyword -hi link snipComment Comment -hi link placeHolder Special -hi link tabStop Special -hi link snipCommand String -hi link snipError Error diff --git a/.vim/bundle/sparkup/README.txt b/.vim/bundle/sparkup/README.txt deleted file mode 100644 index b74460f..0000000 --- a/.vim/bundle/sparkup/README.txt +++ /dev/null @@ -1,23 +0,0 @@ -Installation ------------- - - Copy the contents of vim/ftplugin/ to your ~/.vim/ftplugin directory. - - (Assuming your current dir is sparkup/vim/) - $ cp -R ftplugin ~/.vim/ - -Configuration -------------- - - g:sparkup (Default: 'sparkup') - - Location of the sparkup executable. You shouldn't need to change this - setting if you used the install option above. - - g:sparkupArgs (Default: '--no-last-newline') - - Additional args passed to sparkup. - - g:sparkupExecuteMapping (Default: '') - - Mapping used to execute sparkup. - - g:sparkupNextMapping (Default: '') - - Mapping used to jump to the next empty tag/attribute. diff --git a/.vim/bundle/sparkup/ftplugin/html/sparkup.py b/.vim/bundle/sparkup/ftplugin/html/sparkup.py deleted file mode 100755 index 50de2a8..0000000 --- a/.vim/bundle/sparkup/ftplugin/html/sparkup.py +++ /dev/null @@ -1,1087 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -version = "0.1.3" - -import os -import fileinput -import getopt -import sys -import re - -# =============================================================================== - -class Dialect: - shortcuts = {} - synonyms = {} - required = {} - short_tags = () - -class HtmlDialect(Dialect): - shortcuts = { - 'cc:ie': { - 'opening_tag': ''}, - 'cc:ie6': { - 'opening_tag': ''}, - 'cc:ie7': { - 'opening_tag': ''}, - 'cc:noie': { - 'opening_tag': '', - 'closing_tag': ''}, - 'html:4t': { - 'expand': True, - 'opening_tag': - '\n' + - '\n' + - '\n' + - ' ' + '\n' + - ' ' + '\n' + - '\n' + - '', - 'closing_tag': - '\n' + - ''}, - 'html:4s': { - 'expand': True, - 'opening_tag': - '\n' + - '\n' + - '\n' + - ' ' + '\n' + - ' ' + '\n' + - '\n' + - '', - 'closing_tag': - '\n' + - ''}, - 'html:xt': { - 'expand': True, - 'opening_tag': - '\n' + - '\n' + - '\n' + - ' ' + '\n' + - ' ' + '\n' + - '\n' + - '', - 'closing_tag': - '\n' + - ''}, - 'html:xs': { - 'expand': True, - 'opening_tag': - '\n' + - '\n' + - '\n' + - ' ' + '\n' + - ' ' + '\n' + - '\n' + - '', - 'closing_tag': - '\n' + - ''}, - 'html:xxs': { - 'expand': True, - 'opening_tag': - '\n' + - '\n' + - '\n' + - ' ' + '\n' + - ' ' + '\n' + - '\n' + - '', - 'closing_tag': - '\n' + - ''}, - 'html:5': { - 'expand': True, - 'opening_tag': - '\n' + - '\n' + - '\n' + - ' ' + '\n' + - ' ' + '\n' + - '\n' + - '', - 'closing_tag': - '\n' + - ''}, - 'input:button': { - 'name': 'input', - 'attributes': { 'class': 'button', 'type': 'button', 'name': '', 'value': '' } - }, - 'input:password': { - 'name': 'input', - 'attributes': { 'class': 'text password', 'type': 'password', 'name': '', 'value': '' } - }, - 'input:radio': { - 'name': 'input', - 'attributes': { 'class': 'radio', 'type': 'radio', 'name': '', 'value': '' } - }, - 'input:checkbox': { - 'name': 'input', - 'attributes': { 'class': 'checkbox', 'type': 'checkbox', 'name': '', 'value': '' } - }, - 'input:file': { - 'name': 'input', - 'attributes': { 'class': 'file', 'type': 'file', 'name': '', 'value': '' } - }, - 'input:text': { - 'name': 'input', - 'attributes': { 'class': 'text', 'type': 'text', 'name': '', 'value': '' } - }, - 'input:submit': { - 'name': 'input', - 'attributes': { 'class': 'submit', 'type': 'submit', 'value': '' } - }, - 'input:hidden': { - 'name': 'input', - 'attributes': { 'type': 'hidden', 'name': '', 'value': '' } - }, - 'script:src': { - 'name': 'script', - 'attributes': { 'src': '' } - }, - 'script:jquery': { - 'name': 'script', - 'attributes': { 'src': 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js' } - }, - 'script:jsapi': { - 'name': 'script', - 'attributes': { 'src': 'http://www.google.com/jsapi' } - }, - 'script:jsapix': { - 'name': 'script', - 'text': '\n google.load("jquery", "1.3.2");\n google.setOnLoadCallback(function() {\n \n });\n' - }, - 'link:css': { - 'name': 'link', - 'attributes': { 'rel': 'stylesheet', 'type': 'text/css', 'href': '', 'media': 'all' }, - }, - 'link:print': { - 'name': 'link', - 'attributes': { 'rel': 'stylesheet', 'type': 'text/css', 'href': '', 'media': 'print' }, - }, - 'link:favicon': { - 'name': 'link', - 'attributes': { 'rel': 'shortcut icon', 'type': 'image/x-icon', 'href': '' }, - }, - 'link:touch': { - 'name': 'link', - 'attributes': { 'rel': 'apple-touch-icon', 'href': '' }, - }, - 'link:rss': { - 'name': 'link', - 'attributes': { 'rel': 'alternate', 'type': 'application/rss+xml', 'title': 'RSS', 'href': '' }, - }, - 'link:atom': { - 'name': 'link', - 'attributes': { 'rel': 'alternate', 'type': 'application/atom+xml', 'title': 'Atom', 'href': '' }, - }, - 'meta:ie7': { - 'name': 'meta', - 'attributes': { 'http-equiv': 'X-UA-Compatible', 'content': 'IE=7' }, - }, - 'meta:ie8': { - 'name': 'meta', - 'attributes': { 'http-equiv': 'X-UA-Compatible', 'content': 'IE=8' }, - }, - 'form:get': { - 'name': 'form', - 'attributes': { 'method': 'get' }, - }, - 'form:g': { - 'name': 'form', - 'attributes': { 'method': 'get' }, - }, - 'form:post': { - 'name': 'form', - 'attributes': { 'method': 'post' }, - }, - 'form:p': { - 'name': 'form', - 'attributes': { 'method': 'post' }, - }, - } - synonyms = { - 'checkbox': 'input:checkbox', - 'check': 'input:checkbox', - 'input:c': 'input:checkbox', - 'button': 'input:button', - 'input:b': 'input:button', - 'input:h': 'input:hidden', - 'hidden': 'input:hidden', - 'submit': 'input:submit', - 'input:s': 'input:submit', - 'radio': 'input:radio', - 'input:r': 'input:radio', - 'text': 'input:text', - 'passwd': 'input:password', - 'password': 'input:password', - 'pw': 'input:password', - 'input:t': 'input:text', - 'linkcss': 'link:css', - 'scriptsrc': 'script:src', - 'jquery': 'script:jquery', - 'jsapi': 'script:jsapi', - 'html5': 'html:5', - 'html4': 'html:4s', - 'html4s': 'html:4s', - 'html4t': 'html:4t', - 'xhtml': 'html:xxs', - 'xhtmlt': 'html:xt', - 'xhtmls': 'html:xs', - 'xhtml11': 'html:xxs', - 'opt': 'option', - 'st': 'strong', - 'css': 'style', - 'csss': 'link:css', - 'css:src': 'link:css', - 'csssrc': 'link:css', - 'js': 'script', - 'jss': 'script:src', - 'js:src': 'script:src', - 'jssrc': 'script:src', - } - short_tags = ( - 'area', 'base', 'basefont', 'br', 'embed', 'hr', \ - 'input', 'img', 'link', 'param', 'meta') - required = { - 'a': {'href':''}, - 'base': {'href':''}, - 'abbr': {'title': ''}, - 'acronym':{'title': ''}, - 'bdo': {'dir': ''}, - 'link': {'rel': 'stylesheet', 'href': ''}, - 'style': {'type': 'text/css'}, - 'script': {'type': 'text/javascript'}, - 'img': {'src':'', 'alt':''}, - 'iframe': {'src': '', 'frameborder': '0'}, - 'embed': {'src': '', 'type': ''}, - 'object': {'data': '', 'type': ''}, - 'param': {'name': '', 'value': ''}, - 'form': {'action': '', 'method': 'post'}, - 'table': {'cellspacing': '0'}, - 'input': {'type': '', 'name': '', 'value': ''}, - 'base': {'href': ''}, - 'area': {'shape': '', 'coords': '', 'href': '', 'alt': ''}, - 'select': {'name': ''}, - 'option': {'value': ''}, - 'textarea':{'name': ''}, - 'meta': {'content': ''}, - } - -class Parser: - """The parser. - """ - - # Constructor - # --------------------------------------------------------------------------- - - def __init__(self, options=None, str='', dialect=HtmlDialect()): - """Constructor. - """ - - self.tokens = [] - self.str = str - self.options = options - self.dialect = dialect - self.root = Element(parser=self) - self.caret = [] - self.caret.append(self.root) - self._last = [] - - # Methods - # --------------------------------------------------------------------------- - - def load_string(self, str): - """Loads a string to parse. - """ - - self.str = str - self._tokenize() - self._parse() - - def render(self): - """Renders. - Called by [[Router]]. - """ - - # Get the initial render of the root node - output = self.root.render() - - # Indent by whatever the input is indented with - indent = re.findall("^[\r\n]*(\s*)", self.str)[0] - output = indent + output.replace("\n", "\n" + indent) - - # Strip newline if not needed - if self.options.has("no-last-newline") \ - or self.prefix or self.suffix: - output = re.sub(r'\n\s*$', '', output) - - # TextMate mode - if self.options.has("textmate"): - output = self._textmatify(output) - - return output - - # Protected methods - # --------------------------------------------------------------------------- - - def _textmatify(self, output): - """Returns a version of the output with TextMate placeholders in it. - """ - - matches = re.findall(r'(>$%i]+>\s*)", str) - if match is None: break - if self.prefix is None: self.prefix = '' - self.prefix += match.group(0) - str = str[len(match.group(0)):] - - while True: - match = re.findall(r"(\s*<[^>]+>[\s\n\r]*)$", str) - if not match: break - if self.suffix is None: self.suffix = '' - self.suffix = match[0] + self.suffix - str = str[:-len(match[0])] - - # Split by the element separators - for token in re.split('(<|>|\+(?!\\s*\+|$))', str): - if token.strip() != '': - self.tokens.append(Token(token, parser=self)) - - def _parse(self): - """Takes the tokens and does its thing. - Populates [[self.root]]. - """ - - # Carry it over to the root node. - if self.prefix or self.suffix: - self.root.prefix = self.prefix - self.root.suffix = self.suffix - self.root.depth += 1 - - for token in self.tokens: - if token.type == Token.ELEMENT: - # Reset the "last elements added" list. We will - # repopulate this with the new elements added now. - self._last[:] = [] - - # Create [[Element]]s from a [[Token]]. - # They will be created as many as the multiplier specifies, - # multiplied by how many carets we have - count = 0 - for caret in self.caret: - local_count = 0 - for i in range(token.multiplier): - count += 1 - local_count += 1 - new = Element(token, caret, - count = count, - local_count = local_count, - parser = self) - self._last.append(new) - caret.append(new) - - # For > - elif token.type == Token.CHILD: - # The last children added. - self.caret[:] = self._last - - # For < - elif token.type == Token.PARENT: - # If we're the root node, don't do anything - parent = self.caret[0].parent - if parent is not None: - self.caret[:] = [parent] - return - - # Properties - # --------------------------------------------------------------------------- - - # Property: dialect - # The dialect of XML - dialect = None - - # Property: str - # The string - str = '' - - # Property: tokens - # The list of tokens - tokens = [] - - # Property: options - # Reference to the [[Options]] instance - options = None - - # Property: root - # The root [[Element]] node. - root = None - - # Property: caret - # The current insertion point. - caret = None - - # Property: _last - # List of the last appended stuff - _last = None - - # Property: indent - # Yeah - indent = '' - - # Property: prefix - # (String) The trailing tag in the beginning. - # - # Description: - # For instance, in `
ul>li
`, the `prefix` is `
`. - prefix = '' - - # Property: suffix - # (string) The trailing tag at the end. - suffix = '' - pass - -# =============================================================================== - -class Element: - """An element. - """ - - def __init__(self, token=None, parent=None, count=None, local_count=None, \ - parser=None, opening_tag=None, closing_tag=None, \ - attributes=None, name=None, text=None): - """Constructor. - - This is called by ???. - - Description: - All parameters are optional. - - token - (Token) The token (required) - parent - (Element) Parent element; `None` if root - count - (Int) The number to substitute for `&` (e.g., in `li.item-$`) - local_count - (Int) The number to substitute for `$` (e.g., in `li.item-&`) - parser - (Parser) The parser - - attributes - ... - name - ... - text - ... - """ - - self.children = [] - self.attributes = {} - self.parser = parser - - if token is not None: - # Assumption is that token is of type [[Token]] and is - # a [[Token.ELEMENT]]. - self.name = token.name - self.attributes = token.attributes.copy() - self.text = token.text - self.populate = token.populate - self.expand = token.expand - self.opening_tag = token.opening_tag - self.closing_tag = token.closing_tag - - # `count` can be given. This will substitude & in classname and ID - if count is not None: - for key in self.attributes: - attrib = self.attributes[key] - attrib = attrib.replace('&', ("%i" % count)) - if local_count is not None: - attrib = attrib.replace('$', ("%i" % local_count)) - self.attributes[key] = attrib - - # Copy over from parameters - if attributes: self.attributes = attribues - if name: self.name = name - if text: self.text = text - - self._fill_attributes() - - self.parent = parent - if parent is not None: - self.depth = parent.depth + 1 - - if self.populate: self._populate() - - def render(self): - """Renders the element, along with it's subelements, into HTML code. - - [Grouped under "Rendering methods"] - """ - - output = "" - try: spaces_count = int(self.parser.options.options['indent-spaces']) - except: spaces_count = 4 - spaces = ' ' * spaces_count - indent = self.depth * spaces - - prefix, suffix = ('', '') - if self.prefix: prefix = self.prefix + "\n" - if self.suffix: suffix = self.suffix - - # Make the guide from the ID (/#header), or the class if there's no ID (/.item) - # This is for the start-guide, end-guide and post-tag-guides - guide_str = '' - if 'id' in self.attributes: - guide_str += "#%s" % self.attributes['id'] - elif 'class' in self.attributes: - guide_str += ".%s" % self.attributes['class'].replace(' ', '.') - - # Build the post-tag guide (e.g.,
), - # the start guide, and the end guide. - guide = '' - start_guide = '' - end_guide = '' - if ((self.name == 'div') and \ - (('id' in self.attributes) or ('class' in self.attributes))): - - if (self.parser.options.has('post-tag-guides')): - guide = "" % guide_str - - if (self.parser.options.has('start-guide-format')): - format = self.parser.options.get('start-guide-format') - try: start_guide = format % guide_str - except: start_guide = (format + " " + guide_str).strip() - start_guide = "%s\n" % (indent, start_guide) - - if (self.parser.options.has('end-guide-format')): - format = self.parser.options.get('end-guide-format') - try: end_guide = format % guide_str - except: end_guide = (format + " " + guide_str).strip() - end_guide = "\n%s" % (indent, end_guide) - - # Short, self-closing tags (
) - short_tags = self.parser.dialect.short_tags - - # When it should be expanded.. - # (That is,
\n...\n
or similar -- wherein something must go - # inside the opening/closing tags) - if len(self.children) > 0 \ - or self.expand \ - or prefix or suffix \ - or (self.parser.options.has('expand-divs') and self.name == 'div'): - - for child in self.children: - output += child.render() - - # For expand divs: if there are no children (that is, `output` - # is still blank despite above), fill it with a blank line. - if (output == ''): output = indent + spaces + "\n" - - # If we're a root node and we have a prefix or suffix... - # (Only the root node can have a prefix or suffix.) - if prefix or suffix: - output = "%s%s%s%s%s\n" % \ - (indent, prefix, output, suffix, guide) - - # Uh.. - elif self.name != '' or \ - self.opening_tag is not None or \ - self.closing_tag is not None: - output = start_guide + \ - indent + self.get_opening_tag() + "\n" + \ - output + \ - indent + self.get_closing_tag() + \ - guide + end_guide + "\n" - - - # Short, self-closing tags (
) - elif self.name in short_tags: - output = "%s<%s />\n" % (indent, self.get_default_tag()) - - # Tags with text, possibly - elif self.name != '' or \ - self.opening_tag is not None or \ - self.closing_tag is not None: - output = "%s%s%s%s%s%s%s%s" % \ - (start_guide, indent, self.get_opening_tag(), \ - self.text, \ - self.get_closing_tag(), \ - guide, end_guide, "\n") - - # Else, it's an empty-named element (like the root). Pass. - else: pass - - - return output - - def get_default_tag(self): - """Returns the opening tag (without brackets). - - Usage: - element.get_default_tag() - - [Grouped under "Rendering methods"] - """ - - output = '%s' % (self.name) - for key, value in self.attributes.iteritems(): - output += ' %s="%s"' % (key, value) - return output - - def get_opening_tag(self): - if self.opening_tag is None: - return "<%s>" % self.get_default_tag() - else: - return self.opening_tag - - def get_closing_tag(self): - if self.closing_tag is None: - return "" % self.name - else: - return self.closing_tag - - def append(self, object): - """Registers an element as a child of this element. - - Usage: - element.append(child) - - Description: - Adds a given element `child` to the children list of this element. It - will be rendered when [[render()]] is called on the element. - - See also: - - [[get_last_child()]] - - [Grouped under "Traversion methods"] - """ - - self.children.append(object) - - def get_last_child(self): - """Returns the last child element which was [[append()]]ed to this element. - - Usage: - element.get_last_child() - - Description: - This is the same as using `element.children[-1]`. - - [Grouped under "Traversion methods"] - """ - - return self.children[-1] - - def _populate(self): - """Expands with default items. - - This is called when the [[populate]] flag is turned on. - """ - - if self.name == 'ul': - elements = [Element(name='li', parent=self, parser=self.parser)] - - elif self.name == 'dl': - elements = [ - Element(name='dt', parent=self, parser=self.parser), - Element(name='dd', parent=self, parser=self.parser)] - - elif self.name == 'table': - tr = Element(name='tr', parent=self, parser=self.parser) - td = Element(name='td', parent=tr, parser=self.parser) - tr.children.append(td) - elements = [tr] - - else: - elements = [] - - for el in elements: - self.children.append(el) - - def _fill_attributes(self): - """Fills default attributes for certain elements. - - Description: - This is called by the constructor. - - [Protected, grouped under "Protected methods"] - """ - - # Make sure 's have a href, 's have an src, etc. - required = self.parser.dialect.required - - for element, attribs in required.iteritems(): - if self.name == element: - for attrib in attribs: - if attrib not in self.attributes: - self.attributes[attrib] = attribs[attrib] - - # --------------------------------------------------------------------------- - - # Property: last_child - # [Read-only] - last_child = property(get_last_child) - - # --------------------------------------------------------------------------- - - # Property: parent - # (Element) The parent element. - parent = None - - # Property: name - # (String) The name of the element (e.g., `div`) - name = '' - - # Property: attributes - # (Dict) The dictionary of attributes (e.g., `{'src': 'image.jpg'}`) - attributes = None - - # Property: children - # (List of Elements) The children - children = None - - # Property: opening_tag - # (String or None) The opening tag. Optional; will use `name` and - # `attributes` if this is not given. - opening_tag = None - - # Property: closing_tag - # (String or None) The closing tag - closing_tag = None - - text = '' - depth = -1 - expand = False - populate = False - parser = None - - # Property: prefix - # Only the root note can have this. - prefix = None - suffix = None - -# =============================================================================== - -class Token: - def __init__(self, str, parser=None): - """Token. - - Description: - str - The string to parse - - In the string `div > ul`, there are 3 tokens. (`div`, `>`, and `ul`) - - For `>`, it will be a `Token` with `type` set to `Token.CHILD` - """ - - self.str = str.strip() - self.attributes = {} - self.parser = parser - - # Set the type. - if self.str == '<': - self.type = Token.PARENT - elif self.str == '>': - self.type = Token.CHILD - elif self.str == '+': - self.type = Token.SIBLING - else: - self.type = Token.ELEMENT - self._init_element() - - def _init_element(self): - """Initializes. Only called if the token is an element token. - [Private] - """ - - # Get the tag name. Default to DIV if none given. - name = re.findall('^([\w\-:]*)', self.str)[0] - name = name.lower().replace('-', ':') - - # Find synonyms through this thesaurus - synonyms = self.parser.dialect.synonyms - if name in synonyms.keys(): - name = synonyms[name] - - if ':' in name: - try: spaces_count = int(self.parser.options.get('indent-spaces')) - except: spaces_count = 4 - indent = ' ' * spaces_count - - shortcuts = self.parser.dialect.shortcuts - if name in shortcuts.keys(): - for key, value in shortcuts[name].iteritems(): - setattr(self, key, value) - if 'html' in name: - return - else: - self.name = name - - elif (name == ''): self.name = 'div' - else: self.name = name - - # Look for attributes - attribs = [] - for attrib in re.findall('\[([^\]]*)\]', self.str): - attribs.append(attrib) - self.str = self.str.replace("[" + attrib + "]", "") - if len(attribs) > 0: - for attrib in attribs: - try: key, value = attrib.split('=', 1) - except: key, value = attrib, '' - self.attributes[key] = value - - # Try looking for text - text = None - for text in re.findall('\{([^\}]*)\}', self.str): - self.str = self.str.replace("{" + text + "}", "") - if text is not None: - self.text = text - - # Get the class names - classes = [] - for classname in re.findall('\.([\$a-zA-Z0-9_\-\&]+)', self.str): - classes.append(classname) - if len(classes) > 0: - try: self.attributes['class'] - except: self.attributes['class'] = '' - self.attributes['class'] += ' ' + ' '.join(classes) - self.attributes['class'] = self.attributes['class'].strip() - - # Get the ID - id = None - for id in re.findall('#([\$a-zA-Z0-9_\-\&]+)', self.str): pass - if id is not None: - self.attributes['id'] = id - - # See if there's a multiplier (e.g., "li*3") - multiplier = None - for multiplier in re.findall('\*\s*([0-9]+)', self.str): pass - if multiplier is not None: - self.multiplier = int(multiplier) - - # Populate flag (e.g., ul+) - flags = None - for flags in re.findall('[\+\!]+$', self.str): pass - if flags is not None: - if '+' in flags: self.populate = True - if '!' in flags: self.expand = True - - def __str__(self): - return self.str - - str = '' - parser = None - - # For elements - # See the properties of `Element` for description on these. - name = '' - attributes = None - multiplier = 1 - expand = False - populate = False - text = '' - opening_tag = None - closing_tag = None - - # Type - type = 0 - ELEMENT = 2 - CHILD = 4 - PARENT = 8 - SIBLING = 16 - -# =============================================================================== - -class Router: - """The router. - """ - - # Constructor - # --------------------------------------------------------------------------- - - def __init__(self): - pass - - # Methods - # --------------------------------------------------------------------------- - - def start(self, options=None, str=None, ret=None): - if (options): - self.options = Options(router=self, options=options, argv=None) - else: - self.options = Options(router=self, argv=sys.argv[1:], options=None) - - if (self.options.has('help')): - return self.help() - - elif (self.options.has('version')): - return self.version() - - else: - return self.parse(str=str, ret=ret) - - def help(self): - print "Usage: %s [OPTIONS]" % sys.argv[0] - print "Expands input into HTML." - print "" - for short, long, info in self.options.cmdline_keys: - if "Deprecated" in info: continue - if not short == '': short = '-%s,' % short - if not long == '': long = '--%s' % long.replace("=", "=XXX") - - print "%6s %-25s %s" % (short, long, info) - print "" - print "\n".join(self.help_content) - - def version(self): - print "Uhm, yeah." - - def parse(self, str=None, ret=None): - self.parser = Parser(self.options) - - try: - # Read the files - # for line in fileinput.input(): lines.append(line.rstrip(os.linesep)) - if str is not None: - lines = str - else: - lines = [sys.stdin.read()] - lines = " ".join(lines) - - except KeyboardInterrupt: - pass - - except: - sys.stderr.write("Reading failed.\n") - return - - try: - self.parser.load_string(lines) - output = self.parser.render() - if ret: return output - sys.stdout.write(output) - - except: - sys.stderr.write("Parse error. Check your input.\n") - print sys.exc_info()[0] - print sys.exc_info()[1] - - def exit(self): - sys.exit() - - help_content = [ - "Please refer to the manual for more information.", - ] - -# =============================================================================== - -class Options: - def __init__(self, router, argv, options=None): - # Init self - self.router = router - - # `options` can be given as a dict of stuff to preload - if options: - for k, v in options.iteritems(): - self.options[k] = v - return - - # Prepare for getopt() - short_keys, long_keys = "", [] - for short, long, info in self.cmdline_keys: # 'v', 'version' - short_keys += short - long_keys.append(long) - - try: - getoptions, arguments = getopt.getopt(argv, short_keys, long_keys) - - except getopt.GetoptError: - err = sys.exc_info()[1] - sys.stderr.write("Options error: %s\n" % err) - sys.stderr.write("Try --help for a list of arguments.\n") - return router.exit() - - # Sort them out into options - options = {} - i = 0 - for option in getoptions: - key, value = option # '--version', '' - if (value == ''): value = True - - # If the key is long, write it - if key[0:2] == '--': - clean_key = key[2:] - options[clean_key] = value - - # If the key is short, look for the long version of it - elif key[0:1] == '-': - for short, long, info in self.cmdline_keys: - if short == key[1:]: - print long - options[long] = True - - # Done - for k, v in options.iteritems(): - self.options[k] = v - - def __getattr__(self, attr): - return self.get(attr) - - def get(self, attr): - try: return self.options[attr] - except: return None - - def has(self, attr): - try: return self.options.has_key(attr) - except: return False - - options = { - 'indent-spaces': 4 - } - cmdline_keys = [ - ('h', 'help', 'Shows help'), - ('v', 'version', 'Shows the version'), - ('', 'no-guides', 'Deprecated'), - ('', 'post-tag-guides', 'Adds comments at the end of DIV tags'), - ('', 'textmate', 'Adds snippet info (textmate mode)'), - ('', 'indent-spaces=', 'Indent spaces'), - ('', 'expand-divs', 'Automatically expand divs'), - ('', 'no-last-newline', 'Skip the trailing newline'), - ('', 'start-guide-format=', 'To be documented'), - ('', 'end-guide-format=', 'To be documented'), - ] - - # Property: router - # Router - router = 1 - -# =============================================================================== - -if __name__ == "__main__": - z = Router() - z.start() diff --git a/.vim/bundle/sparkup/ftplugin/html/sparkup.vim b/.vim/bundle/sparkup/ftplugin/html/sparkup.vim deleted file mode 100644 index 80be270..0000000 --- a/.vim/bundle/sparkup/ftplugin/html/sparkup.vim +++ /dev/null @@ -1,74 +0,0 @@ -" Sparkup -" Installation: -" Copy the contents of vim/ftplugin/ to your ~/.vim/ftplugin directory. -" -" $ cp -R vim/ftplugin ~/.vim/ftplugin/ -" -" Configuration: -" g:sparkup (Default: 'sparkup') - -" Location of the sparkup executable. You shouldn't need to change this -" setting if you used the install option above. -" -" g:sparkupArgs (Default: '--no-last-newline') - -" Additional args passed to sparkup. -" -" g:sparkupExecuteMapping (Default: '') - -" Mapping used to execute sparkup. -" -" g:sparkupNextMapping (Default: '') - -" Mapping used to jump to the next empty tag/attribute. - -if !exists('g:sparkupExecuteMapping') - let g:sparkupExecuteMapping = '' -endif - -if !exists('g:sparkupNextMapping') - let g:sparkupNextMapping = '' -endif - -exec 'nmap ' . g:sparkupExecuteMapping . ' :call Sparkup()' -exec 'imap ' . g:sparkupExecuteMapping . ' u:call Sparkup()' -exec 'nmap ' . g:sparkupNextMapping . ' :call SparkupNext()' -exec 'imap ' . g:sparkupNextMapping . ' u:call SparkupNext()' - -if exists('*s:Sparkup') - finish -endif - -function! s:Sparkup() - if !exists('s:sparkup') - let s:sparkup = exists('g:sparkup') ? g:sparkup : 'sparkup' - let s:sparkupArgs = exists('g:sparkupArgs') ? g:sparkupArgs : '--no-last-newline' - " check the user's path first. if not found then search relative to - " sparkup.vim in the runtimepath. - if !executable(s:sparkup) - let paths = substitute(escape(&runtimepath, ' '), '\(,\|$\)', '/**\1', 'g') - let s:sparkup = findfile('sparkup.py', paths) - - if !filereadable(s:sparkup) - echohl WarningMsg - echom 'Warning: could not find sparkup on your path or in your vim runtime path.' - echohl None - finish - endif - endif - let s:sparkup = '"' . s:sparkup . '"' - let s:sparkup .= printf(' %s --indent-spaces=%s', s:sparkupArgs, &shiftwidth) - if has('win32') || has('win64') - let s:sparkup = 'python ' . s:sparkup - endif - endif - exec '.!' . s:sparkup - call s:SparkupNext() -endfunction - -function! s:SparkupNext() - " 1: empty tag, 2: empty attribute, 3: empty line - let n = search('><\/\|\(""\)\|^\s*$', 'Wp') - if n == 3 - startinsert! - else - execute 'normal l' - startinsert - endif -endfunction diff --git a/.vim/bundle/tcomment_vim b/.vim/bundle/tcomment_vim deleted file mode 160000 index 32fc40d..0000000 --- a/.vim/bundle/tcomment_vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 32fc40dbd5186a14b1f7a5bc872296991139bbcf diff --git a/.vim/bundle/vim-fugitive b/.vim/bundle/vim-fugitive deleted file mode 160000 index e954d36..0000000 --- a/.vim/bundle/vim-fugitive +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e954d364f5cbbff47b7a0626f4339aad9e5279d2 diff --git a/.vim/bundle/vimball/autoload/vimball.vim b/.vim/bundle/vimball/autoload/vimball.vim deleted file mode 100644 index b97c3a5..0000000 --- a/.vim/bundle/vimball/autoload/vimball.vim +++ /dev/null @@ -1,737 +0,0 @@ -" vimball.vim : construct a file containing both paths and files -" Author: Charles E. Campbell, Jr. -" Date: Dec 28, 2009 -" Version: 30 -" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim -" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. -" The VIM LICENSE applies to Vimball.vim, and Vimball.txt -" (see |copyright|) except use "Vimball" instead of "Vim". -" No warranty, express or implied. -" *** *** Use At-Your-Own-Risk! *** *** - -" --------------------------------------------------------------------- -" Load Once: {{{1 -if &cp || exists("g:loaded_vimball") - finish -endif -let g:loaded_vimball = "v30" -if v:version < 702 - echohl WarningMsg - echo "***warning*** this version of vimball needs vim 7.2" - echohl Normal - finish -endif -let s:keepcpo= &cpo -set cpo&vim -"DechoTabOn - -" ===================================================================== -" Constants: {{{1 -if !exists("s:USAGE") - let s:USAGE = 0 - let s:WARNING = 1 - let s:ERROR = 2 - - " determine if cygwin is in use or not - if !exists("g:netrw_cygwin") - if has("win32") || has("win95") || has("win64") || has("win16") - if &shell =~ '\%(\\|\\)\%(\.exe\)\=$' - let g:netrw_cygwin= 1 - else - let g:netrw_cygwin= 0 - endif - else - let g:netrw_cygwin= 0 - endif - endif - - " set up g:vimball_mkdir if the mkdir() call isn't defined - if !exists("*mkdir") - if exists("g:netrw_local_mkdir") - let g:vimball_mkdir= g:netrw_local_mkdir - elseif executable("mkdir") - let g:vimball_mkdir= "mkdir" - elseif executable("makedir") - let g:vimball_mkdir= "makedir" - endif - if !exists(g:vimball_mkdir) - call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined") - endif - endif -endif - -" ===================================================================== -" Functions: {{{1 - -" --------------------------------------------------------------------- -" vimball#MkVimball: creates a vimball given a list of paths to files {{{2 -" Input: -" line1,line2: a range of lines containing paths to files to be included in the vimball -" writelevel : if true, force a write to filename.vba, even if it exists -" (usually accomplished with :MkVimball! ... -" filename : base name of file to be created (ie. filename.vba) -" Output: a filename.vba using vimball format: -" path -" filesize -" [file] -" path -" filesize -" [file] -fun! vimball#MkVimball(line1,line2,writelevel,...) range -" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0) - if a:1 =~ '\.vim$' || a:1 =~ '\.txt$' - let vbname= substitute(a:1,'\.\a\{3}$','.vba','') - else - let vbname= a:1 - endif - if vbname !~ '\.vba$' - let vbname= vbname.'.vba' - endif -" call Decho("vbname<".vbname.">") - if !a:writelevel && a:1 =~ '[\/]' - call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist") -" call Dret("MkVimball : vimball name<".a:1."> should not include slashes") - return - endif - if !a:writelevel && filereadable(vbname) - call vimball#ShowMesg(s:ERROR,"(MkVimball) file<".vbname."> exists; use ! to insist") -" call Dret("MkVimball : file<".vbname."> already exists; use ! to insist") - return - endif - - " user option bypass - call vimball#SaveSettings() - - if a:0 >= 2 - " allow user to specify where to get the files - let home= expand(a:2) - else - " use first existing directory from rtp - let home= vimball#VimballHome() - endif - - " save current directory - let curdir = getcwd() - call s:ChgDir(home) - - " record current tab, initialize while loop index - let curtabnr = tabpagenr() - let linenr = a:line1 -" call Decho("curtabnr=".curtabnr) - - while linenr <= a:line2 - let svfile = getline(linenr) -" call Decho("svfile<".svfile.">") - - if !filereadable(svfile) - call vimball#ShowMesg(s:ERROR,"unable to read file<".svfile.">") - call s:ChgDir(curdir) - call vimball#RestoreSettings() -" call Dret("MkVimball") - return - endif - - " create/switch to mkvimball tab - if !exists("vbtabnr") - tabnew - silent! file Vimball - let vbtabnr= tabpagenr() - else - exe "tabn ".vbtabnr - endif - - let lastline= line("$") + 1 - if lastline == 2 && getline("$") == "" - call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.') - call setline(2,'UseVimball') - call setline(3,'finish') - let lastline= line("$") + 1 - endif - call setline(lastline ,substitute(svfile,'$',' [[[1','')) - call setline(lastline+1,0) - - " write the file from the tab -" call Decho("exe $r ".fnameescape(svfile)) - exe "$r ".fnameescape(svfile) - - call setline(lastline+1,line("$") - lastline - 1) -" call Decho("lastline=".lastline." line$=".line("$")) - - " restore to normal tab - exe "tabn ".curtabnr - let linenr= linenr + 1 - endwhile - - " write the vimball - exe "tabn ".vbtabnr - call s:ChgDir(curdir) - setlocal ff=unix - if a:writelevel -" call Decho("exe w! ".fnameescape(vbname)) - exe "w! ".fnameescape(vbname) - else -" call Decho("exe w ".fnameescape(vbname)) - exe "w ".fnameescape(vbname) - endif -" call Decho("Vimball<".vbname."> created") - echo "Vimball<".vbname."> created" - - " remove the evidence - setlocal nomod bh=wipe - exe "tabn ".curtabnr - exe "tabc ".vbtabnr - - " restore options - call vimball#RestoreSettings() - -" call Dret("MkVimball") -endfun - -" --------------------------------------------------------------------- -" vimball#Vimball: extract and distribute contents from a vimball {{{2 -" (invoked the the UseVimball command embedded in -" vimballs' prologue) -fun! vimball#Vimball(really,...) -" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0) - - if v:version < 701 || (v:version == 701 && !exists('*fnameescape')) - echoerr "your vim is missing the fnameescape() function" -" call Dret("vimball#Vimball : needs 7.1 with patch 299") - return - endif - - if getline(1) !~ '^" Vimball Archiver' - echoerr "(Vimball) The current file does not appear to be a Vimball!" -" call Dret("vimball#Vimball") - return - endif - - " set up standard settings - call vimball#SaveSettings() - let curtabnr = tabpagenr() - let vimballfile = expand("%:tr") - - " set up vimball tab -" call Decho("setting up vimball tab") - tabnew - silent! file Vimball - let vbtabnr= tabpagenr() - let didhelp= "" - - " go to vim plugin home - if a:0 > 0 - let home= expand(a:1) - else - let home= vimball#VimballHome() - endif -" call Decho("home<".home.">") - - " save current directory and remove older same-named vimball, if any - let curdir = getcwd() -" call Decho("home<".home.">") -" call Decho("curdir<".curdir.">") - - call s:ChgDir(home) - let s:ok_unablefind= 1 - call vimball#RmVimball(vimballfile) - unlet s:ok_unablefind - - let linenr = 4 - let filecnt = 0 - - " give title to listing of (extracted) files from Vimball Archive - if a:really - echohl Title | echomsg "Vimball Archive" | echohl None - else - echohl Title | echomsg "Vimball Archive Listing" | echohl None - echohl Statement | echomsg "files would be placed under: ".home | echohl None - endif - - " apportion vimball contents to various files -" call Decho("exe tabn ".curtabnr) - exe "tabn ".curtabnr -" call Decho("linenr=".linenr." line$=".line("$")) - while 1 < linenr && linenr < line("$") - let fname = substitute(getline(linenr),'\t\[\[\[1$','','') - let fname = substitute(fname,'\\','/','g') -" let fsize = getline(linenr+1)+0 - let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0 - let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','') - let filecnt = filecnt + 1 -" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt) - - if a:really - echomsg "extracted <".fname.">: ".fsize." lines" - else - echomsg "would extract <".fname.">: ".fsize." lines" - endif -" call Decho("using L#".linenr.": will extract file<".fname.">") -" call Decho("using L#".(linenr+1).": fsize=".fsize) - - " Allow AsNeeded/ directory to take place of plugin/ directory - " when AsNeeded/filename is filereadable or was present in VimballRecord - if fname =~ '\ instead of <".fname.">") - let fname= anfname - endif - endif - - " make directories if they don't exist yet - if a:really -" call Decho("making directories if they don't exist yet (fname<".fname.">)") - let fnamebuf= substitute(fname,'\\','/','g') - let dirpath = substitute(home,'\\','/','g') - while fnamebuf =~ '/' - let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','') - let dirpath = dirname - let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','') -" call Decho("dirname<".dirname.">") - if !isdirectory(dirname) -" call Decho("making <".dirname.">") - if exists("g:vimball_mkdir") - call system(g:vimball_mkdir." ".shellescape(dirname)) - else - call mkdir(dirname) - endif - call s:RecordInVar(home,"rmdir('".dirname."')") - endif - endwhile - endif - call s:ChgDir(home) - - " grab specified qty of lines and place into "a" buffer - " (skip over path/filename and qty-lines) - let linenr = linenr + 2 - let lastline = linenr + fsize - 1 -" call Decho("exe ".linenr.",".lastline."yank a") - exe "silent ".linenr.",".lastline."yank a" - - " copy "a" buffer into tab -" call Decho('copy "a buffer into tab#'.vbtabnr) - exe "tabn ".vbtabnr - setlocal ma - silent! %d - silent put a - 1 - silent d - - " write tab to file - if a:really - let fnamepath= home."/".fname -" call Decho("exe w! ".fnameescape(fnamepath)) - if fenc != "" - exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath) - else - exe "silent w! ".fnameescape(fnamepath) - endif - echo "wrote ".fnameescape(fnamepath) - call s:RecordInVar(home,"call delete('".fnamepath."')") - endif - - " return to tab with vimball -" call Decho("exe tabn ".curtabnr) - exe "tabn ".curtabnr - - " set up help if its a doc/*.txt file -" call Decho("didhelp<".didhelp."> fname<".fname.">") - if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$' - let didhelp= substitute(fname,'^\(.*\") - endif - - " update for next file -" call Decho("update linenr= [linenr=".linenr."] + [fsize=".fsize."] = ".(linenr+fsize)) - let linenr= linenr + fsize - endwhile - - " set up help -" call Decho("about to set up help: didhelp<".didhelp.">") - if didhelp != "" - let htpath= home."/".didhelp -" call Decho("exe helptags ".htpath) - exe "helptags ".fnameescape(htpath) - echo "did helptags" - endif - - " make sure a "Press ENTER..." prompt appears to keep the messages showing! - while filecnt <= &ch - echomsg " " - let filecnt= filecnt + 1 - endwhile - - " record actions in <.VimballRecord> - call s:RecordInFile(home) - - " restore events, delete tab and buffer - exe "tabn ".vbtabnr - setlocal nomod bh=wipe - exe "tabn ".curtabnr - exe "tabc ".vbtabnr - call vimball#RestoreSettings() - call s:ChgDir(curdir) - -" call Dret("vimball#Vimball") -endfun - -" --------------------------------------------------------------------- -" vimball#RmVimball: remove any files, remove any directories made by any {{{2 -" previous vimball extraction based on a file of the current -" name. -" Usage: RmVimball (assume current file is a vimball; remove) -" RmVimball vimballname -fun! vimball#RmVimball(...) -" call Dfunc("vimball#RmVimball() a:0=".a:0) - if exists("g:vimball_norecord") -" call Dret("vimball#RmVimball : (g:vimball_norecord)") - return - endif - - if a:0 == 0 - let curfile= expand("%:tr") -" call Decho("case a:0=0: curfile<".curfile."> (used expand(%:tr))") - else - if a:1 =~ '[\/]' - call vimball#ShowMesg(s:USAGE,"RmVimball vimballname [path]") -" call Dret("vimball#RmVimball : suspect a:1<".a:1.">") - return - endif - let curfile= a:1 -" call Decho("case a:0=".a:0.": curfile<".curfile.">") - endif - if curfile =~ '\.vba$' - let curfile= substitute(curfile,'\.vba','','') - endif - if a:0 >= 2 - let home= expand(a:2) - else - let home= vimball#VimballHome() - endif - let curdir = getcwd() -" call Decho("home <".home.">") -" call Decho("curfile<".curfile.">") -" call Decho("curdir <".curdir.">") - - call s:ChgDir(home) - if filereadable(".VimballRecord") -" call Decho(".VimballRecord is readable") -" call Decho("curfile<".curfile.">") - keepalt keepjumps 1split - silent! keepalt keepjumps e .VimballRecord - let keepsrch= @/ -" call Decho('search for ^\M'.curfile.'.\m: ') -" call Decho('search for ^\M'.curfile.'.\mvba: ') -" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ') - if search('^\M'.curfile."\m: ".'cw') - let foundit= 1 - elseif search('^\M'.curfile.".\mvba: ",'cw') - let foundit= 1 - elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw') - let foundit= 1 - else - let foundit = 0 - endif - if foundit - let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','') - let s:VBRstring= substitute(exestring,'call delete(','','g') - let s:VBRstring= substitute(s:VBRstring,"[')]",'','g') -" call Decho("exe ".exestring) - silent! keepalt keepjumps exe exestring - silent! keepalt keepjumps d - let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g")) -" call Decho("exestring<".exestring.">") - echomsg "removed ".exestring." files" - else - let s:VBRstring= '' - let curfile = substitute(curfile,'\.vba','','') -" call Decho("unable to find <".curfile."> in .VimballRecord") - if !exists("s:ok_unablefind") - call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord") - endif - endif - silent! keepalt keepjumps g/^\s*$/d - silent! keepalt keepjumps wq! - let @/= keepsrch - endif - call s:ChgDir(curdir) - -" call Dret("vimball#RmVimball") -endfun - -" --------------------------------------------------------------------- -" vimball#Decompress: attempts to automatically decompress vimballs {{{2 -fun! vimball#Decompress(fname,...) -" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0) - - " decompression: - if expand("%") =~ '.*\.gz' && executable("gunzip") - " handle *.gz with gunzip - silent exe "!gunzip ".shellescape(a:fname) - if v:shell_error != 0 - call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">") - endif - let fname= substitute(a:fname,'\.gz$','','') - exe "e ".escape(fname,' \') - if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif - - elseif expand("%") =~ '.*\.gz' && executable("gzip") - " handle *.gz with gzip -d - silent exe "!gzip -d ".shellescape(a:fname) - if v:shell_error != 0 - call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">") - endif - let fname= substitute(a:fname,'\.gz$','','') - exe "e ".escape(fname,' \') - if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif - - elseif expand("%") =~ '.*\.bz2' && executable("bunzip2") - " handle *.bz2 with bunzip2 - silent exe "!bunzip2 ".shellescape(a:fname) - if v:shell_error != 0 - call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">") - endif - let fname= substitute(a:fname,'\.bz2$','','') - exe "e ".escape(fname,' \') - if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif - - elseif expand("%") =~ '.*\.bz2' && executable("bzip2") - " handle *.bz2 with bzip2 -d - silent exe "!bzip2 -d ".shellescape(a:fname) - if v:shell_error != 0 - call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">") - endif - let fname= substitute(a:fname,'\.bz2$','','') - exe "e ".escape(fname,' \') - if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif - - elseif expand("%") =~ '.*\.zip' && executable("unzip") - " handle *.zip with unzip - silent exe "!unzip ".shellescape(a:fname) - if v:shell_error != 0 - call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">") - endif - let fname= substitute(a:fname,'\.zip$','','') - exe "e ".escape(fname,' \') - if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif - endif - - if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif - -" call Dret("Decompress") -endfun - -" --------------------------------------------------------------------- -" vimball#ShowMesg: {{{2 -fun! vimball#ShowMesg(level,msg) -" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)") - - let rulerkeep = &ruler - let showcmdkeep = &showcmd - set noruler noshowcmd - redraw! - - if &fo =~ '[ta]' - echomsg "***vimball*** ".a:msg - else - if a:level == s:WARNING || a:level == s:USAGE - echohl WarningMsg - elseif a:level == s:ERROR - echohl Error - endif - echomsg "***vimball*** ".a:msg - echohl None - endif - - if a:level != s:USAGE - call inputsave()|let ok= input("Press to continue")|call inputrestore() - endif - - let &ruler = rulerkeep - let &showcmd = showcmdkeep - -" call Dret("vimball#ShowMesg") -endfun -" ===================================================================== -" s:ChgDir: change directory (in spite of Windoze) {{{2 -fun! s:ChgDir(newdir) -" call Dfunc("ChgDir(newdir<".a:newdir.">)") - if (has("win32") || has("win95") || has("win64") || has("win16")) - exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g')) - else - exe 'silent cd '.fnameescape(a:newdir) - endif -" call Dret("ChgDir : curdir<".getcwd().">") -endfun - -" --------------------------------------------------------------------- -" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2 -fun! s:RecordInVar(home,cmd) -" call Dfunc("RecordInVar(home<".a:home."> cmd<".a:cmd.">)") - if a:cmd =~ '^rmdir' -" if !exists("s:recorddir") -" let s:recorddir= substitute(a:cmd,'^rmdir',"call s:Rmdir",'') -" else -" let s:recorddir= s:recorddir."|".substitute(a:cmd,'^rmdir',"call s:Rmdir",'') -" endif - elseif !exists("s:recordfile") - let s:recordfile= a:cmd - else - let s:recordfile= s:recordfile."|".a:cmd - endif -" call Dret("RecordInVar : s:recordfile<".(exists("s:recordfile")? s:recordfile : "")."> s:recorddir<".(exists("s:recorddir")? s:recorddir : "").">") -endfun - -" --------------------------------------------------------------------- -" s:RecordInFile: {{{2 -fun! s:RecordInFile(home) -" call Dfunc("s:RecordInFile()") - if exists("g:vimball_norecord") -" call Dret("s:RecordInFile : g:vimball_norecord") - return - endif - - if exists("s:recordfile") || exists("s:recorddir") - let curdir= getcwd() - call s:ChgDir(a:home) - keepalt keepjumps 1split - - let cmd= expand("%:tr").": " -" call Decho("cmd<".cmd.">") - - silent! keepalt keepjumps e .VimballRecord - setlocal ma - $ - if exists("s:recordfile") && exists("s:recorddir") - let cmd= cmd.s:recordfile."|".s:recorddir - elseif exists("s:recorddir") - let cmd= cmd.s:recorddir - elseif exists("s:recordfile") - let cmd= cmd.s:recordfile - else -" call Dret("s:RecordInFile : neither recordfile nor recorddir exist") - return - endif -" call Decho("cmd<".cmd.">") - - " put command into buffer, write .VimballRecord `file - keepalt keepjumps put=cmd - silent! keepalt keepjumps g/^\s*$/d - silent! keepalt keepjumps wq! - call s:ChgDir(curdir) - - if exists("s:recorddir") -" call Decho("unlet s:recorddir<".s:recorddir.">") - unlet s:recorddir - endif - if exists("s:recordfile") -" call Decho("unlet s:recordfile<".s:recordfile.">") - unlet s:recordfile - endif - else -" call Decho("s:record[file|dir] doesn't exist") - endif - -" call Dret("s:RecordInFile") -endfun - -" --------------------------------------------------------------------- -" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2 -fun! vimball#VimballHome() -" call Dfunc("vimball#VimballHome()") - if exists("g:vimball_home") - let home= g:vimball_home - else - " go to vim plugin home - for home in split(&rtp,',') + [''] - if isdirectory(home) && filewritable(home) | break | endif - let basehome= substitute(home,'[/\\]\.vim$','','') - if isdirectory(basehome) && filewritable(basehome) - let home= basehome."/.vim" - break - endif - endfor - if home == "" - " just pick the first directory - let home= substitute(&rtp,',.*$','','') - endif - if (has("win32") || has("win95") || has("win64") || has("win16")) - let home= substitute(home,'/','\\','g') - endif - endif - " insure that the home directory exists -" call Decho("picked home<".home.">") - if !isdirectory(home) - if exists("g:vimball_mkdir") -" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">") -" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")") - call system(g:vimball_mkdir." ".shellescape(home)) - else -" call Decho("home<".home."> isn't a directory -- making it now with mkdir()") - call mkdir(home) - endif - endif -" call Dret("vimball#VimballHome <".home.">") - return home -endfun - -" --------------------------------------------------------------------- -" vimball#SaveSettings: {{{2 -fun! vimball#SaveSettings() -" call Dfunc("SaveSettings()") - let s:makeep = getpos("'a") - let s:regakeep= @a - if exists("&acd") - let s:acdkeep = &acd - endif - let s:eikeep = &ei - let s:fenkeep = &l:fen - let s:hidkeep = &hidden - let s:ickeep = &ic - let s:lzkeep = &lz - let s:pmkeep = &pm - let s:repkeep = &report - let s:vekeep = &ve - let s:ffkeep = &l:ff - if exists("&acd") - setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix - else - setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix - endif - " vimballs should be in unix format - setlocal ff=unix -" call Dret("SaveSettings") -endfun - -" --------------------------------------------------------------------- -" vimball#RestoreSettings: {{{2 -fun! vimball#RestoreSettings() -" call Dfunc("RestoreSettings()") - let @a = s:regakeep - if exists("&acd") - let &acd = s:acdkeep - endif - let &l:fen = s:fenkeep - let &hidden = s:hidkeep - let &ic = s:ickeep - let &lz = s:lzkeep - let &pm = s:pmkeep - let &report = s:repkeep - let &ve = s:vekeep - let &ei = s:eikeep - let &l:ff = s:ffkeep - if s:makeep[0] != 0 - " restore mark a -" call Decho("restore mark-a: makeep=".string(makeep)) - call setpos("'a",s:makeep) - endif - if exists("&acd") - unlet s:acdkeep - endif - unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep s:ffkeep -" call Dret("RestoreSettings") -endfun - -" --------------------------------------------------------------------- -" Modelines: {{{1 -" vim: fdm=marker diff --git a/.vim/bundle/vimball/doc/pi_vimball.txt b/.vim/bundle/vimball/doc/pi_vimball.txt deleted file mode 100644 index 885131e..0000000 --- a/.vim/bundle/vimball/doc/pi_vimball.txt +++ /dev/null @@ -1,231 +0,0 @@ -*pi_vimball.txt* For Vim version 7.2. Last change: 2009 Dec 28 - - ---------------- - Vimball Archiver - ---------------- - -Author: Charles E. Campbell, Jr. - (remove NOSPAM from Campbell's email first) -Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. *Vimball-copyright* - The VIM LICENSE applies to Vimball.vim, and Vimball.txt - (see |copyright|) except use "Vimball" instead of "Vim". - No warranty, express or implied. - Use At-Your-Own-Risk! - -============================================================================== -1. Contents *vba* *vimball* *vimball-contents* - - 1. Contents......................................: |vimball-contents| - 3. Vimball Manual................................: |vimball-manual| - MkVimball.....................................: |:MkVimball| - UseVimball....................................: |:UseVimball| - RmVimball.....................................: |:RmVimball| - 4. Vimball History...............................: |vimball-history| - - -============================================================================== -2. Vimball Introduction *vimball-intro* - - Vimball is intended to make life simpler for users of plugins. All - a user needs to do with a vimball is: > - vim someplugin.vba - :so % - :q -< and the plugin and all its components will be installed into their - appropriate directories. Note that one doesn't need to be in any - particular directory when one does this. Plus, any help for the - plugin will also be automatically installed. - - If a user has decided to use the AsNeeded plugin, vimball is smart - enough to put scripts nominally intended for .vim/plugin/ into - .vim/AsNeeded/ instead. - - Removing a plugin that was installed with vimball is really easy: > - vim - :RmVimball someplugin -< This operation is not at all easy for zips and tarballs, for example. - - Vimball examines the user's |'runtimepath'| to determine where to put - the scripts. The first directory mentioned on the runtimepath is - usually used if possible. Use > - :echo &rtp -< to see that directory. - - -============================================================================== -3. Vimball Manual *vimball-manual* - -MAKING A VIMBALL *:MkVimball* - :[range]MkVimball[!] filename [path] - - The range is composed of lines holding paths to files to be included - in your new vimball, omitting the portion of the paths that is - normally specified by the runtimepath (|'rtp'|). As an example: > - plugin/something.vim - doc/something.txt -< using > - :[range]MkVimball filename -< - on this range of lines will create a file called "filename.vba" which - can be used by Vimball.vim to re-create these files. If the - "filename.vba" file already exists, then MkVimball will issue a - warning and not create the file. Note that these paths are relative - to your .vim (vimfiles) directory, and the files should be in that - directory. The vimball plugin normally uses the first |'runtimepath'| - directory that exists as a prefix; don't use absolute paths, unless - the user has specified such a path. - - If you use the exclamation point (!), then MkVimball will create the - "filename.vba" file, overwriting it if it already exists. This - behavior resembles that for |:w|. - - If you wish to force slashes into the filename, that can also be done - by using the exclamation mark (ie. :MkVimball! path/filename). - - The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27 - has a good idea on how to automate the production of vimballs using - make. - - -MAKING DIRECTORIES VIA VIMBALLS *g:vimball_mkdir* - - First, the |mkdir()| command is tried (not all systems support it). - - If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set - as follows: > - |g:netrw_local_mkdir|, if it exists - "mkdir" , if it is executable - "makedir" , if it is executable - Otherwise , it is undefined. -< One may explicitly specify the directory making command using - g:vimball_mkdir. This command is used to make directories that - are needed as indicated by the vimball. - - -CONTROLLING THE VIMBALL EXTRACTION DIRECTORY *g:vimball_home* - - You may override the use of the |'runtimepath'| by specifying a - variable, g:vimball_home. - - *vimball-extract* - vim filename.vba - - Simply editing a Vimball will cause Vimball.vim to tell the user to - source the file to extract its contents. - - Extraction will only proceed if the first line of a putative vimball - file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D." - line. - -LISTING FILES IN A VIMBALL *:VimballList* - - :VimballList - - This command will tell Vimball to list the files in the archive, along - with their lengths in lines. - -MANUALLY INVOKING VIMBALL EXTRACTION *:UseVimball* - - :UseVimball [path] - - This command is contained within the vimball itself; it invokes the - vimball#Vimball() routine which is responsible for unpacking the - vimball. One may choose to execute it by hand instead of sourcing - the vimball; one may also choose to specify a path for the - installation, thereby overriding the automatic choice of the first - existing directory on the |'runtimepath'|. - -REMOVING A VIMBALL *:RmVimball* - - :RmVimball vimballfile [path] - - This command removes all files generated by the specified vimball - (but not any directories it may have made). One may choose a path - for de-installation, too (see |'runtimepath'|); otherwise, the - default is the first existing directory on the |'runtimepath'|. - To implement this, a file (.VimballRecord) is made in that directory - containing a record of what files need to be removed for all vimballs - used thus far. - -PREVENTING LOADING - - If for some reason you don't want to be able to extract plugins - using vimballs: you may prevent the loading of vimball.vim by - putting the following two variables in your <.vimrc>: > - - let g:loaded_vimballPlugin= 1 - let g:loaded_vimball = 1 -< - -============================================================================== -4. Vimball History *vimball-history* {{{1 - - 30 : Dec 08, 2008 * fnameescape() inserted to protect error - messaging using corrupted filenames from - causing problems - * RmVimball supports filenames that would - otherwise be considered to have "magic" - characters (ie. Abc[1].vba) - Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq - removed (shellescape() used directly) - Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball - be allowed to use slashes in the filename. - 26 : May 27, 2008 * g:vimball_mkdir usage installed. Makes the - $HOME/.vim (or $HOME\vimfiles) directory if - necessary. - May 30, 2008 * (tnx to Bill McCarthy) found and fixed a bug: - vimball wasn't updating plugins to AsNeeded/ - when it should - 25 : Mar 24, 2008 * changed vimball#Vimball() to recognize doc/*.??x - files as help files, too. - Apr 18, 2008 * RmVimball command is now protected by saving and - restoring settings -- in particular, acd was - causing problems as reported by Zhang Shuhan - 24 : Nov 15, 2007 * |g:vimball_path_escape| used by s:Path() to - prevent certain characters from causing trouble - 22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter - 21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header - handling problem and it now changes \s to /s - 20 : Nov 20, 2006 * substitute() calls have all had the 'e' flag - removed. - 18 : Aug 01, 2006 * vimballs now use folding to easily display their - contents. - * if a user has AsNeeded/somefile, then vimball - will extract plugin/somefile to the AsNeeded/ - directory - 17 : Jun 28, 2006 * changes all \s to /s internally for Windows - 16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify - installation root paths implemented for - UseVimball, MkVimball, and RmVimball. - * RmVimball implemented - 15 : Jun 13, 2006 * bugfix - 14 : May 26, 2006 * bugfixes - 13 : May 01, 2006 * exists("&acd") used to determine if the acd - option exists - 12 : May 01, 2006 * bugfix - the |'acd'| option is not always defined - 11 : Apr 27, 2006 * VimballList would create missing subdirectories that - the vimball specified were needed. Fixed. - 10 : Apr 27, 2006 * moved all setting saving/restoration to a pair of - functions. Included some more settings in them - which frequently cause trouble. - 9 : Apr 26, 2006 * various changes to support Windows' predilection - for backslashes and spaces in file and directory - names. - 7 : Apr 25, 2006 * bypasses foldenable - * uses more exe and less norm! (:yank :put etc) - * does better at insuring a "Press ENTER" prompt - appears to keep its messages visible - 4 : Mar 31, 2006 * BufReadPost seems to fire twice; BufReadEnter - only fires once, so the "Source this file..." - message is now issued only once. - 3 : Mar 20, 2006 * removed query, now requires sourcing to be - extracted (:so %). Message to that effect - included. - * :VimballList now shows files that would be - extracted. - 2 : Mar 20, 2006 * query, :UseVimball included - 1 : Mar 20, 2006 * initial release - - -============================================================================== -vim:tw=78:ts=8:ft=help:fdm=marker diff --git a/.vim/bundle/vimball/plugin/vimballPlugin.vim b/.vim/bundle/vimball/plugin/vimballPlugin.vim deleted file mode 100644 index 1192a6b..0000000 --- a/.vim/bundle/vimball/plugin/vimballPlugin.vim +++ /dev/null @@ -1,36 +0,0 @@ -" vimballPlugin : construct a file containing both paths and files -" Author: Charles E. Campbell, Jr. -" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. -" The VIM LICENSE applies to Vimball.vim, and Vimball.txt -" (see |copyright|) except use "Vimball" instead of "Vim". -" No warranty, express or implied. -" *** *** Use At-Your-Own-Risk! *** *** -" -" (Rom 2:1 WEB) Therefore you are without excuse, O man, whoever you are who -" judge. For in that which you judge another, you condemn yourself. For -" you who judge practice the same things. -" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim - -" --------------------------------------------------------------------- -" Load Once: {{{1 -if &cp || exists("g:loaded_vimballPlugin") - finish -endif -let g:loaded_vimballPlugin = "v30" -let s:keepcpo = &cpo -set cpo&vim - -" ------------------------------------------------------------------------------ -" Public Interface: {{{1 -com! -ra -complete=file -na=+ -bang MkVimball call vimball#MkVimball(,,0,) -com! -na=? -complete=dir UseVimball call vimball#Vimball(1,) -com! -na=0 VimballList call vimball#Vimball(0) -com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball()|call vimball#RestoreSettings() -au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand(""))|call vimball#Vimball(1) -au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ff=unix|endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)") - -" ===================================================================== -" Restoration And Modelines: {{{1 -" vim: fdm=marker -let &cpo= s:keepcpo -unlet s:keepcpo diff --git a/vimrc b/vimrc new file mode 100755 index 0000000..9b3c085 --- /dev/null +++ b/vimrc @@ -0,0 +1,109 @@ +" no vi compatibility +set nocompatible + +" pathogen for plugin managment +call pathogen#runtime_append_all_bundles() +filetype plugin indent on + +set number +set nocompatible +set nocompatible +set modelines=0 +set tabstop=4 +set shiftwidth=4 +set softtabstop=4 +set encoding=utf-8 +set scrolloff=3 +set autoindent +set showmode +set showcmd +set hidden +set wildmenu +set wildmode=list:longest +set visualbell + +set ttyfast +set ruler +set backspace=indent,eol,start +set laststatus=2 + +set ignorecase +set smartcase +set gdefault +set incsearch +set showmatch +set hlsearch + +nnoremap / /\v +vnoremap / /\v + +set wrap +set textwidth=79 +set formatoptions=qrn1 +set colorcolumn=79 + +set list "show invisibles +set listchars=tab:▸\ ,eol:¬ + +set nobackup +set nofoldenable " Fuck code folding... + +" map Shift-U to REDO +" map + +nnoremap j gj +nnoremap k gk +nnoremap ; : + +au FocusLost * :wa + +let mapleader = "," +nnoremap W :%s/\s\+$//:let @/='' +nnoremap a :Ack +nnoremap q gqip +nnoremap ev :e $MYVIMRC + +inoremap jj + +" Replicate textmate CMD-[ and CMD-] for indentation +nmap << +nmap >> +vmap >gv + +" comments +imap gcc +nmap gcc +vmap gcgv + +" Toggle show invisibles +nmap i :set list! + +" Use the below highlight group when displaying bad whitespace is desired. +highlight BadWhitespace ctermbg=red guibg=red + +" Make trailing whitespace be flagged as bad. +au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ + +" For full syntax highlighting: +# let python_highlight_all=1 + +"set iskeyword+=. + +autocmd FileType python set omnifunc=pythoncomplete#Complete +autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS +autocmd FileType html set omnifunc=htmlcomplete#CompleteTags +autocmd FileType css set omnifunc=csscomplete#CompleteCSS + +set mouse=a + +set guifont=Inconsolata:h13 +color molokai + +map + +if has("gui_macvim") + let macvim_hig_shift_movement = 1 + set guioptions-=T +endif +