Commits

Anonymous committed ab6c5c3

r5726@telaviv1: shlomi | 2008-06-18 07:23:36 +0300
Added the Vim configuration to upload.

  • Participants
  • Parent commits 94fa20d

Comments (0)

Files changed (33)

File bin/put-vim-conf.sh

+#!/bin/bash
+
+DEST="$(pwd)/t2/open-source/projects/conf/vim"
+CURRENT="$DEST/current"
+mkdir -p "$CURRENT" "$CURRENT/conf/Vim" 
+
+cp -f "$HOME/.vimrc" "$CURRENT/vimrc"
+rsync -av --delete-after "$HOME/conf/Vim" "$CURRENT/conf/"
+(cd $HOME/.vim && tar -cYvf - .) > "$CURRENT/dot-vim.lzma"
+

File t2/open-source/projects/conf/vim/current/conf/Vim/Lineup.vim

+" Author:       Gergely Kontra <kgergely@mcl.hu>
+" Version:      0.1
+" Description:  A simple text aligner
+" Installation: Drop it into your plugin directory
+"
+" Usage:
+"    If you want to lineup eg. your declarations, just select them
+"    visually, press space, then =
+"
+"    If you want more precise lineup, then press shift-space, and specify your
+"    regexp
+"
+"    There are 2 commands defined, to make life easier
+"    So you can write
+"      :'<,'>Lineup =
+"        to align your definitions and
+"      :'<,'>LineupRE \S\+\s\+\zs.
+"        to lineup the second words.
+"    This approach is better to define mappings
+"
+" History:
+"    0.1: Initial release
+fu! <SID>Lineup(what,...)
+  " get the longest match
+  let max = -1
+  let i=a:firstline | while i<=a:lastline
+    if a:0 | let idx=match(getline(i),a:what)
+    else | let idx=stridx(getline(i),a:what)
+    endif
+    if idx > max | let max = idx | endif
+    let i = i + 1
+  endw
+
+  if max <= 0 | echo 'Nothing to align' | return | endif
+
+  "align other lines
+  let i=a:firstline
+  while i<=a:lastline
+    let curline = getline(i)
+    if a:0
+      let mat = match(getline(i),a:what)
+    else
+      let mat = stridx(getline(i),a:what)
+    endif
+    if mat != -1
+      let res = strpart(curline,0,mat)
+      let j = mat
+      while j < max
+	let j = j + 1
+	let res = res .' '
+      endw
+      let res = res . strpart(curline,mat)
+      call setline(i,res)
+    endif
+    let i = i + 1
+  endw
+endf
+
+
+
+"Damned ranges, we must write functions...
+fu! <SID>LineupPrompt() range
+  echo 'Enter char to align!' | let c= nr2char(getchar())
+  exe a:firstline.','.a:lastline.'call Lineup(c)'
+endf
+vmap <Space> :call <SID>LineupPrompt()<CR>
+
+fu! <SID>LineupREPrompt() range
+  let re=inputdialog('Enter RE to lineup!')
+  exe a:firstline.','.a:lastline."call Lineup(re)"
+endf
+vmap <S-Space> :call <SID>LineupREPrompt()<CR>
+
+com! -range -nargs=* Lineup <line1>,<line2>call <SID>Lineup(<q-args>)
+com! -range -nargs=* LineupRE <line1>,<line2>call <SID>Lineup(<q-args>,1)

File t2/open-source/projects/conf/vim/current/conf/Vim/REJECTS.vim

+" Only do this part when compiled with support for autocommands
+if has("autocmd")
+  " In text files, always limit the width of text to 78 characters
+  autocmd BufRead *.txt set tw=78
+  " When editing a file, always jump to the last cursor position
+  autocmd BufReadPost * if line("'\"") | exe "'\"" | endif
+endif
+
+if has("autocmd")
+ augroup cprog
+  " Remove all cprog autocommands
+  au!
+
+  " When starting to edit a file:
+  "   For C and C++ files set formatting of comments and set C-indenting on.
+  "   For other files switch it off.
+  "   Don't change the order, it's important that the line with * comes first.
+  autocmd FileType *      set formatoptions=tcql nocindent comments&
+  autocmd FileType c,cpp  set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
+ augroup END
+
+ augroup gzip
+  " Remove all gzip autocommands
+  au!
+
+  " Enable editing of gzipped files
+  "	  read:	set binary mode before reading the file
+  "		uncompress text in buffer after reading
+  "	 write:	compress file after writing
+  "	append:	uncompress file, append, compress file
+  autocmd BufReadPre,FileReadPre	*.gz set bin
+  autocmd BufReadPost,FileReadPost	*.gz let ch_save = &ch|set ch=2
+  autocmd BufReadPost,FileReadPost	*.gz '[,']!gunzip
+  autocmd BufReadPost,FileReadPost	*.gz set nobin
+  autocmd BufReadPost,FileReadPost	*.gz let &ch = ch_save|unlet ch_save
+  autocmd BufReadPost,FileReadPost	*.gz execute ":doautocmd BufReadPost " . expand("%:r")
+
+  autocmd BufWritePost,FileWritePost	*.gz !mv <afile> <afile>:r
+  autocmd BufWritePost,FileWritePost	*.gz !gzip <afile>:r
+
+  autocmd FileAppendPre			*.gz !gunzip <afile>
+  autocmd FileAppendPre			*.gz !mv <afile>:r <afile>
+  autocmd FileAppendPost		*.gz !mv <afile> <afile>:r
+  autocmd FileAppendPost		*.gz !gzip <afile>:r
+ augroup END
+endif
+
+" Some useless templates.
+"
+" map <F8> :r /home/shlomi/Docs/lecture/html/texts/mycode.html<CR>
+map <F8> :r /home/shlomi/Docs/lecture/Gimp/slides/mydemo.html<CR>
+" map <F4> :r /home/shlomi/Docs/lecture/Gimp/slides/menupath.html<CR>
+map <F4> :r /home/shlomi/Docs/Univ/Homework/SICP/homework/SICP/hw5/mycode.txt<CR><CR>
+" map <F6> :r /home/shlomi/Docs/lecture/Gimp/slides/h3_notbold.html<CR>
+
+autocmd BufNewFile,BufRead ~/Docs/Svn/homework/*.tex set encoding=iso8859-8
+
+function! Prolog_Cancel()
+    echo 'Hello'
+    autocmd! BufNewFile *.pl
+endfunction
+
+autocmd BufNewFile,BufRead ~/progs/prolog/*.pl call Prolog_Cancel()

File t2/open-source/projects/conf/vim/current/conf/Vim/ack.vim

+" Author: Shlomi Fish
+" Date: 02 December 2006
+" License: MIT X11
+"
+" To use: install Ack ( http://petdance.com/ack/ ), source this script from
+" your .vimrc and then type:
+"      :Ack [Ack command line args] to use Ack.
+
+function! Ack_Search(command)
+    cexpr system("ack " . a:command)
+endfunction
+
+command! -nargs=+ -complete=file Ack call Ack_Search(<q-args>)
+

File t2/open-source/projects/conf/vim/current/conf/Vim/amazon-asin.vim

+function! Add_isbn_tag()
+    let url = getreg("*")
+    let asin = matchlist(url, "dp/\\(\\w\\+\\)/")[1]
+    execute "normal " . "o<isbn>" . asin . "</isbn>"
+endfunction
+
+map <F4> :call Add_isbn_tag()<CR>
+

File t2/open-source/projects/conf/vim/current/conf/Vim/diary.vim

+" Write the template for a new entry.
+
+map <F2> i<CR><CR><div class="entry" id=""><CR><CR><h2><CR><ESC>!$date +\%Y-\%m-\%d<CR>k$Jx$a: <ESC>mda</h2><CR><CR><CR></div><CR><ESC>`da

File t2/open-source/projects/conf/vim/current/conf/Vim/docbook/linuxjournal/maps.vim

+" maps.vim
+"
+" Keyboard mappings.
+
+
+" *********************************************************
+" Tag related keys.
+
+call MapTagKey("a", 0, 0, "article", "")
+call MapTagKey("b", 0, 0, "emphasis", " role=\"bold\"")
+call MapTagKey("c", 0, 0, "command", "")
+call MapTagKey("d", 0, 0, "entry", "")
+call MapTagKey("e", 0, 0, "email", "")
+call MapTagKey("f", 0, 0, "function", "")
+call MapTagKey("h", 1, 0, "title", "")
+call MapTagKey("i", 0, 0, "emphasis", "")
+"               j - extension key below.
+call MapTagKey("k", 0, 0, "command", " role=\"what-to-type\"")
+call MapTagKey("l", 0, 0, "listitem", "")
+call MapTagKey("m", 1, 0, "mediaobject", "")
+call MapTagKey("n", 1, 0, "itemizedlist", "")
+call MapTagKey("o", 1, 0, "orderedlist", "")
+call MapTagKey("p", 1, 1, "para", "")
+call MapTagKey("q", 0, 0, "quote", "")
+call MapTagKey("r", 1, 1, "row", "")
+call MapTagKey("s", 1, 1, "sidebar", "")
+call MapTagKey("t", 1, 1, "table", "")
+call MapTagKey("u", 0, 0, "ulink", "")
+"               x - extension key below.
+
+call MapTagKey("jd", 0, 0, "remark", " role=\"web-pub-date\"")
+call MapTagKey("ji", 0, 0, "remark", " role=\"author-image\"")
+call MapTagKey("jl", 0, 0, "remark", " role=\"layout-info\"")
+call MapTagKey("jn", 0, 0, "remark", " role=\"article-number\"")
+call MapTagKey("jo", 0, 0, "remark", " role=\"output-file\"")
+call MapTagKey("jp", 0, 0, "remark", " role=\"pull-quote\"")
+call MapTagKey("js", 0, 0, "remark", " role=\"article-section\"")
+call MapTagKey("jt", 0, 0, "remark", " role=\"teaser\"")
+call MapTagKey("jw", 0, 0, "remark", " role=\"article-series\"")
+
+call MapTagKey("xa", 0, 0, "author", "")
+call MapTagKey("xb", 1, 0, "blockquote", "")
+call MapTagKey("xc", 1, 1, "CDATA", "")
+call MapTagKey("xf", 0, 0, "firstname", "")
+call MapTagKey("xi", 0, 0, "articleinfo", "")
+call MapTagKey("xl", 0, 0, "surname", "")
+call MapTagKey("xm", 0, 0, "othername", " role=\"middle\"")
+call MapTagKey("xn", 1, 1, "COMMENT", "")
+call MapTagKey("xo", 1, 1, "screen", "")
+call MapTagKey("xp", 1, 1, "programlisting", "")
+call MapTagKey("xq", 1, 0, "question", "")
+call MapTagKey("xr", 1, 0, "answer", "")
+call MapTagKey("xs", 1, 1, "simplesect", "")
+
+
+" *********************************************************
+" Insert special symbols.
+
+call MapSymbolKey("3", "&frac34;")
+call MapSymbolKey("5", "&lsquo;")
+call MapSymbolKey("6", "&rsquo;")
+call MapSymbolKey("7", "&ldquo;")
+call MapSymbolKey("8", "&rdquo;")
+call MapSymbolKey(",", "&lt;")
+call MapSymbolKey(".", "&gt;")
+call MapSymbolKey("<", "&lt;")
+call MapSymbolKey(">", "&gt;")
+call MapSymbolKey("a", "&aelig;")
+call MapSymbolKey("c", "&copy;")
+call MapSymbolKey("d", "&deg;")
+call MapSymbolKey("f", "&frac14;")
+call MapSymbolKey("h", "&half;")
+call MapSymbolKey("n", "&ndash;")
+call MapSymbolKey("m", "&mdash;")
+call MapSymbolKey("r", "&reg;")
+call MapSymbolKey("t", "&times;")
+
+call MapSymbolKey("_", "\<Esc>!!date<CR>")
+
+" nmap _  o<Esc>!!date
+
+" *********************************************************
+" Insert foreign characters.
+
+call MapForeignCharKey("b",   "&beta;")
+call MapForeignCharKey("m",   "&mu;")
+call MapForeignCharKey("n",   "�")
+call MapForeignCharKey("w",   "&ohgr;")
+
+call MapForeignCharKey("'a",  "�")
+call MapForeignCharKey("'c",  "�")
+call MapForeignCharKey("'e",  "�")
+call MapForeignCharKey("'i",  "�")
+call MapForeignCharKey("'o",  "�")
+call MapForeignCharKey("'u",  "�")
+
+call MapForeignCharKey("`a",  "�")
+call MapForeignCharKey("`e",  "�")
+call MapForeignCharKey("`i",  "�")
+call MapForeignCharKey("`o",  "�")
+call MapForeignCharKey("`u",  "�")
+
+call MapForeignCharKey("\"a", "�")
+call MapForeignCharKey("\"e", "�")
+call MapForeignCharKey("\"i", "�")
+call MapForeignCharKey("\"o", "�")
+call MapForeignCharKey("\"u", "�")
+
+call MapForeignCharKey("^a",  "�")
+call MapForeignCharKey("^e",  "�")
+call MapForeignCharKey("^i",  "�")
+call MapForeignCharKey("^o",  "�")
+call MapForeignCharKey("^u",  "�")
+
+
+" *********************************************************
+" Moving and adjusting tags.
+
+nmap <S-F8> :call DeleteTag()
+
+nmap <F9> :call CursorLeftByTag()
+nmap <F10> :call MoveTagLeft()
+nmap <F11> :call MoveTagRight()
+nmap <F12> :call CursorRightByTag()
+
+nmap <S-F9> :call TightenTagLeft()
+nmap <S-F10> :call InsertStringLeftOfTag(" ")
+nmap <S-F11> :call InsertStringRightOfTag(" ")
+nmap <S-F12> :call TightenTagRight()
+

File t2/open-source/projects/conf/vim/current/conf/Vim/docbook/linuxjournal/mfuncs.vim

+" mfuncs.vim
+"
+" Mapping related functions.
+
+
+" *********************************************************
+
+let s:InsertTagTemplateKey	= "<F2>"
+let s:InsertSymbolKey		= "<F3>"
+let s:InsertForeignCharKey	= "<F4>"
+let s:InsertStartTagKey		= "<F5>"
+let s:InsertEndTagKey		= "<F6>"
+let s:TagWordKey		= "<F7>"
+let s:TagRangeKey		= "<F7>"
+let s:ChangeTagKey		= "<F8>"
+
+
+" *********************************************************
+" Create mappings for:
+"   - Inserting a tag template (start tag, end tag).
+"   - Inserting a start tag.
+"   - Inserting an end tag.
+"   - Tagging a word with a start tag and end tag.
+"   - Tagging a range of lines with a start tag and end tag.
+"   - Change a tag.
+
+function! MapTagKey(key, snewline, enewline, tag, stagx)
+
+	" Command/leadin text depends on whether or not the tag should be on a new line.
+	let sicmd = a:snewline ? " <CR>" : " "
+	let sncmd = a:snewline ? " o" : " a"
+	let eicmd = a:enewline ? " <CR>" : " "
+	let encmd = a:enewline ? " o" : " a"
+	let ticmd = a:enewline ? "<CR><CR>" : ""
+	let cr    = "<CR>"
+
+	" Create tag text (check for special tags).
+	if a:tag == "CDATA"
+		let stag = "<![CDATA["
+		let etag = "]]>"
+	elseif a:tag == "COMMENT"
+		let stag = "<!--"
+		let etag = "-->"
+	else
+		let stag = "<" . a:tag . a:stagx . ">"
+		let etag = "</" . a:tag . ">"
+	endif
+
+	" Map keys for template tag (check for predefined template string).
+
+	if exists("g:Template_" . a:tag)
+		let tmpl = g:Template_{a:tag}
+
+		" Template string exists
+		let icmd = "imap " . s:InsertTagTemplateKey . a:key . sicmd . tmpl . "\<Esc>?-:-<CR>3xi"
+		let ncmd = "nmap " . s:InsertTagTemplateKey . a:key . sncmd . tmpl . "\<Esc>?-:-<CR>3xi"
+	else
+		let icmd = "imap " . s:InsertTagTemplateKey . a:key . sicmd . stag . ticmd . etag
+		let ncmd = "nmap " . s:InsertTagTemplateKey . a:key . sncmd . stag . ticmd . etag
+
+		" Reposition cursor between tags after insert.
+		if strlen(ticmd) == 0
+			let i = 0
+			let n = strlen(etag)
+			while i < n
+				let icmd = icmd . "<left>"
+				let ncmd = ncmd . "<left>"
+				let i = i + 1
+			endwhile
+		else
+			let icmd = icmd . "<up>"
+			let ncmd = ncmd . "<up>"
+		endif
+	endif
+	
+	execute icmd
+	execute ncmd
+
+	" Map keys for start tag.
+	execute "imap " . s:InsertStartTagKey . a:key . sicmd . stag
+	execute "nmap " . s:InsertStartTagKey . a:key . sncmd . stag
+
+	" Map keys for end tag.
+	execute "imap " . s:InsertEndTagKey . a:key . eicmd . etag
+	execute "nmap " . s:InsertEndTagKey . a:key . encmd . etag
+
+	let stag = escape(stag, "\"")
+	let etag = escape(etag, "\"")
+
+	" Map key for tagging a word.
+	execute "nmap " . s:TagWordKey . a:key . " :call TagWord(\"" . stag . "\", \"" . etag "\")" . cr
+
+	" Map key for tagging a range.
+	execute "cmap " . s:TagRangeKey . a:key . " :call TagRange(\"" . stag . "\", \"" . etag "\")" . cr
+
+	" Map key for changing tag.
+	execute "nmap " . s:ChangeTagKey . a:key . " :call ChangeTag(\"" . stag . "\", \"" . etag "\")" . cr
+
+endfunction
+ 
+
+" *********************************************************
+" Create mapping for symbol.
+
+function! MapSymbolKey(key, sym)
+
+	execute "imap " . s:InsertSymbolKey . a:key . " " . a:sym
+	execute "nmap " . s:InsertSymbolKey . a:key . " a" . a:sym
+
+endfunction
+ 
+
+" *********************************************************
+" Create mapping for foreign characater.
+
+function! MapForeignCharKey(key, fchar)
+
+	execute "imap " . s:InsertForeignCharKey . a:key . " " . a:fchar
+	execute "nmap " . s:InsertForeignCharKey . a:key . " a" . a:fchar
+
+endfunction

File t2/open-source/projects/conf/vim/current/conf/Vim/docbook/linuxjournal/tagtmps.vim

+" tagtmps.vim
+"
+" Tag templates.
+
+
+let g:Template_answer		= "  <answer><CR>"
+    				\."  <para><CR>"
+    				\."  <author><firstname></firstname><surname></surname></author><CR>"
+    				\."  </para>"
+
+let g:Template_article		="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"no\"?><CR>"
+				\."<!DOCTYPE article SYSTEM \"docbookx.dtd\"><CR><CR>"
+				\."<article><CR><CR>"
+				\."<simplesect><title/><CR>"
+				\."<para><CR>-:-<CR>"
+				\."</para><CR>"
+				\."</simplesect><CR><CR>"
+				\."<simplesect><title></title><CR>"
+				\."<para><CR>"
+				\."</para><CR>"
+				\."</simplesect><CR><CR>"
+				\."</article>"
+
+let g:Template_articleinfo	= "<articleinfo><CR>"
+  				\."  <title>-:-</title><CR>"
+  				\."  <abstract><CR>"
+    				\."    <para><CR>"
+    				\."    </para><CR>"
+  				\."  </abstract><CR>"
+  				\."  <bibliomisc><CR>"
+    				\."    <remark role=\"pull-quote\"></remark><CR>"
+    				\."    <remark role=\"article-number\"></remark><CR>"
+    				\."    <remark role=\"article-section\"></remark><CR>"
+    				\."    <remark role=\"article-series\"></remark><CR>"
+    				\."    <remark role=\"teaser\"></remark><CR>"
+    				\."    <remark role=\"web-pub-date\"></remark><CR>"
+  				\."  </bibliomisc><CR>"
+  				\."  <author><CR>"
+    				\."    <firstname></firstname><CR>"
+    				\."    <othername role=\"middle\"></othername><CR>"
+    				\."    <surname></surname><CR>"
+    				\."    <authorblurb><CR>"
+      				\."      <para><CR>"
+				\."      <author><firstname></firstname> <surname></surname></author><CR>"
+				\."      <email></email><CR>"
+				\."      <remark role=\"author-image\"></remark><CR>"
+      				\."      </para><CR>"
+    				\."    </authorblurb><CR>"
+  				\."  </author><CR>"
+  				\."  <publisher><CR>"
+				\."    <publishername>Specialized Systems Consultants, Inc.</publishername><CR>"
+				\."  </publisher><CR>"
+				\."</articleinfo>"
+
+let g:Template_author		= "<author><firstname>-:-</firstname><surname></surname></author>"
+
+let g:Template_blockquote	= "<blockquote><para><CR>-:-<CR>"
+    				\."</para></blockquote>"
+
+let g:Template_CDATA		= "<![CDATA[<CR>-:-<CR>]]><CR>"
+
+let g:Template_itemizedlist	= "<itemizedlist><CR>"
+				\."<listitem><para>-:-</para></listitem><CR>"
+				\."</itemizedlist>"
+
+let g:Template_listitem		= "<listitem><para>-:-</para></listitem>"
+
+let g:Template_mediaobject	= "<mediaobject><CR>"
+				\."  <imageobject><CR>"
+				\."    <imagedata fileref=\"-:-\" format=\"\"/><CR>"
+				\."  </imageobject><CR>"
+				\."  <caption><CR>"
+				\."    <para><CR>"
+				\."    </para><CR>"
+				\."  </caption><CR>"
+				\."</mediaobject>"
+
+let g:Template_orderedlist	= "<orderedlist><CR>"
+				\."<listitem><para>-:-</para></listitem><CR>"
+				\."</orderedlist>"
+
+let g:Template_programlisting	= "<programlisting><CR>"
+				\."<remark role=\"source-lang\">c</remark><CR>"
+				\."<![CDATA[<CR>-:-<CR>]]><CR>"
+				\."</programlisting>"
+
+let g:Template_question		= "<qandadiv><CR>"
+  				\."<title>-:-</title><CR>"
+  				\."<qandaentry><CR>"
+  				\."  <question><CR>"
+    				\."  <para><CR>"
+    				\."  <author><firstname></firstname><surname></surname></author><CR>"
+    				\."  </para><CR>"
+    				\."  </question><CR>"
+    				\."  <answer><CR>"
+    				\."  <para><CR>"
+    				\."  <author><firstname></firstname><surname></surname></author><CR>"
+    				\."  </para><CR>"
+    				\."  </answer><CR>"
+  				\."</qandaentry><CR>"
+				\."</qandadiv>"
+
+let g:Template_row		= "<row><CR>"
+				\."<entry>-:-</entry><CR>"
+				\."</row>"
+
+let g:Template_screen		= "<screen><CR>"
+				\."<![CDATA[<CR>-:-<CR>]]><CR>"
+				\."</screen>"
+
+let g:Template_sidebar		= "<sidebar><CR>"
+				\."<title><CR>-:- <CR>"
+				\."<remark role=\"output-file\"></remark><CR>"
+				\."</title><CR><CR>"
+				\."<para><CR>"
+				\."</para><CR>"
+				\."</sidebar><CR>"
+
+let g:Template_simplesect	= "<simplesect><title>-:-</title><CR>"
+				\."<para><CR></para><CR>"
+				\."</simplesect>"
+
+let g:Template_table		= "<table><CR>"
+				\."<title><CR>-:-<CR>"
+				\."<remark role=\"output-file\">FILENAME</remark><CR></title><CR>"
+				\."<tgroup cols=\"NCOLS\"><CR>"
+				\."<thead><CR>"
+				\."  <row><CR>"
+				\."  <entry>COLNAME</entry><CR>"
+				\."  </row><CR>"
+				\."</thead><CR>"
+				\."<tbody><CR>"
+				\."  <row><CR>"
+				\."  <entry>COLDATA</entry><CR>"
+				\."  </row><CR>"
+				\."</tbody><CR>"
+				\."</tgroup><CR>"
+				\."</table>"
+
+let g:Template_ulink		= "<ulink url=\"-:-\"/>"
+

File t2/open-source/projects/conf/vim/current/conf/Vim/docbook/linuxjournal/tfuncs.vim

+" tfuncs.vim
+"
+" Tag related functions.
+
+
+"**********************************************************
+
+" Patterns for XML tags and for words.
+let s:XMLTag="</\\{0,1}[^>]\\{1,}>"
+let s:Word="</\\{0,1}[^>]\\{1,}>\\|[^ \\t]\\{1,}"
+
+
+"**********************************************************
+" Find start and end of tag if it exists surrounding position tpos.
+" The arguments spos and epos should be strings with containing variable names.
+" the return value is a string that can be executed to set the variable names.
+function! FindTag(str, tpos, spos, epos)
+
+	" Find beginning and end of tag.
+	let st = match(a:str, s:XMLTag)
+	let et = matchend(a:str, s:XMLTag)
+	while st != -1  &&  et != -1  &&  et < a:tpos
+		let st = match(a:str, s:XMLTag, et)
+		let et = matchend(a:str, s:XMLTag, st)
+	endwhile
+
+	return "let " . a:spos . "=" . st . " | let " . a:epos . "=" . et
+endfunction
+
+
+"**********************************************************
+" Find start and end of word if it exists surrounding position tpos.
+" The arguments spos and epos should be strings with containing variable names.
+" the return value is a string that can be executed to set the variable names.
+function! FindWord(str, tpos, spos, epos)
+
+	" Look for start and end of word.
+	let sw = match(a:str, s:Word)
+	let ew = matchend(a:str, s:Word)
+	while sw != -1  &&  ew != -1  &&  ew < a:tpos
+		let tsw = match(a:str, s:Word, ew)
+		if tsw >= a:tpos
+			break
+		endif
+		let sw = tsw
+		let ew = matchend(a:str, s:Word, sw)
+	endwhile
+
+	return "let " . a:spos . "=" . sw . " | let " . a:epos . "=" . ew
+endfunction
+
+
+"**********************************************************
+" If the cursor is positioned over a tag, delete it.
+function! DeleteTag()
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" Delete tag if cursor is on tag.
+	if c > st  &&  c <= et
+		let t = strpart(s, 0, st)
+		let u = strpart(s, et)
+		call setline(n, t.u)
+		call cursor(n, st)
+	else
+		echo "Cursor not on a tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" If the cursor is positioned over a tag, change it to a different tag.
+function! ChangeTag(stag, etag)
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" Change tag if cursor is on a tag.
+	if c > st  &&  c <= et
+		let t = strpart(s, 0, st)
+		let u = strpart(s, et)
+		let tag = a:stag
+		if s[st+1] == '/'
+			let tag = a:etag
+		endif
+
+		call setline(n, t.tag.u)
+		call cursor(n, c)
+	else
+		echo "Cursor not on a tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" Tag current word.
+function! TagWord(stag, etag)
+	let n = line(".")
+	let c = col(".")-1
+	let s = getline(n)
+
+	" Look for start and end of word at cursor.
+	execute FindWord(s, c, "sw", "ew")
+
+	if c >= sw  &&  c < ew
+		let t = strpart(s, 0, sw)
+		let u = strpart(s, ew)
+		let w = strpart(s, sw, ew-sw)
+		let v = t . a:stag . w . a:etag . u
+		call setline(n, v)
+		call cursor(n, c + strlen(a:stag) + 3)
+	else
+		echo "Cursor not on a word"
+	endif
+endfunction
+
+
+"**********************************************************
+" Tag range.
+function! TagRange(stag, etag) range
+	if a:firstline == a:lastline
+		let s = getline(a:firstline)
+		let v = a:stag . s . a:etag
+		call setline(a:firstline, v)
+	else
+		call append(a:lastline, a:stag)
+		call append(a:firstline-1, a:etag)
+	endif
+endfunction
+
+
+"**********************************************************
+" If the cursor is on a tag, move it to the left by one word.
+function! MoveTagLeft()
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" If cursor is on a tag move it to the left of the preceding word.
+	if c > st  &&  c <= et
+
+		" Look for start and end of word preceding tag.
+		execute FindWord(s, st, "sw", "ew")
+
+		if ew > st
+			let ew = st
+		endif
+
+		if sw != -1  &&  ew != -1  &&  ew > sw
+			let t = strpart(s, 0, sw)		" upto word
+			let u = strpart(s, sw, st-sw)		" word
+			let v = strpart(s, st, et-st)		" tag
+			let w = strpart(s, et)			" after tag
+			call setline(n, t.v.u.w)
+			call cursor(n, c-st+sw)
+		else
+			" Move tag to end of previous line.
+			if n > 1
+				let t = strpart(s, st, et-st)	" tag
+				let u = strpart(s, et)		" after tag
+				call setline(n, u)
+				let s = getline(n-1)
+				call setline(n-1, s.t) 
+				call cursor(n-1, strlen(s)+c-st+sw)
+			else
+				echo "No words to left of tag"
+			endif
+		endif
+	else
+		echo "Cursor not on tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" If the cursor is on a tag, move it to the right by one word.
+function! MoveTagRight()
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" If cursor is on a tag move it to the right of the following word.
+	if c > st  &&  c <= et
+
+		" Look for start and end of word following tag.
+		let sw = match(s, s:Word, et)
+		let ew = matchend(s, s:Word, sw)
+
+		if sw != -1  &&  ew != -1
+			let t = strpart(s, 0, st)		" upto start of tag
+			let u = strpart(s, st, et-st)		" tag
+			let v = strpart(s, et, ew-et)		" word
+			let w = strpart(s, ew)			" after word
+			call setline(n, t.v.u.w)
+			call cursor(n, c+ew-et)
+		else
+			" Move tag to beginning of next line.
+			if n < line("$")
+				let t = strpart(s, 0, st)	" upto start of tag
+				let u = strpart(s, st)		" tag
+				call setline(n, t)
+				let s = getline(n+1)
+				call setline(n+1, u.s) 
+				call cursor(n+1, c-st)
+			else
+				echo "No words to right of tag"
+			endif
+		endif
+	else
+		echo "Cursor not on tag"
+	endif
+endfunction
+
+"**********************************************************
+" If the cursor is on a tag, delete all whitespace to the left of it.
+function! TightenTagLeft()
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" If cursor is on a tag remove whitespace to the left.
+	if c > st  &&  c <= et
+
+		" Look for start and end of word preceding tag.
+		execute FindWord(s, st, "sw", "ew")
+
+		if ew > st
+			let ew = st
+		endif
+
+		if sw != -1  &&  ew != -1  &&  ew > sw
+			let t = strpart(s, 0, ew)		" to end of word
+			let u = strpart(s, st)			" tag to end of line
+			call setline(n, t.u)
+			call cursor(n, c-st+ew)
+		else
+			" Delete preceding blank lines.
+			if n > 1
+				while n > 1  &&  match(getline(n-1), "^[ \\t]*$") != -1
+					let n = n - 1
+					execute n "delete"
+				endwhile
+			else
+				echo "No whitespace to left of tag"
+			endif
+		endif
+	else
+		echo "Cursor not on tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" If the cursor is on a tag, delete all whitespace to the right of it.
+function! TightenTagRight()
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" If cursor is on a tag move it to the right of the preceding word.
+	if c > st  &&  c <= et
+
+		" Look for start and end of word following tag.
+		let sw = match(s, s:Word, et)
+		let ew = matchend(s, s:Word, sw)
+
+		if sw != -1  &&  ew != -1
+			let t = strpart(s, 0, et)		" upto end of tag
+			let u = strpart(s, sw)			" word to end of line
+			call setline(n, t.u)
+			call cursor(n, c)
+		else
+			" Delete following blank lines.
+			if n < line("$")
+				let n = n + 1
+				while n < line("$")  &&  match(getline(n), "^[ \\t]*$") != -1
+					execute n "delete"
+				endwhile
+			else
+				echo "No whitespace to right of tag"
+			endif
+		endif
+	else
+		echo "Cursor not on tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" If the cursor is on a tag, insert the argument string before it.
+function! InsertStringLeftOfTag(str)
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" See if cursor is on a tag.
+	if c > st  &&  c <= et
+
+		let t = strpart(s, 0, st)		" to start of tag
+		let u = strpart(s, st)			" tag to end of line
+		call setline(n, t.a:str.u)
+		call cursor(n, c+strlen(a:str))
+	else
+		echo "Cursor not on tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" If the cursor is on a tag, insert the argument string after it.
+function! InsertStringRightOfTag(str)
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+
+	" Find beginning and end of tag.
+	execute FindTag(s, c, "st", "et")
+
+	" See if cursor is on a tag.
+	if c > st  &&  c <= et
+
+		let t = strpart(s, 0, et)		" upto end of tag
+		let u = strpart(s, et)			" to end of line
+		call setline(n, t.a:str.u)
+	else
+		echo "Cursor not on tag"
+	endif
+endfunction
+
+
+"**********************************************************
+" Move right by tags.
+" If the cursor is currently on a tag move to the end of the tag.
+" If the cursor is not on a tag move to the next tag.
+function! CursorRightByTag()
+	let srch = 1
+
+	" See if cursor is on a tag.
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+	execute FindTag(s, c, "st", "et")
+
+	if st != -1  &&  et != -1
+		" If the cursor is not at the end of the tag, move to end.
+		if c != et
+			call cursor(n, et)
+			let srch = 0
+		endif
+	endif
+
+	if srch
+		let n = search(s:XMLTag, "")
+	endif
+endfunction
+
+
+"**********************************************************
+" Move cursor left by tags.
+" If the cursor is currently on a tag move to the beginning of the tag.
+" If the cursor is not on a tag move to the previous tag.
+function! CursorLeftByTag()
+	let srch = 1
+
+	" See if cursor is on a tag.
+	let n = line(".")
+	let c = col(".")
+	let s = getline(n)
+	execute FindTag(s, c, "st", "et")
+
+	if st != -1  &&  et != -1
+		" If the cursor is not at the start of the tag, move to start.
+		if c-1 != st
+			call cursor(n, st+1)
+			let srch = 0
+		endif
+	endif
+
+	if srch
+		let n = search(s:XMLTag, "b")
+		if n != 0
+			call search(">", "")
+		endif
+	endif
+endfunction
+

File t2/open-source/projects/conf/vim/current/conf/Vim/gimp-dev.vim

+" This file sets vim up to use subversion's coding style.  It can be applied on
+" a per buffer basis with :source svn-dev.vim, or can be source from ~/.vimrc to
+" apply settings to all files vim uses.  For other variation try :help autocmd.
+"
+" TODO: Try to find a way to wrap comments without putting a * on the next line,
+" since most of subversion doesn't use that style.  (Note that taking cro out of
+" formatoptions won't quite work, because then comments won't be wrapped by
+" default).
+"
+" Expand tab characters to spaces
+set expandtab
+
+" Tab key moves 8 spaces
+set tabstop=8 
+
+" '>>' moves 4 spaces
+set shiftwidth=4
+
+" Commenting out.
+" Wrap lines at 78 columns.
+"   78 so that vim won't swap over to the right before it wraps a line.
+" set textwidth=78
+
+" What counts as part of a word (used for tag matching, and motion commands)
+set iskeyword=a-z,A-Z,48-57,_,.,-,>
+
+" How to wrap lines
+"   t=wrap lines, c=wrap comments, inserting comment leader, r=insert comment
+"   leader after an <ENTER>, o=Insert comment leader after an 'o', q=Allow
+"   formatting of comments with 'gq'
+set formatoptions=tcroq
+
+" Use C style indenting
+set cindent
+
+" Use the following rules to do C style indenting
+"   (Note that an s mean number*shiftwidth)
+"   >=normal indent,
+"   e=indent inside braces(brace at end of line),
+"   n=Added to normal indent if no braces,
+"   f=opening brace of function,
+"   {=opening braces,
+"   }=close braces (from opening),
+"   ^s=indent after brace, if brace is on column 0,
+"   := case labels from switch, ==statements after case,
+"   t=function return type,
+"   +=continuation line,
+"   c=comment lines from opener,
+"   (=unclosed parens (0 means match),
+"   u=same as ( but for second set of parens
+"   
+"   Try :help cinoptions-values
+set cinoptions=>1s,e0,n-2,f0,{.5s,}0,^-.5s,=.5s,t0,+1s,c3,(0,u0,\:2
+
+" The following modelines can also be used to set the same options.
+"/*
+" * vim:ts=8:sw=4:expandtab:tw=78:fo=tcroq cindent
+" * vim:isk=a-z,A-Z,48-57,_,.,-,>
+" * vim:cino=>1s,e0,n-2,f0,{.5s,}0,^-.5s,=.5s,t0,+1s,c3,(0,u0,\:2
+" */

File t2/open-source/projects/conf/vim/current/conf/Vim/hebrew.vim

+" vimrc_hebrew - some settings for hebrew vim support
+" to use those settings - add the following file to the end of your
+" .vimrc (in your home directory)
+
+
+" select hebrew font for gvim
+" set guifont=heb8x13
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" some key bindings
+" Allow revins (CTRL-_) - toggles visual hebrew editing at insert mode
+" note that I put here a key mapping for F10 to do that (and also not
+" in insert mode)
+set allowrevins
+
+" toggle both direction and hebrew keyboard mapping
+" this is useful for logical-order hebrew editing
+map <F9>   :set invrl<CR>:set invhk<CR>
+" do it when in insert mode as well (and return to insert mode)
+imap <F9> <Esc>:set invrl<CR>:set invhk<CR>a
+
+" toggle both reverse insertion and hebrew keyboard mapping
+" this is useful for visual-order hebrew editing
+map <F10>   :set invrevins<CR>:set invhk<CR>
+" do it when in insert mode as well (and return to insert mode)
+"imap <F10> <Esc>:set invrevins<CR>:set invhk<CR>a
+imap <F10> <C-_>
+
+"toggle comand line language
+cmap  <S-F9>  <C-_>
+  
+" toggle language and add at EOL 
+map <C-F9>   :set invrl<CR>:set invhk<CR>
+" do it when in insert mode as well (and return to insert mode)
+imap <C-F9> <Esc>:set invrl<CR>:set invhk<CR>A
+"""""""""""""""""""""""""""""""""""""""""""""
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" some key bindings
+" Allow revins (CTRL-_)
+" (for some reason I can't get Ctrl+Shift+\- to work for me)
+set allowrevins
+
+" toggle both direction and hebrew keyboard mapping
+map <F9>   :set invrl<CR>:set invhk<CR>
+" do it when in insert mode as well (and return to insert mode)
+imap <F9> <Esc>:set invrl<CR>:set invhk<CR>a
+
+map <C-B><C-l> <F9>
+
+
+"toggle comand line language
+cmap  <S-F9>  <C-_>
+" toggle language and add at EOL 
+map <C-F9>   :set invrl<CR>:set invhk<CR>
+" do it when in insert mode as well (and return to insert mode)
+imap <C-F9> <Esc>:set invrl<CR>:set invhk<CR>A
+"""""""""""""""""""""""""""""""""""""""""""""
+
+
+" TODO: condition this with the availability of bidi support
+nmenu Heb&rew.&Toggle\ Heb<->Eng\ \(F9\)	:set invrightleft<CR>:set hkmap<CR>
+vmenu Heb&rew.&Toggle\ Heb<->Eng\ \(F9\)	<ESC>:set invrightleft<CR><ESC>:set hkmap<CR>
+imenu Heb&rew.&Toggle\ Heb<->Eng\ \(F9\)	<C-O>:set invrightleft<CR><C-O>:set hkmap<CR>
+cmenu Heb&rew.&Toggle\ Heb<->Eng\ \(F9\)	<C-C>:set invrightleft<CR><C-C>:set hkmap<CR>
+omenu Heb&rew.&Toggle\ Heb<->Eng\ \(F9\)	<ESC>:set invrightleft<CR><ESC>:set hkmap<CR>
+tmenu Heb&rew.&Toggle\ Heb<->Eng\ \(F9\)	Switch between english mode and hebrew mode 
+nmenu Heb&rew.Toggle\ &Visual\ \(F10\)		:set invrevins<CR>:set invhk<CR>
+imenu Heb&rew.Toggle\ &Visual\ \(F10\)		<C-_>
+amenu Heb&rew.-sep1-				<nul>
+
+" The follwing can serve to demonstrate exactly what can be done,
+" but it is quite useless...
+" note that "rl" can be a shorthand for "rightleft"
+amenu Heb&rew.RTL\ Display			:set rightleft<CR>
+amenu Heb&rew.LTR\ Display			:set norightleft<CR>
+amenu Heb&rew.Toggle\ RTL-LTR\ &Display		:set invrightleft<CR>
+amenu Heb&rew.-sep2-				<nul>
+" note that "hk" can be a shorthand for "hkmap" 
+amenu Heb&rew.Hebrew\ Keyboard			:set hkmap<CR>
+amenu Heb&rew.English\ Keyboard			:set nohkmap<CR>
+amenu Heb&rew.Toggle\ &Keyboard			:set invhkmap<CR>
+amenu Heb&rew.-sep3-                      	<nul>
+" useful for editing visual-hebrew texts:
+" note that "ri" can be a shorthand for "revins"
+amenu Heb&rew.Inverted\ Keyboard 		:set revins<CR> 
+amenu Heb&rew.Normal\ Keyboard	 		:set norevins<CR>
+amenu Heb&rew.Toggle\ &Inverted\ Keyboard	:set invrevins<CR>
+amenu Heb&rew.-sep4-				<nul>
+" note that "ari" can be a shorthand for "allowrevins"
+amenu Heb&rew.Enable\ ^-_			:set allowrevins<CR>
+amenu Heb&rew.Disable\ ^-_			:set noallowrevins<CR>
+amenu Heb&rew.Toggle\ ^-_			:set invallowrevins<CR>
+
+
+" I'm not sure that the following is needed(or maybe only leave the 
+" "toggle" button), and if it is there bound to be a way to make it more
+" elegant. Anyway - I have not bothered to create icons yet...
+
+" Add heb&rew buttons to the toolbar
+nmenu 1.1000 ToolBar.English	:set norightleft<CR>:set nohkmap<CR>
+vmenu 1.1000 ToolBar.English	<Esc>:set norightleft<CR><Esc>:set nohkmap<CR>
+imenu 1.1000 ToolBar.English	<C-O>:set norightleft<CR><C-O>:set nohkmap<CR>
+cmenu 1.1000 ToolBar.English	<C-C>:set norightleft<CR><C-C>:set nohkmap<CR>
+omenu 1.1000 ToolBar.English	<Esc>:set norightleft<CR><Esc>:set nohkmap<CR>
+
+tmenu ToolBar.English		Switch to English
+
+" the following item does not seem to work. I can't figure out why
+amenu 1.1010 ToolBar.TogHeb	<C-_>
+"nmenu 1.1010 ToolBar.TogHeb	:set invrightleft<CR>:set invhkmap<CR>
+"vmenu 1.1010 ToolBar.TogHeb	<Esc>:set invrightleft<CR><Esc>:set invhkmap<CR>
+"imenu 1.1010 ToolBar.TogHeb	<C-O>:set invrightleft<CR><C-O>:set invhkmap<CR>
+"cmenu 1.1010 ToolBar.TogHeb	<C-C>:set invrightleft<CR><C-C>:set invhkmap<CR>
+"omenu 1.1010 ToolBar.TogHeb	<Esc>:set invrightleft<CR><Esc>:set invhkmap<CR><Esc>
+tmenu ToolBar.TogHeb		Toggle Hebrew <-> English
+
+nmenu 1.1020 ToolBar.TogHeb	:set rightleft<CR>:set hkmap<CR>
+vmenu 1.1020 ToolBar.Hebrew	<Esc>:set rightleft<CR><Esc>:set hkmap<CR>
+imenu 1.1020 ToolBar.Hebrew	<C-O>:set rightleft<CR><C-O>:set hkmap<CR>
+cmenu 1.1020 ToolBar.Hebrew	<C-C>:set rightleft<CR><C-C>:set hkmap<CR>
+omenu 1.1020 ToolBar.Hebrew	<Esc>:set rightleft<CR><Esc>:set hkmap<CR><Esc>
+tmenu ToolBar.Hebrew		Switch to Hebrew 
+
+" add a hebrew help item (:help hebrew) to the help menu
+amenu 9999.25 &Help.He&brew		:help hebrew<CR>
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

File t2/open-source/projects/conf/vim/current/conf/Vim/kernel.vim

+set cindent
+set noexpandtab
+set sw=8
+set ts=8
+set sts=0

File t2/open-source/projects/conf/vim/current/conf/Vim/mit-x11.vim

+function! Add_MIT_X_License()
+    normal G
+    read ~/conf/Vim/texts/mit-x11-perl.pod
+    normal G
+endfunction
+
+command! AddX11License :call Add_MIT_X_License()

File t2/open-source/projects/conf/vim/current/conf/Vim/old/perl-test-manage.vim

+" perl-test-manage.vim - keeps track of the number of tests in a Perl test
+" file (t/*.t) by counting '# TEST' comments.
+"
+" In order to keep track of the number of tests you need to have a statement
+" like:
+"
+"     use Test::More tests => 20
+"
+" at the beginning of the test file. Then you need to make sure, every test
+" has a corresponding '# TEST' comment. If you run several tests in a loop,
+" you can append asterisks plus number to the comment. So for example the 
+" comment:
+"
+"     # TEST*3*5
+"
+" will add 15 tests to the test number.
+"
+" To use this file place it on your file-system, include it (at least for
+" perl test files) and optionally bind a key to call Perl_Tests_Count(). I
+" have the following in my .vimrc file, for that:
+"
+" autocmd BufNewFile,BufRead *.t so ~/conf/Vim/perl-test-manage.vim
+" autocmd BufNewFile,BufRead *.t map <F3> :call Perl_Tests_Count()<CR>
+"
+" Author: Shlomi Fish
+" Date: 02 December 2004
+" License: MIT X11
+" 
+
+function! Perl_Tests_Count()
+    " Position the cursor at the beginning of the file
+    call cursor(1,1)
+    " Count the number of lines which indicate a test
+    let mycount = 0
+    while search("# \\+TEST", "W") > 0
+        let num_tests_to_add = 1
+        let line_contents = getline(line("."))
+        let multipliers = substitute(line_contents, "^.*# \\+TEST", "", "")
+        let star_m = matchstr(multipliers, "^\\*\\d\\+")
+        while star_m != ""
+            let multipliers = substitute(multipliers, "^\\*\\d\\+", "", "")
+            let mult = substitute(star_m, "^\\*", "", "")
+            let num_tests_to_add = num_tests_to_add * mult
+            let star_m = matchstr(multipliers, "^\\*\\d\\+")
+        endwhile
+        
+        let mycount = mycount + num_tests_to_add
+    endwhile
+    call cursor(1,1)
+    call search("^use \\(Test::More\\|CondTestMore\\)","W")
+    let line_contents = getline(line("."))
+    let new_line_contents = substitute(line_contents, "\\d\\+", mycount, "")
+    call setline(".", new_line_contents)
+    " call setline(".", mycount)
+endfunction
+

File t2/open-source/projects/conf/vim/current/conf/Vim/perl-test-manage-bak1.vim

+function! Perl_Tests_Count()
+    " Position the cursor at the beginning of the file
+    call cursor(1,1)
+    " Count the number of lines which indicate a test
+    let mycount = 0
+    while (search("# \\+TEST", "W") > 0)
+        let mycount = mycount + 1
+    endwhile
+    call cursor(1,1)
+    call search("^use \\(Test::More\\|CondTestMore\\)","W")
+    let line_contents = getline(line("."))
+    let new_line_contents = substitute(line_contents, "\\d\\+", mycount, "")
+    call setline(".", new_line_contents)
+    " call setline(".", mycount)
+endfunction
+

File t2/open-source/projects/conf/vim/current/conf/Vim/perl-test-manage-bak2.vim

+" perl-test-manage.vim - keeps track of the number of tests in a Perl test
+" file (t/*.t) by counting '# TEST' comments.
+"
+" In order to keep track of the number of tests you need to have a statement
+" like:
+"
+"     use Test::More tests => 20
+"
+" at the beginning of the test file. Then you need to make sure, every test
+" has a corresponding '# TEST' comment. If you run several tests in a loop,
+" you can append asterisks plus number to the comment. So for example the 
+" comment:
+"
+"     # TEST*3*5
+"
+" will add 15 tests to the test number.
+"
+" To use this file place it on your file-system, include it (at least for
+" perl test files) and optionally bind a key to call Perl_Tests_Count(). I
+" have the following in my .vimrc file, for that:
+"
+" autocmd BufNewFile,BufRead *.t so ~/conf/Vim/perl-test-manage.vim
+" autocmd BufNewFile,BufRead *.t map <F3> :call Perl_Tests_Count()<CR>
+"
+" Author: Shlomi Fish
+" Date: 02 December 2004
+" License: MIT X11
+" 
+
+" TODO: Change Get_product to s:get_product().
+
+function! s:get_product(line_contents)
+    let num_tests_to_add = 1
+    let multipliers = substitute(a:line_contents, "^.*# \\+TEST", "", "")
+    let star_m = matchstr(multipliers, "^\\*\\d\\+")
+    while star_m != ""
+        let multipliers = substitute(multipliers, "^\\*\\d\\+", "", "")
+        let num_tests_to_add = num_tests_to_add * strpart(star_m,1)
+        let star_m = matchstr(multipliers, "^\\*\\d\\+")
+    endwhile
+    return num_tests_to_add
+endfunction
+
+function! Perl_Tests_Count()
+    " Position the cursor at the beginning of the file
+    call cursor(1,1)
+    " Count the number of tests
+    let mycount = 0
+    g/# \+TEST/let mycount=mycount + s:get_product(getline("."))
+    call cursor(1,1)
+    call search("^use \\(Test::More\\|CondTestMore\\)","W")
+    let line_contents = getline(line("."))
+    let new_line_contents = substitute(line_contents, "\\d\\+", mycount, "")
+    call setline(".", new_line_contents)
+    " call setline(".", mycount)
+endfunction
+

File t2/open-source/projects/conf/vim/current/conf/Vim/perl-test-manage-helper.pl

+#!/usr/bin/perl 
+
+use strict;
+use warnings;
+
+use Test::Count::Filter;
+use Getopt::Long;
+
+my $filetype = "perl";
+GetOptions('ft=s' => \$filetype);
+
+my %params =
+(
+    'lisp' => 
+    {
+        assert_prefix_regex => qr{; TEST},
+        plan_prefix_regex => qr{\(plan\s+},
+    },
+    'c' =>
+    {
+        assert_prefix_regex => qr{/[/\*]\s+TEST},
+        plan_prefix_regex => qr{\s*plan_tests\s*\(\s*},
+    },
+);
+
+my %aliases =
+(
+    'arc' => "lisp",
+    'scheme' => "lisp",
+    'cpp' => "c",
+);
+
+$filetype = exists($aliases{$filetype}) ? $aliases{$filetype} : $filetype;
+my $ft_params = exists($params{$filetype}) ? $params{$filetype} : +{};
+
+my $filter = 
+    Test::Count::Filter->new(
+        {
+            %{$ft_params},
+        }
+    );
+
+$filter->process();

File t2/open-source/projects/conf/vim/current/conf/Vim/perl-test-manage.vim

+" perl-test-manage.vim - keeps track of the number of tests in a Perl test
+" file (t/*.t) by counting '# TEST' comments.
+"
+" In order to keep track of the number of tests you need to have a statement
+" like:
+"
+"     use Test::More tests => 20
+"
+" at the beginning of the test file. Then you need to make sure, every test
+" has a corresponding '# TEST' comment. If you run several tests in a loop,
+" you can append asterisks plus number to the comment. So for example the 
+" comment:
+"
+"     # TEST*3*5
+"
+" will add 15 tests to the test number.
+"
+" To use this file place it on your file-system, include it (at least for
+" perl test files) and optionally bind a key to call Perl_Tests_Count(). I
+" have the following in my .vimrc file, for that:
+"
+" autocmd BufNewFile,BufRead *.t so ~/conf/Vim/perl-test-manage.vim
+" autocmd BufNewFile,BufRead *.t map <F3> :call Perl_Tests_Count()<CR>
+"
+" Author: Shlomi Fish
+" Date: 02 December 2004
+" License: MIT X11
+" 
+
+" TODO: Change Get_product to s:get_product().
+
+function! Perl_Tests_Count()
+    execute "%!perl ~/conf/Vim/perl-test-manage-helper.pl --ft=".&filetype
+endfunction
+

File t2/open-source/projects/conf/vim/current/conf/Vim/php/symfony/symvimny/.vimrc

+" Automatically reload .vimrc when changing
+autocmd! bufwritepost .vimrc source %
+
+colorscheme default
+set background=dark
+
+" use spaces rather then tabs, with a width of 2
+set tabstop=2
+set shiftwidth=2
+set expandtab
+
+
+" this will show tabs and trailing spaces
+set list
+set listchars=tab:>-,trail:-
+
+
+" Auto indent after a {
+set autoindent
+set smartindent
+
+" Linewidth to endless
+set textwidth=0
+
+" Do not wrap lines automatically
+set nowrap
+
+" Show line numbers by default
+set number
+
+function! InsertTabWrapper()
+    let col = col('.') - 1
+    if !col || getline('.')[col - 1] !~ '\k'
+        return "\<tab>"
+    else
+        return "\<c-p>"
+    endif
+endfunction
+
+" The completion dictionary is provided by Rasmus:
+" http://lerdorf.com/funclist.txt
+set dictionary-=~/symvimny/funclist.txt dictionary+=~/symvimny/funclist.txt
+" Use the dictionary completion
+set complete-=k complete+=k
+
+" Remap the tab key to select action with InsertTabWrapper
+inoremap <tab> <c-r>=InsertTabWrapper()<cr>
+
+set ignorecase                  " caseinsensitive searches-
+set showmode                    " always show command or insert mode-
+set ruler                       " show line and column information-
+set showmatch                   " show matching brackets
+set formatoptions=tcqor
+set whichwrap=b,s,<,>,[,]       " cursors will now wrap
+
+
+" {{{ tabbing config
+
+" ctrl-w+n creates a new split, so I've mapped ctrl-w+t+n to create a new tab, and ctrl-w+t+t to move to the next tab
+noremap <C-W>tn :tabnew<CR>
+noremap <C-W>tt :tabnext<CR>
+
+" very few schemes have tab highlighting in yet, so lets set this outselves...
+hi TabLine            term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
+hi TabLineFill        term=bold,reverse  cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
+hi TabLineSel         term=reverse  ctermfg=white ctermbg=lightblue guifg=white guibg=blue
+
+" always show the tabline...
+set showtabline=2
+
+" }}} tabbing config
+
+
+" {{{ Symfony Code Templates
+
+" validation class...
+map! =symv   class myUnnamedValidator extends sfValidator<CR>{<CR>public function execute (&$value, &$error)<CR>{<CR>if ($value)<CR>{<CR>$error = $this->getParameter('my_error');<CR>return false;<CR>}<CR>return true;<CR>}<CR><CR>public function initialize ($context, $parameters = null)<CR>{<CR>parent::initialize($context, $parameters);<CR>$this->getParameterHolder()->add($parameters);<CR>$this->getParameterHolder()->set('my_error', 'Invalid');<CR>return true;<CR>}<CR>}
+
+" }}} Symfony Code Templates
+
+:autocmd BufNewFile */validate/*.yml 0r ~/symvimny/validate.yml
+:autocmd BufNewFile */config/schema.xml 0r ~/symvimny/schema.xml
+

File t2/open-source/projects/conf/vim/current/conf/Vim/php/symfony/symvimny/funclist.txt

+# var/home/rasmus/php51/Zend/zend_API.c
+# static zend_function_entry disabled_function[] =  {
+display_disabled_function
+# static zend_function_entry disabled_class_new[] =  {
+
+# var/home/rasmus/php51/Zend/zend_builtin_functions.c
+# static zend_function_entry builtin_functions[] = {
+class_exists
+crash
+create_function
+debug_backtrace
+debug_print_backtrace
+define
+defined
+each
+error_reporting
+extension_loaded
+func_get_arg
+func_get_args
+func_num_args
+function_exists
+get_class
+get_class_methods
+get_class_vars
+get_declared_classes
+get_declared_interfaces
+get_defined_constants
+get_defined_functions
+get_defined_vars
+get_extension_funcs
+get_included_files
+get_loaded_extensions
+get_object_vars
+get_parent_class
+get_required_files
+get_resource_type
+interface_exists
+is_a
+is_subclass_of
+leak
+method_exists
+property_exists
+restore_error_handler
+restore_exception_handler
+set_error_handler
+set_exception_handler
+strcasecmp
+strcmp
+strlen
+strncasecmp
+strncmp
+trigger_error
+user_error
+zend_test_func
+zend_thread_id
+zend_version
+
+# var/home/rasmus/php51/Zend/zend_exceptions.c
+# static zend_function_entry default_exception_functions[] = {
+# static zend_function_entry error_exception_functions[] = {
+
+# var/home/rasmus/php51/Zend/zend_interfaces.c
+# zend_function_entry zend_funcs_aggregate[] = {
+# zend_function_entry zend_funcs_iterator[] = {
+# zend_function_entry zend_funcs_arrayaccess[] = {
+# zend_function_entry zend_funcs_serializable[] = {
+
+# var/home/rasmus/php51/ext/bcmath/bcmath.c
+# zend_function_entry bcmath_functions[] = {
+bcadd
+bccomp
+bcdiv
+bcmod
+bcmul
+bcpow
+bcpowmod
+bcscale
+bcsqrt
+bcsub
+
+# var/home/rasmus/php51/ext/bz2/bz2.c
+# zend_function_entry bz2_functions[] = {
+bzclose
+bzcompress
+bzdecompress
+bzerrno
+bzerror
+bzerrstr
+bzflush
+bzopen
+bzread
+bzwrite
+
+# var/home/rasmus/php51/ext/calendar/calendar.c
+# zend_function_entry calendar_functions[] = {
+cal_days_in_month
+cal_from_jd
+cal_info
+cal_to_jd
+easter_date
+easter_days
+frenchtojd
+gregoriantojd
+jddayofweek
+jdmonthname
+jdtofrench
+jdtogregorian
+jdtojewish
+jdtojulian
+jdtounix
+jewishtojd
+juliantojd
+unixtojd
+
+# var/home/rasmus/php51/ext/com_dotnet/com_extension.c
+# zend_function_entry com_dotnet_functions[] = {
+com_create_guid
+com_event_sink
+com_get_active_object
+com_load_typelib
+com_message_pump
+com_print_typeinfo
+variant_abs
+variant_add
+variant_and
+variant_cast
+variant_cat
+variant_cmp
+variant_date_from_timestamp
+variant_date_to_timestamp
+variant_div
+variant_eqv
+variant_fix
+variant_get_type
+variant_idiv
+variant_imp
+variant_int
+variant_mod
+variant_mul
+variant_neg
+variant_not
+variant_or
+variant_pow
+variant_round
+variant_set
+variant_set_type
+variant_sub
+variant_xor
+
+# var/home/rasmus/php51/ext/com_dotnet/com_persist.c
+# static zend_function_entry com_persist_helper_methods[] = {
+
+# var/home/rasmus/php51/ext/ctype/ctype.c
+# zend_function_entry ctype_functions[] = {
+ctype_alnum
+ctype_alpha
+ctype_cntrl
+ctype_digit
+ctype_graph
+ctype_lower
+ctype_print