updated for version 7.0158
diff --git a/runtime/autoload/htmlcomplete.vim b/runtime/autoload/htmlcomplete.vim
index a773ff2..bd138e6 100644
--- a/runtime/autoload/htmlcomplete.vim
+++ b/runtime/autoload/htmlcomplete.vim
@@ -1,7 +1,7 @@
" Vim completion script
" Language: XHTML 1.0 Strict
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2005 Oct 12
+" Last Change: 2005 Now 20
function! htmlcomplete#CompleteTags(findstart, base)
if a:findstart
@@ -52,10 +52,13 @@
if exists("b:entitiescompl")
unlet! b:entitiescompl
- " Very, very long line
- let values = ["AElig", "Aacute", "Acirc", "Agrave", "Alpha", "Aring", "Atilde", "Auml", "Beta", "Ccedil", "Chi", "Dagger", "Delta", "ETH", "Eacute", "Ecirc", "Egrave", "Epsilon", "Eta", "Euml", "Gamma", "Iacute", "Icirc", "Igrave", "Iota", "Iuml", "Kappa", "Lambda", "Mu", "Ntilde", "Nu", "OElig", "Oacute", "Ocirc", "Ograve", "Omega", "Omicron", "Oslash", "Otilde", "Ouml", "Phi", "Pi", "Prime", "Psi", "Rho", "Scaron", "Sigma", "THORN", "TITY", "Tau", "Theta", "Uacute", "Ucirc", "Ugrave", "Upsilon", "Uuml", "Xi", "Yacute", "Yuml", "Zeta", "amp", "aacute", "acirc", "acute", "aelig", "agrave", "alefsym", "alpha", "and", "ang", "apos", "aring", "asymp", "atilde", "auml", "bdquo", "beta", "brvbar", "bull", "cap", "ccedil", "cedil", "cent", "chi", "circ", "clubs", "copy", "cong", "crarr", "cup", "curren", "dArr", "dagger", "darr", "deg", "delta", "diams", "divide", "eacute", "ecirc", "egrave", "empty", "ensp", "emsp", "epsilon", "equiv", "eta", "eth", "euro", "euml", "exist", "fnof", "forall", "frac12", "frac14", "frac34", "frasl", "gt", "gamma", "ge", "hArr", "harr", "hearts", "hellip", "iacute", "icirc", "iexcl", "igrave", "image", "infin", "int", "iota", "iquest", "isin", "iuml", "kappa", "lt", "laquo", "lArr", "lambda", "lang", "larr", "lceil", "ldquo", "le", "lfloor", "lowast", "loz", "lrm", "lsaquo", "lsquo", "macr", "mdash", "micro", "middot", "minus", "mu", "nbsp", "nabla", "ndash", "ne", "ni", "not", "notin", "nsub", "ntilde", "nu", "oacute", "ocirc", "oelig", "ograve", "oline", "omega", "omicron", "oplus", "or", "ordf", "ordm", "oslash", "otilde", "otimes", "ouml", "para", "part", "permil", "perp", "phi", "pi", "piv", "plusmn", "pound", "prime", "prod", "prop", "psi", "quot", "rArr", "raquo", "radic", "rang", "rarr", "rceil", "rdquo", "real", "reg", "rfloor", "rho", "rlm", "rsaquo", "rsquo", "sbquo", "scaron", "sdot", "sect", "shy", "sigma", "sigmaf", "sim", "spades", "sub", "sube", "sum", "sup", "sup1", "sup2", "sup3", "supe", "szlig", "tau", "there4", "theta", "thetasym", "thinsp", "thorn", "tilde", "times", "trade", "uArr", "uacute", "uarr", "ucirc", "ugrave", "uml", "upsih", "upsilon", "uuml", "weierp", "xi", "yacute", "yen", "yuml", "zeta", "zwj", "zwnj"]
+ if !exists("g:xmldata_xhtml10s")
+ runtime! autoload/xml/xhtml10s.vim
+ endif
- for m in values
+ let entities = g:xmldata_xhtml10s['vimxmlentities']
+
+ for m in entities
if m =~ '^'.a:base
call add(res, m.';')
endif
@@ -114,6 +117,7 @@
let head = getline(search('<head\>'), search('<\/head>'))
let headjoined = join(copy(head), ' ')
if headjoined =~ '<style'
+ " Remove possibly confusing CSS operators
let stylehead = substitute(headjoined, '+>\*[,', ' ', 'g')
if search_for == 'class'
let styleheadlines = split(stylehead)
@@ -447,68 +451,18 @@
" Close tag
let b:unaryTagsStack = "base meta link hr br param img area input col"
if context =~ '^\/'
- let opentag = htmlcomplete#GetLastOpenTag("b:unaryTagsStack")
+ let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
return [opentag.">"]
endif
" Deal with tag completion.
- let opentag = htmlcomplete#GetLastOpenTag("b:unaryTagsStack")
- " Clusters
- let special = "br span bdo map object img"
- let phrase = "em strong dfn code q samp kbd var cite abbr acronym sub sup"
- let inlineforms = "input select textarea label button"
- let miscinline = "ins del script"
- let inline = "a ".special." ".phrase." ".inlineforms." tt i b big small"
- let misc = "noscript ".miscinline
- let block = "p h1 h2 h3 h4 h5 h6 div ul ol dl pre hr blockquote address fieldset table"
+ let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
- if opentag == 'a'
- let tags = split("tt i b big small ".special." ".phrase." ".inlineforms." ".miscinline)
- elseif opentag =~ '^\(abbr\|acronym\|address\|b\|p\|h\d\|dt\|span\|bdo\|em\|strong\|dfn\|code\|samp\|kbd\|var\|cite\|q\|sub\|sup\|tt\|i\|big\|small\|label\|caption\)$'
- let tags = split(inline." ".miscinline)
- elseif opentag == 'pre'
- let tags = split("a tt i b big small br span bdo map ".phrase." ".miscinline." ".inlineforms)
- elseif opentag == 'html'
- let tags = ["head", "body"]
- elseif opentag == 'legend'
- let tags = split(inline." ".miscinline)
- elseif opentag == 'head'
- let tags = ["title", "base", "scipt", "style", "meta", "link", "object"]
- elseif opentag =~ '^\(noscript\|body\|blockquote\)$'
- let tags = split("form ".block." ".misc)
- elseif opentag =~ '^\(ul\|ol\)$'
- let tags = ["li"]
- elseif opentag == 'dl'
- let tags = ["dt", "dd"]
- elseif opentag =~ '^\(ins\|del\|th\|td\|dd\|div\|li\)$'
- let tags = split("form ".block." ".inline." ".misc)
- elseif opentag == 'object'
- let tags = split("param form ".block." ".inline." ".misc)
- elseif opentag == 'fieldset'
- let tags = split("legend form ".block." ".inline." ".misc)
- elseif opentag == 'map'
- let tags = split("area form ".block." ".misc)
- elseif opentag == 'form'
- let tags = split(block." ".misc)
- elseif opentag == 'select'
- let tags = ["optgroup", "option"]
- elseif opentag == 'optgroup'
- let tags = ["option"]
- elseif opentag == 'colgroup'
- let tags = ["col"]
- elseif opentag == '^\(textarea\|option\|script\|style\|title\)$'
- let tags = ['empty']
- elseif opentag == 'button'
- let tags = ["p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "ul", "ol", "dl", "table"]
- elseif opentag =~ '^\(thead\|tfoot\|tbody\)$'
- let tags = ["tr"]
- elseif opentag == 'tr'
- let tags = ["th", "td"]
- elseif opentag == 'table'
- let tags = ["caption", "col", "colgroup", "thead", "tfoot", "tbody", "tr"]
- else
- return []
+ if !exists("g:xmldata_xhtml10s")
+ runtime! autoload/xml/xhtml10s.vim
endif
+ let tags = g:xmldata_xhtml10s[opentag][0]
+
for m in tags
if m =~ '^'.context
call add(res, m)
@@ -521,133 +475,3 @@
endif
endfunction
-
-" MM: This is greatly reduced closetag.vim used with kind permission of Steven
-" Mueller
-" Changes: strip all comments; delete error messages
-" Author: Steven Mueller <diffusor@ugcs.caltech.edu>
-" Last Modified: Tue May 24 13:29:48 PDT 2005
-" Version: 0.9.1
-
-function! htmlcomplete#GetLastOpenTag(unaryTagsStack)
- let linenum=line('.')
- let lineend=col('.') - 1 " start: cursor position
- let first=1 " flag for first line searched
- let b:TagStack='' " main stack of tags
- let startInComment=s:InComment()
-
- let tagpat='</\=\(\k\|[-:]\)\+\|/>'
- while (linenum>0)
- let line=getline(linenum)
- if first
- let line=strpart(line,0,lineend)
- else
- let lineend=strlen(line)
- endif
- let b:lineTagStack=''
- let mpos=0
- let b:TagCol=0
- while (mpos > -1)
- let mpos=matchend(line,tagpat)
- if mpos > -1
- let b:TagCol=b:TagCol+mpos
- let tag=matchstr(line,tagpat)
-
- if exists('b:closetag_disable_synID') || startInComment==s:InCommentAt(linenum, b:TagCol)
- let b:TagLine=linenum
- call s:Push(matchstr(tag,'[^<>]\+'),'b:lineTagStack')
- endif
- let lineend=lineend-mpos
- let line=strpart(line,mpos,lineend)
- endif
- endwhile
- while (!s:EmptystackP('b:lineTagStack'))
- let tag=s:Pop('b:lineTagStack')
- if match(tag, '^/') == 0 "found end tag
- call s:Push(tag,'b:TagStack')
- elseif s:EmptystackP('b:TagStack') && !s:Instack(tag, a:unaryTagsStack) "found unclosed tag
- return tag
- else
- let endtag=s:Peekstack('b:TagStack')
- if endtag == '/'.tag || endtag == '/'
- call s:Pop('b:TagStack') "found a open/close tag pair
- elseif !s:Instack(tag, a:unaryTagsStack) "we have a mismatch error
- return ''
- endif
- endif
- endwhile
- let linenum=linenum-1 | let first=0
- endwhile
-return ''
-endfunction
-
-function! s:InComment()
- return synIDattr(synID(line('.'), col('.'), 0), 'name') =~ 'Comment'
-endfunction
-
-function! s:InCommentAt(line, col)
- return synIDattr(synID(a:line, a:col, 0), 'name') =~ 'Comment'
-endfunction
-
-function! s:SetKeywords()
- let g:IsKeywordBak=&iskeyword
- let &iskeyword='33-255'
-endfunction
-
-function! s:RestoreKeywords()
- let &iskeyword=g:IsKeywordBak
-endfunction
-
-function! s:Push(el, sname)
- if !s:EmptystackP(a:sname)
- exe 'let '.a:sname."=a:el.' '.".a:sname
- else
- exe 'let '.a:sname.'=a:el'
- endif
-endfunction
-
-function! s:EmptystackP(sname)
- exe 'let stack='.a:sname
- if match(stack,'^ *$') == 0
- return 1
- else
- return 0
- endif
-endfunction
-
-function! s:Instack(el, sname)
- exe 'let stack='.a:sname
- call s:SetKeywords()
- let m=match(stack, '\<'.a:el.'\>')
- call s:RestoreKeywords()
- if m < 0
- return 0
- else
- return 1
- endif
-endfunction
-
-function! s:Peekstack(sname)
- call s:SetKeywords()
- exe 'let stack='.a:sname
- let top=matchstr(stack, '\<.\{-1,}\>')
- call s:RestoreKeywords()
- return top
-endfunction
-
-function! s:Pop(sname)
- if s:EmptystackP(a:sname)
- return ''
- endif
- exe 'let stack='.a:sname
- call s:SetKeywords()
- let loc=matchend(stack,'\<.\{-1,}\>')
- exe 'let '.a:sname.'=strpart(stack, loc+1, strlen(stack))'
- let top=strpart(stack, match(stack, '\<'), loc)
- call s:RestoreKeywords()
- return top
-endfunction
-
-function! s:Clearstack(sname)
- exe 'let '.a:sname."=''"
-endfunction
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index d989dc0..5a06bb0 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,96 +1,36 @@
" netrw.vim: Handles file transfer and remote directory listing across a network
" AUTOLOAD PORTION
-" Date: Oct 12, 2005
-" Version: 73
+" Last Change: Aug 31, 2005
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
-" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
-" *as is* and comes with no warranty of any kind, either
-" expressed or implied. By using this plugin, you agree that
-" in no event will the copyright holder be liable for any damages
-" resulting from the use of this software.
+" netrw.vim is provided *as is* and comes with no warranty
+" of any kind, either expressed or implied. By using this
+" plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
" of this software.
"
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
" (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-" Exception for &cp: {{{1
-if &cp || exists("g:loaded_netrw")
- finish
-endif
-let g:loaded_netrw = "v73"
+let s:keepcpo= &cpo
+set cpo&vim
+" call Decho("doing autoload/netrw.vim")
if v:version < 700
echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw" | echohl None
finish
endif
-let s:keepcpo = &cpo
-set cpo&vim
-" call Decho("doing autoload/netrw.vim")
" ---------------------------------------------------------------------
-" Default values for netrw's global protocol variables {{{1
-if !exists("g:netrw_dav_cmd")
- let g:netrw_dav_cmd = "cadaver"
+" Default values for global netrw variables {{{1
+if !exists("g:netrw_ftpmode")
+ let g:netrw_ftpmode= "binary"
endif
-if !exists("g:netrw_fetch_cmd")
- if executable("fetch")
- let g:netrw_fetch_cmd = "fetch -o"
- else
- let g:netrw_fetch_cmd = ""
- endif
-endif
-if !exists("g:netrw_ftp_cmd")
- let g:netrw_ftp_cmd = "ftp"
-endif
-if !exists("g:netrw_http_cmd")
- if executable("wget")
- let g:netrw_http_cmd = "wget -q -O"
- elseif executable("fetch")
- let g:netrw_http_cmd = "fetch -o"
- else
- let g:netrw_http_cmd = ""
- endif
-endif
-if !exists("g:netrw_rcp_cmd")
- let g:netrw_rcp_cmd = "rcp"
-endif
-if !exists("g:netrw_rsync_cmd")
- let g:netrw_rsync_cmd = "rsync"
-endif
-if !exists("g:netrw_scp_cmd")
- let g:netrw_scp_cmd = "scp -q"
-endif
-if !exists("g:netrw_sftp_cmd")
- let g:netrw_sftp_cmd = "sftp"
-endif
-if !exists("g:netrw_ssh_cmd")
- let g:netrw_ssh_cmd= "ssh"
-endif
-
-if has("win32") || has("win95") || has("win64") || has("win16")
- \ && exists("g:netrw_use_nt_rcp")
- \ && g:netrw_use_nt_rcp
- \ && executable( $SystemRoot .'/system32/rcp.exe')
- let s:netrw_has_nt_rcp = 1
- let s:netrw_rcpmode = '-b'
- else
- let s:netrw_has_nt_rcp = 0
- let s:netrw_rcpmode = ''
-endif
-
-" ---------------------------------------------------------------------
-" Default values for netrw's global variables {{{1
-" Default values - a-c ---------- {{{2
-if !exists("g:netrw_alto")
- let g:netrw_alto= 0
-endif
-if !exists("g:netrw_altv")
- let g:netrw_altv= 0
+if !exists("g:netrw_win95ftp")
+ let g:netrw_win95ftp= 1
endif
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
@@ -103,15 +43,14 @@
let g:netrw_cygwin= 0
endif
endif
-" Default values - d-f ---------- {{{2
-if !exists("g:NETRW_DIRHIST_CNT")
- let g:NETRW_DIRHIST_CNT= 0
-endif
-if !exists("g:netrw_dirhistmax")
- let g:netrw_dirhistmax= 10
-endif
-if !exists("g:netrw_ftp_browse_reject")
- let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$'
+if !exists("g:netrw_list_cmd")
+ if executable("ssh")
+ " provide a default listing command
+ let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
+ else
+" call Decho("ssh is not executable, can't do remote directory exploring with ssh")
+ let g:netrw_list_cmd= ""
+ endif
endif
if !exists("g:netrw_ftp_list_cmd")
if has("unix") || exists("g:netrw_cygwin")
@@ -120,96 +59,75 @@
let g:netrw_ftp_list_cmd= "dir"
endif
endif
-if !exists("g:netrw_ftpmode")
- let g:netrw_ftpmode= "binary"
-endif
-" Default values - h-lh ---------- {{{2
-if !exists("g:netrw_hide")
- let g:netrw_hide= 1
-endif
-if !exists("g:netrw_keepdir")
- let g:netrw_keepdir= 1
-endif
-if !exists("g:netrw_list_cmd")
- if executable(g:netrw_ssh_cmd)
- " provide a default listing command
- let g:netrw_list_cmd= g:netrw_ssh_cmd." HOSTNAME ls -FLa"
- else
-" call Decho(g:netrw_ssh_cmd." is not executable, can't do remote directory exploring)
- let g:netrw_list_cmd= ""
- endif
-endif
-if !exists("g:netrw_list_hide")
- let g:netrw_list_hide= ""
-endif
-" Default values - lh-lz ---------- {{{2
-if !exists("g:netrw_local_mkdir")
- let g:netrw_local_mkdir= "mkdir"
-endif
-if !exists("g:netrw_local_rmdir")
- let g:netrw_local_rmdir= "rmdir"
-endif
-if !exists("g:netrw_longlist")
- let g:netrw_longlist= 0
-endif
-if g:netrw_longlist < 0 || g:netrw_longlist > 2
- " sanity check
- let g:netrw_longlist= 0
-endif
-if g:netrw_longlist == 1
- let g:netrw_list_cmd= g:netrw_list_cmd." -l"
-endif
-" Default values - m-r ---------- {{{2
-if !exists("g:netrw_maxfilenamelen")
- let g:netrw_maxfilenamelen= 32
-endif
-if !exists("g:netrw_mkdir_cmd")
- let g:netrw_mkdir_cmd= g:netrw_ssh_cmd." HOSTNAME mkdir"
-endif
-if !exists("g:netrw_rename_cmd")
- let g:netrw_rename_cmd= g:netrw_ssh_cmd." HOSTNAME mv"
-endif
if !exists("g:netrw_rm_cmd")
- let g:netrw_rm_cmd = g:netrw_ssh_cmd." HOSTNAME rm"
-endif
-if !exists("g:netrw_rmdir_cmd")
- let g:netrw_rmdir_cmd = g:netrw_ssh_cmd." HOSTNAME rmdir"
+ let g:netrw_rm_cmd = "ssh HOSTNAME rm"
endif
if !exists("g:netrw_rmf_cmd")
- let g:netrw_rmf_cmd = g:netrw_ssh_cmd." HOSTNAME rm -f"
+ let g:netrw_rmf_cmd = "ssh HOSTNAME rm -f"
endif
-" Default values - s ---------- {{{2
+if !exists("g:netrw_rmdir_cmd")
+ let g:netrw_rmdir_cmd = "ssh HOSTNAME rmdir"
+endif
+if !exists("g:netrw_rename_cmd")
+ let g:netrw_rename_cmd= "ssh HOSTNAME mv"
+endif
if exists("g:netrw_silent") && g:netrw_silent != 0
let g:netrw_silentxfer= "silent "
else
let g:netrw_silentxfer= ""
endif
+if !exists("g:netrw_winsize")
+ let g:netrw_winsize= ""
+endif
+if !exists("g:netrw_list_hide")
+ let g:netrw_list_hide= ""
+endif
if !exists("g:netrw_sort_by")
" alternatives: date size
let g:netrw_sort_by= "name"
endif
+if !exists("g:netrw_sort_sequence")
+ let g:netrw_sort_sequence= '[\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$'
+endif
if !exists("g:netrw_sort_direction")
" alternative: reverse (z y x ...)
let g:netrw_sort_direction= "normal"
endif
-if !exists("g:netrw_sort_sequence")
- let g:netrw_sort_sequence= '[\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$'
+if !exists("g:netrw_longlist")
+ let g:netrw_longlist= 0
+endif
+if g:netrw_longlist == 0 || g:netrw_longlist == 2
+ let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
+else
+ let g:netrw_longlist= 1
+ let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa -l"
+endif
+if !exists("g:netrw_list_cmd")
+endif
+if !exists("g:netrw_timefmt")
+ let g:netrw_timefmt= "%c"
+endif
+if !exists("g:netrw_local_rmdir")
+ let g:netrw_local_rmdir= "rmdir"
+endif
+if !exists("g:netrw_local_mkdir")
+ let g:netrw_local_mkdir= "mkdir"
+endif
+if !exists("g:netrw_mkdir_cmd")
+ let g:netrw_mkdir_cmd= "ssh HOSTNAME mkdir"
+endif
+if !exists("g:netrw_hide")
+ let g:netrw_hide= 1
+endif
+if !exists("g:netrw_ftp_browse_reject")
+ let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$'
endif
if !exists("g:netrw_ssh_browse_reject")
let g:netrw_ssh_browse_reject='^total\s\+\d\+$'
endif
-" Default values - t-w ---------- {{{2
-if !exists("g:netrw_timefmt")
- let g:netrw_timefmt= "%c"
+if !exists("g:netrw_keepdir")
+ let g:netrw_keepdir= 1
endif
-if !exists("g:netrw_win95ftp")
- let g:netrw_win95ftp= 1
-endif
-if !exists("g:netrw_winsize")
- let g:netrw_winsize= ""
-endif
-" ---------------------------------------------------------------------
-" Default values for netrw's script variables: {{{1
if !exists("s:netrw_cd_escape")
if has("win32") || has("win95") || has("win64") || has("win16")
let s:netrw_cd_escape="#% "
@@ -224,12 +142,75 @@
let s:netrw_glob_escape= '[]*?`{~$'
endif
endif
+if !exists("g:netrw_alto")
+ let g:netrw_alto= 0
+endif
+if !exists("g:netrw_altv")
+ let g:netrw_altv= 0
+endif
+if !exists("g:netrw_maxfilenamelen")
+ let g:netrw_maxfilenamelen= 32
+endif
+if !exists("g:netrw_dirhistmax")
+ let g:netrw_dirhistmax= 10
+endif
+if !exists("g:NETRW_DIRHIST_CNT")
+ let g:NETRW_DIRHIST_CNT= 0
+endif
" BufEnter event ignored by decho when following variable is true
" Has a side effect that doau BufReadPost doesn't work, so
" files read by network transfer aren't appropriately highlighted.
"let g:decho_bufenter = 1 "Decho
+" ---------------------------------------------------------------------
+" Default values for global protocol variables {{{1
+if !exists("g:netrw_rcp_cmd")
+ let g:netrw_rcp_cmd = "rcp"
+endif
+if !exists("g:netrw_ftp_cmd")
+ let g:netrw_ftp_cmd = "ftp"
+endif
+if !exists("g:netrw_scp_cmd")
+ let g:netrw_scp_cmd = "scp -q"
+endif
+if !exists("g:netrw_sftp_cmd")
+ let g:netrw_sftp_cmd = "sftp"
+endif
+if !exists("g:netrw_http_cmd")
+ if executable("wget")
+ let g:netrw_http_cmd = "wget -q -O"
+ elseif executable("fetch")
+ let g:netrw_http_cmd = "fetch -o"
+ else
+ let g:netrw_http_cmd = ""
+ endif
+endif
+if !exists("g:netrw_dav_cmd")
+ let g:netrw_dav_cmd = "cadaver"
+endif
+if !exists("g:netrw_rsync_cmd")
+ let g:netrw_rsync_cmd = "rsync"
+endif
+if !exists("g:netrw_fetch_cmd")
+ if executable("fetch")
+ let g:netrw_fetch_cmd = "fetch -o"
+ else
+ let g:netrw_fetch_cmd = ""
+ endif
+endif
+
+if has("win32") || has("win95") || has("win64") || has("win16")
+ \ && exists("g:netrw_use_nt_rcp")
+ \ && g:netrw_use_nt_rcp
+ \ && executable( $SystemRoot .'/system32/rcp.exe')
+ let s:netrw_has_nt_rcp = 1
+ let s:netrw_rcpmode = '-b'
+ else
+ let s:netrw_has_nt_rcp = 0
+ let s:netrw_rcpmode = ''
+endif
+
" ------------------------------------------------------------------------
" NetSavePosn: saves position of cursor on screen {{{1
fun! netrw#NetSavePosn()
@@ -422,14 +403,12 @@
".........................................
" ftp + <.netrc>: NetRead Method #2
elseif b:netrw_method == 2 " read with ftp + <.netrc>
-" call Decho("read via ftp+.netrc (method #2)")
+" call Decho("read via ftp+.netrc (method #2)")
let netrw_fname= b:netrw_fname
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
-" call Decho("filter input: ".getline("."))
- exe "put ='".'get \"'.netrw_fname.'\" '.tmpfile."'"
-" call Decho("filter input: ".getline("."))
+ exe "put ='"."get ".netrw_fname." ".tmpfile."'"
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
@@ -446,7 +425,7 @@
let &debug= debugkeep
endif
bd!
- let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
+ let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
".........................................
@@ -459,33 +438,27 @@
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
put ='open '.g:netrw_machine.' '.g:netrw_port
-" call Decho("filter input: ".getline("."))
else
put ='open '.g:netrw_machine
-" call Decho("filter input: ".getline("."))
endif
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
-" call Decho("filter input: ".getline("."))
- put ='\"'.g:netrw_passwd.'\"'
-" call Decho("filter input: ".getline("."))
+ put =g:netrw_passwd
else
- put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
-" call Decho("filter input: ".getline("."))
+ put ='user '.g:netrw_uid.' '.g:netrw_passwd
endif
if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
put =g:netrw_ftpmode
-" call Decho("filter input: ".getline("."))
endif
- put ='get \"'.netrw_fname.'\" '.tmpfile
-" call Decho("filter input: ".getline("."))
+ put ='get '.netrw_fname.' '.tmpfile
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password
+" call Decho('performing ftp -i -n')
norm! 1Gdd
" call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
@@ -518,7 +491,7 @@
" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
endif
- let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
+ let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
".........................................
@@ -529,8 +502,7 @@
echohl Error | echo "***netrw*** neither wget nor fetch command is available" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
-" call Dret("NetRead")
- return
+ exit
endif
if match(b:netrw_fname,"#") == -1
@@ -609,7 +581,7 @@
echohl Error | echo "***netrw*** fetch command not available" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
-" call Dret("NetRead")
+ exit
endif
if exists("g:netrw_option") && g:netrw_option == ":http"
let netrw_option= "http"
@@ -666,10 +638,6 @@
" NetGetFile: Function to read file "fname" with command "readcmd". {{{1
fun! s:NetGetFile(readcmd, fname, method)
" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
-
- " record remote filename
- let rfile= bufname("%")
-" call Decho("rfile<".rfile.">")
if exists("*NetReadFixup")
" for the use of NetReadFixup (not otherwise used internally)
@@ -687,12 +655,15 @@
endif
else
let fname= a:fname
-" call Decho("fname=a:fname<".fname.">")
+" call Decho("(copied) fname<".fname.">")
endif
if a:readcmd[0] == '0'
" get file into buffer
+ " record remote filename
+ let rfile= bufname(".")
+" call Decho("remotefile<".rfile.">")
" call Dredir("ls!","starting buffer list")
" rename the current buffer to the temp file (ie. fname)
@@ -717,12 +688,8 @@
exe a:readcmd." ".v:cmdarg." ".fname
let line1 = curline + 1
let line2 = line("$") - lastline + 1
-
else
" not readable
-" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
- echohl WarningMsg | echo "***netrw*** file <".fname."> not readable"| echohl None
- call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetGetFile : fname<".fname."> not readable")
return
endif
@@ -762,7 +729,7 @@
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
echohl Error | echo "***netrw*** your ".substitute(tmpfile,'[^/]\+$','','e')." directory is missing!"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-" call Dret("NetWrite")
+" call Dret("NetRead")
return
endif
@@ -872,9 +839,9 @@
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
-" call Decho(" filter input: ".getline("."))
- exe "put ='"."put ".tmpfile.' \"'.netrw_fname.'\"'."'"
-" call Decho(" filter input: ".getline("."))
+" call Decho(" NetWrite: put ='".g:netrw_ftpmode."'")
+ exe "put ='"."put ".tmpfile." ".netrw_fname."'"
+" call Decho("put ='"."put ".tmpfile." ".netrw_fname."'")
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
@@ -901,22 +868,16 @@
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
put ='open '.g:netrw_machine.' '.g:netrw_port
-" call Decho("filter input: ".getline("."))
else
put ='open '.g:netrw_machine
-" call Decho("filter input: ".getline("."))
endif
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
-" call Decho("filter input: ".getline("."))
- put ='\"'.g:netrw_passwd.'\"'
-" call Decho("filter input: ".getline("."))
+ put =g:netrw_passwd
else
- put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
-" call Decho("filter input: ".getline("."))
+ put ='user '.g:netrw_uid.' '.g:netrw_passwd
endif
- put ='put '.tmpfile.' \"'.netrw_fname.'\"'
-" call Decho("filter input: ".getline("."))
+ put ='put '.tmpfile.' '.netrw_fname
" save choice/id/password for future use
let b:netrw_lastfile = choice
@@ -924,6 +885,7 @@
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password
+" call Decho('performing ftp -i -n')
norm! 1Gdd
" call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
@@ -1076,7 +1038,7 @@
endif
elseif !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ''
if !exists("g:netrw_quiet")
- echohl Error | echo "***netrw*** this system doesn't support remote directory listing via ".g:netrw_list_cmd | echohl None
+ echohl Error | echo "***netrw*** this system doesn't support remote directory listing via ssh" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
@@ -1094,7 +1056,7 @@
" analyze a:dirname and g:netrw_list_cmd
let dirpat = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
let dirname = substitute(a:dirname,'\\','/','ge')
-" call Decho("dirname<".dirname.">")
+" call Decho("dirpat<".dirpat.">")
if dirname !~ dirpat
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** netrw doesn't understand your dirname<".dirname.">" | echohl None
@@ -1164,9 +1126,9 @@
" call Decho("new path<".path.">")
" remote-read the requested file into current buffer
- keepjumps keepalt enew!
+ enew!
set ma
-" call Decho("exe file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape))
+" call Decho("exe file .method."://".user.machine."/".escape(path,s:netrw_cd_escape))
exe "file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape)
exe "silent doau BufReadPre ".fname
silent call netrw#NetRead(method."://".user.machine."/".path)
@@ -1174,7 +1136,7 @@
keepjumps 1d
" save certain window-oriented variables into buffer-oriented variables
- call s:SetBufWinVars()
+ call s:BufWinVars()
call s:NetOptionRestore()
setlocal nomod
@@ -1200,7 +1162,7 @@
endif
else
" call Decho("generate a new buffer")
- keepjumps keepalt enew!
+ enew!
endif
" rename file to reflect where its from
@@ -1238,7 +1200,7 @@
nnoremap <buffer> <silent> U :<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
nnoremap <buffer> <silent> v :call <SID>NetSplit(1)<cr>
nnoremap <buffer> <silent> x :call <SID>NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()),1)<cr>
- nnoremap <buffer> <silent> <2-leftmouse> :call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
+ nnoremap <buffer> <silent> <2-leftmouse> :call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
exe 'nnoremap <buffer> <silent> <del> :call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
exe 'vnoremap <buffer> <silent> <del> :call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
exe 'nnoremap <buffer> <silent> d :call <SID>NetMakeDir("'.user.machine.'")<cr>'
@@ -1298,7 +1260,6 @@
if g:netrw_ftp_browse_reject != ""
exe "silent! g/".g:netrw_ftp_browse_reject."/keepjumps d"
endif
- silent! keepjumps %s/\r$//e
" if there's no ../ listed, then put ./ and ../ in
let line1= line(".")
@@ -1313,9 +1274,9 @@
keepjumps norm! 0
" more cleanup
- exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
- exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
- exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
+ exe 'keepjumps silent! '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
+ exe "keepjumps silent! ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
+ exe "keepjumps silent! ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
endif
else
@@ -1372,33 +1333,33 @@
keepjumps norm! 0
endif
- exe 'silent keepjumps '.w:netrw_bannercnt.',$s/ -> .*$//e'
- exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e'
- exe 'silent keepjumps '.w:netrw_bannercnt
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$s/ -> .*$//e'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e'
+ exe w:netrw_bannercnt
endif
if line("$") >= w:netrw_bannercnt
if g:netrw_sort_by =~ "^n"
call s:SetSort()
if g:netrw_sort_direction =~ 'n'
- exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
else
- exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
endif
- exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
endif
if w:netrw_longlist == 1
" shorten the list to keep its width <= winwidth characters
- exe "silent keepjumps ".w:netrw_bannercnt.',$s/\t[-dstrwx]\+/\t/e'
+ exe "keepjumps silent ".w:netrw_bannercnt.',$s/\t[-dstrwx]\+/\t/e'
endif
endif
endif
+ " cleanup any windows mess at end-of-line
+ keepjumps silent! %s/\r$//e
call s:NetrwWideListing()
if line("$") >= w:netrw_bannercnt
- " place cursor on the top-left corner of the file listing
exe "keepjumps ".w:netrw_bannercnt
- norm! 0
endif
call s:NetOptionRestore()
@@ -1488,7 +1449,7 @@
let s:netrw_skipbrowse= 1
echo 'Pressing "a" also works'
elseif line("$") > w:netrw_bannercnt
- exe 'silent keepjumps '.w:netrw_bannercnt
+ exe w:netrw_bannercnt
endif
elseif w:netrw_longlist == 0
@@ -1552,9 +1513,6 @@
let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
call inputrestore()
echohl NONE
- if ok == ""
- let ok="no"
- endif
let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
if ok =~ 'a\%[ll]'
let all= 1
@@ -1581,9 +1539,6 @@
call inputsave()
let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
call inputrestore()
- if ok == ""
- let ok="no"
- endif
let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
if ok =~ 'a\%[ll]'
let all= 1
@@ -1735,12 +1690,12 @@
" create a local copy
let fname= tempname().".".exten
" call Decho("create a local copy of <".a:fname."> as <".fname.">")
- exe "silent keepjumps bot 1new ".a:fname
+ exe "keepjumps silent bot 1new ".a:fname
set bh=delete
exe "w! ".fname
q
endif
-" call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten))
+" call Decho("exten<".exten."> "."NetrwFileHandler_".exten."():exists=".exists("*NetrwFileHandler_".exten))
" set up redirection
if &srr =~ "%s"
@@ -1756,22 +1711,19 @@
exe 'silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"'
let ret= v:shell_error
- elseif has("unix") && executable("gnome-open")
-" call Decho("exe silent !gnome-open '".escape(fname,'%#')."' ".redir)
- exe "silent !gnome-open '".escape(fname,'%#')."'".redir
- let ret= v:shell_error
-
elseif has("unix") && executable("kfmclient")
" call Decho("exe silent !kfmclient exec '".escape(fname,'%#')."' ".redir)
exe "silent !kfmclient exec '".escape(fname,'%#')."' ".redir
let ret= v:shell_error
- else
- call netrwFileHandlers#Init()
- if exten != "" && exists("*netrwFileHandlers#NFH_".exten)
-" call Decho("let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")')
- exe "let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")'
- endif
+ elseif has("unix") && executable("gnome-open")
+" call Decho("exe silent !gnome-open '".escape(fname,'%#')."' ".redir)
+ exe "silent !gnome-open '".escape(fname,'%#')."'".redir
+ let ret= v:shell_error
+
+ elseif exten != "" && exists("*NetrwFileHandler_".exten)
+" call Decho("let ret= NetrwFileHandler_".exten.'("'.fname.'")')
+ exe "let ret= NetrwFileHandler_".exten.'("'.fname.'")'
endif
redraw!
@@ -1813,11 +1765,11 @@
if w:netrw_method == 2 || w:netrw_method == 5
" ftp + <.netrc>: Method #2
if a:path != ""
- put ='cd \"'.a:path.'\"'
-" call Decho('ftp: '.getline("."))
+ put ='cd '.a:path
+" call Decho("ftp: cd ".a:path)
endif
exe "put ='".a:cmd."'"
-" call Decho("ftp: ".getline("."))
+" call Decho("ftp: ".a:cmd)
" redraw!|call inputsave()|call input("Pausing...")|call inputrestore()
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
@@ -1839,13 +1791,13 @@
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
- put ='\"'.g:netrw_passwd.'\"'
+ put =g:netrw_passwd
else
- put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
+ put ='user '.g:netrw_uid.' '.g:netrw_passwd
endif
if a:path != ""
- put ='cd \"'.a:path.'\"'
+ put ='cd '.a:path
endif
exe "put ='".a:cmd."'"
@@ -1863,14 +1815,14 @@
" cleanup for Windows
if has("win32") || has("win95") || has("win64") || has("win16")
- silent! keepjumps! %s/\r$//e
+ keepjumps silent!! %s/\r$//e
endif
if a:cmd == "dir"
" infer directory/link based on the file permission string
- silent! keepjumps g/d\%([-r][-w][-x]\)\{3}/s@$@/@
- silent! keepjumps g/l\%([-r][-w][-x]\)\{3}/s/$/@/
+ keepjumps silent! g/d\%([-r][-w][-x]\)\{3}/s@$@/@
+ keepjumps silent! g/l\%([-r][-w][-x]\)\{3}/s/$/@/
if w:netrw_longlist == 0 || w:netrw_longlist == 2
- exe "silent! keepjumps ".curline.',$s/^\%(\S\+\s\+\)\{8}//e'
+ exe "keepjumps silent! ".curline.',$s/^\%(\S\+\s\+\)\{8}//e'
endif
endif
@@ -1908,9 +1860,9 @@
" Prune the list by hiding any files which match
" call Decho("pruning <".hide."> listhide<".listhide.">")
if g:netrw_hide == 1
- exe 'silent keepjumps '.w:netrw_bannercnt.',$g~'.hide.'~d'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$g~'.hide.'~d'
elseif g:netrw_hide == 2
- exe 'silent keepjumps '.w:netrw_bannercnt.',$v~'.hide.'~d'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$v~'.hide.'~d'
endif
endwhile
@@ -2044,10 +1996,10 @@
exe "silent keepjumps norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
endif
exe "silent keepjumps ".newcolstart.','.newcolend.'d'
- exe 'silent keepjumps '.w:netrw_bannercnt
+ exe w:netrw_bannercnt
endwhile
exe "silent keepjumps ".w:netrw_bannercnt.',$s/\s\+$//e'
- setlocal noma nomod
+ set noma nomod
endif
" call Dret("NetrwWideListing")
@@ -2178,12 +2130,9 @@
if exists("w:netrw_bannercnt") && line(".") <= w:netrw_bannercnt
" looks like a "b" was pressed while in the banner region
if line("$") > w:netrw_bannercnt
- exe 'silent keepjumps '.w:netrw_bannercnt
+ exe w:netrw_bannercnt
endif
- if &ch > 1
- " "clear" the message
- echo ""
- endif
+ echo ""
" call Dret("NetBookmarkDir - ignoring")
return
endif
@@ -2280,10 +2229,12 @@
" ---------------------------------------------------------------------
" NetObtain: obtain file under cursor (for remote browsing support) {{{2
fun! s:NetObtain()
+ if !exists("s:netrw_users_stl")
+ let s:netrw_users_stl= &stl
+ endif
let fname= expand("<cWORD>")
-
- " NetrwStatusLine support - for obtaining support
- call s:SetupNetrwStatusLine('%f %h%m%r%=%9*Obtaining '.fname)
+ exe 'set stl=%f\ %h%m%r%=Obtaining\ '.escape(fname,' ')
+ redraw!
" call Dfunc("NetObtain() method=".w:netrw_method)
if exists("w:netrw_method") && w:netrw_method =~ '[235]'
@@ -2326,11 +2277,11 @@
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
- put ='\"'.g:netrw_passwd.'\"'
+ put =g:netrw_passwd
" call Decho('ftp: g:netrw_uid')
" call Decho('ftp: g:netrw_passwd')
else
- put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
+ put ='user '.g:netrw_uid.' '.g:netrw_passwd
" call Decho('user '.g:netrw_uid.' '.g:netrw_passwd)
endif
@@ -2355,14 +2306,12 @@
" restore
exe "silent! ".endline.",$d"
exe "keepjumps ".curline
- setlocal noma nomod
+ set noma nomod
else
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** this system doesn't support ftp" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
- let &stl = s:netrw_users_stl
- let &laststatus = s:netrw_users_ls
" call Dret("NetObtain")
return
endif
@@ -2370,8 +2319,6 @@
".........................................
else
" scp: Method#4
- let curdir = expand("%")
- let path = substitute(curdir,'scp://[^/]\+/','','e')
if exists("g:netrw_port") && g:netrw_port != ""
let useport= " -P ".g:netrw_port
else
@@ -2379,17 +2326,16 @@
endif
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".path.escape(fname,' ?&')." .")
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".path.escape(fname,' ?&')." ."
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(fname,' ?&')." .")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(fname,' ?&')." ."
else
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".path.escape(fname,' ?&')." .")
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".path.escape(fname,' ?&')." ."
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(fname,' ?&')." .")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(fname,' ?&')." ."
endif
endif
" restore status line
- let &stl = s:netrw_users_stl
- let &laststatus = s:netrw_users_ls
+ let &stl= s:netrw_users_stl
redraw!
" call Dret("NetObtain")
@@ -2458,7 +2404,7 @@
" get cleared buffer
if bufnum < 0 || !bufexists(bufnum)
- keepjumps keepalt enew!
+ keepalt enew!
" call Decho("enew buffer")
else
exe "keepalt b ".bufnum
@@ -2550,7 +2496,7 @@
nnoremap <buffer> <silent> U :<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
nnoremap <buffer> <silent> v :call <SID>NetSplit(3)<cr>
nnoremap <buffer> <silent> x :call <SID>NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)"<cr>
- nnoremap <buffer> <silent> <2-leftmouse> :call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
+ nnoremap <buffer> <silent> <2-leftmouse> :exe "call <SID>LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))"<cr>
nnoremap <buffer> <silent> <s-up> :Pexplore<cr>
nnoremap <buffer> <silent> <s-down> :Nexplore<cr>
exe 'nnoremap <buffer> <silent> <del> :call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
@@ -2628,19 +2574,19 @@
call s:SetSort()
if g:netrw_sort_direction =~ 'n'
- exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
else
- exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
endif
- exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
else
if g:netrw_sort_direction =~ 'n'
- exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
else
- exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
endif
- exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
endif
endif
@@ -2648,16 +2594,14 @@
call s:NetrwWideListing()
if exists("w:netrw_bannercnt") && line("$") > w:netrw_bannercnt
- " place cursor on the top-left corner of the file listing
- exe 'silent '.w:netrw_bannercnt
- norm! 0
+ exe w:netrw_bannercnt
endif
" record previous current directory
let w:netrw_prvdir= b:netrw_curdir
" save certain window-oriented variables into buffer-oriented variables
- call s:SetBufWinVars()
+ call s:BufWinVars()
call s:NetOptionRestore()
setlocal noma nomod nonu bh=hide nobl
@@ -2757,7 +2701,7 @@
endwhile
" cleanup any windows mess at end-of-line
- silent! keepjumps %s/\r$//e
+ keepjumps silent! %s/\r$//e
setlocal ts=32
" call Dret("LocalBrowseList")
@@ -2848,12 +2792,7 @@
let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
call inputrestore()
echohl NONE
- if ok == ""
- let ok="no"
- endif
-" call Decho("response: ok<".ok.">")
let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
-" call Decho("response: ok<".ok."> (after sub)")
if ok =~ 'a\%[ll]'
let all= 1
endif
@@ -2874,9 +2813,6 @@
let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
call inputrestore()
let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
- if ok == ""
- let ok="no"
- endif
if ok =~ 'a\%[ll]'
let all= 1
endif
@@ -3065,7 +3001,6 @@
" call Decho("calling NetBrowse(newdir<".newdir.">)")
call s:NetBrowse(newdir)
else
- if newdir == ""|let newdir= "."|endif
" call Decho("calling LocalBrowse(newdir<".newdir.">)")
call s:LocalBrowse(newdir)
endif
@@ -3097,8 +3032,12 @@
endif
endif
- " NetrwStatusLine support - for exploring support
+ " NetrwStatusLine support
let w:netrw_explore_indx= indx
+ if !exists("s:netrw_users_stl")
+ let s:netrw_users_stl= &stl
+ endif
+ set stl=%f\ %h%m%r%=%{NetrwStatusLine()}
" call Decho("explorelist<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen)
" sanity check
@@ -3111,21 +3050,15 @@
endif
exe "let dirfile= w:netrw_explore_list[".indx."]"
-" call Decho("dirfile=w:netrw_explore_list[indx=".indx."]= <".dirfile.">")
+" call Decho("dirfile<".dirfile."> indx=".indx)
let newdir= substitute(dirfile,'/[^/]*$','','e')
" call Decho("newdir<".newdir.">")
-
" call Decho("calling LocalBrowse(newdir<".newdir.">)")
call s:LocalBrowse(newdir)
- if w:netrw_longlist == 0 || w:netrw_longlist == 1
- call search('^'.substitute(dirfile,"^.*/","","").'\>',"W")
- else
- call search('\<'.substitute(dirfile,"^.*/","","").'\>',"w")
- endif
+ call search(substitute(dirfile,"^.*/","",""),"W")
let w:netrw_explore_mtchcnt = indx + 1
let w:netrw_explore_bufnr = bufnr(".")
let w:netrw_explore_line = line(".")
- call s:SetupNetrwStatusLine('%f %h%m%r%=%9*%{NetrwStatusLine()}')
" call Decho("explore: mtchcnt=".w:netrw_explore_mtchcnt." bufnr=".w:netrw_explore_bufnr." line#".w:netrw_explore_line)
else
@@ -3145,73 +3078,12 @@
endfun
" ---------------------------------------------------------------------
-" SetupNetrwStatusLine: {{{2
-fun! s:SetupNetrwStatusLine(statline)
-" call Dfunc("SetupNetrwStatusLine(statline<".a:statline.">)")
-
- if !exists("s:netrw_setup_statline")
- let s:netrw_setup_statline= 1
-" call Decho("do first-time status line setup")
-
- if !exists("s:netrw_users_stl")
- let s:netrw_users_stl= &stl
- endif
- if !exists("s:netrw_users_ls")
- let s:netrw_users_ls= &laststatus
- endif
-
- " set up User9 highlighting as needed
- let keepa= @a
- redir @a
- try
- hi User9
- catch /^Vim\%((\a\+)\)\=:E411/
- if &bg == "dark"
- hi User9 ctermfg=yellow ctermbg=blue guifg=yellow guibg=blue
- else
- hi User9 ctermbg=yellow ctermfg=blue guibg=yellow guifg=blue
- endif
- endtry
- redir END
- let @a= keepa
- endif
-
- " set up status line (may use User9 highlighting)
- " insure that windows have a statusline
- " make sure statusline is displayed
- let &stl=a:statline
- set laststatus=2
-" call Decho("stl=".&stl)
- redraw!
-
-" call Dret("SetupNetrwStatusLine : stl=".&stl)
-endfun
-
-" ---------------------------------------------------------------------
" NetrwStatusLine: {{{2
fun! NetrwStatusLine()
-
- " vvv NetrwStatusLine() debugging vvv
-" let g:stlmsg=""
-" if !exists("w:netrw_explore_bufnr")
-" let g:stlmsg="!X<explore_bufnr>"
-" elseif w:netrw_explore_bufnr != bufnr(".")
-" let g:stlmsg="explore_bufnr!=".bufnr(".")
-" endif
-" if !exists("w:netrw_explore_line")
-" let g:stlmsg=" !X<explore_line>"
-" elseif w:netrw_explore_line != line(".")
-" let g:stlmsg=" explore_line!={line(.)<".line(".").">"
-" endif
-" if !exists("w:netrw_explore_list")
-" let g:stlmsg=" !X<explore_list>"
-" endif
- " ^^^ NetrwStatusLine() debugging ^^^
-
+" let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr(".")." Xline#".w:netrw_explore_line." line#".line(".")
if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr(".") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
" restore user's status line
- let &stl = s:netrw_users_stl
- let &laststatus = s:netrw_users_ls
+ let &stl= s:netrw_users_stl
if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
return ""
@@ -3274,7 +3146,7 @@
let ftpurm = '^ftp://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
let rcpurm = '^rcp://\%(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
let rcphf = '^\(\(\h\w*\)@\)\=\(\h\w*\):\([^@]\+\)$'
- let scpurm = '^scp://\([^/#:]\+\)\%([#:]\(\d\+\)\)\=/\(.*\)$'
+ let scpurm = '^scp://\([^/]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
let httpurm = '^http://\([^/]\{-}\)\(/.*\)\=$'
let davurm = '^s\=dav://\([^/]\+\)/\(.*/\)\([-_.~[:alnum:]]\+\)$'
let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
@@ -3418,6 +3290,11 @@
let b:netrw_method = -1
endif
+ " surround password with double-quotes if it contains embedded blanks
+ if g:netrw_passwd !~ '^"' && g:netrw_passwd =~ ' '
+ let g:netrw_passwd= '"'.g:netrw_passwd.'"'
+ endif
+
" remove any leading [:#] from port number
if g:netrw_port != ""
let g:netrw_port = substitute(g:netrw_port,'[#:]\+','','')
@@ -3464,7 +3341,6 @@
" call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
let g:netrw_passwd=a:2
endif
-
" call Dret("NetUserPass")
endfun
@@ -3486,21 +3362,20 @@
let w:acdkeep = &autochdir
set noautochdir
endif
- let w:cinkeep = &cin
- let w:cinokeep = &cino
- let w:comkeep = &com
- let w:cpokeep = &cpo
+ let w:cinkeep = &cin
+ let w:cinokeep = &cino
+ let w:comkeep = &com
+ let w:cpokeep = &cpo
if !g:netrw_keepdir
- let w:dirkeep = getcwd()
+ let w:dirkeep = getcwd()
endif
- let w:gdkeep = &gd
- let w:repkeep = &report
- let w:spellkeep = &spell
- let w:twkeep = &tw
+ let w:gdkeep = &gd
+ let w:repkeep = &report
+ let w:twkeep = &tw
setlocal cino =
setlocal com =
setlocal cpo -=aA
- setlocal nocin noai nospell
+ setlocal nocin noai
setlocal tw =0
setlocal report=10000
if has("win32") && !has("win95")
@@ -3522,22 +3397,22 @@
endif
unlet w:netoptionsave
- if exists("w:aikeep")| let &ai= w:aikeep|endif
- if (has("netbeans_intg") || has("sun_workshop")) && exists("w:acdkeep")
- let &acd= w:acdkeep
- unlet w:acdkeep
+ let &ai = w:aikeep
+ if has("netbeans_intg") || has("sun_workshop")
+ let &acd = w:acdkeep
endif
- if exists("w:cinkeep") |let &cin = w:cinkeep |unlet w:cinkeep |endif
- if exists("w:cinokeep") |let &cino = w:cinokeep |unlet w:cinokeep |endif
- if exists("w:comkeep") |let &com = w:comkeep |unlet w:comkeep |endif
- if exists("w:cpokeep") |let &cpo = w:cpokeep |unlet w:cpokeep |endif
- if exists("w:dirkeep") |exe "lcd ".w:dirkeep |unlet w:dirkeep |endif
- if exists("w:gdkeep") |let &gd = w:gdkeep |unlet w:gdkeep |endif
- if exists("w:repkeep") |let &report = w:repkeep |unlet w:repkeep |endif
- if exists("w:spellkeep")|let &spell = w:spellkeep |unlet w:spellkeep|endif
- if exists("w:twkeep") |let &tw = w:twkeep |unlet w:twkeep |endif
+ let &cin = w:cinkeep
+ let &cino = w:cinokeep
+ let &com = w:comkeep
+ let &cpo = w:cpokeep
+ if exists("w:dirkeep")
+ exe "lcd ".w:dirkeep
+ endif
+ let &gd = w:gdkeep
+ let &report = w:repkeep
+ let &tw = w:twkeep
if exists("w:swfkeep")
- if &directory == "" && exists("w:swfkeep")
+ if &directory == ""
" user hasn't specified a swapfile directory;
" netrw will temporarily make the swapfile
" directory the current local one.
@@ -3549,6 +3424,17 @@
endif
unlet w:swfkeep
endif
+ unlet w:aikeep
+ unlet w:cinkeep
+ unlet w:cinokeep
+ unlet w:comkeep
+ unlet w:cpokeep
+ unlet w:gdkeep
+ unlet w:repkeep
+ unlet w:twkeep
+ if exists("w:dirkeep")
+ unlet w:dirkeep
+ endif
" call Dret("NetOptionRestore")
endfun
@@ -3560,7 +3446,7 @@
" example and as a fix for a Windows 95 problem: in my
" experience, win95's ftp always dumped four blank lines
" at the end of the transfer.
-if has("win95") && exists("g:netrw_win95ftp") && g:netrw_win95ftp
+if has("win95") && g:netrw_win95ftp
fun! NetReadFixup(method, line1, line2)
" call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
if method == 3 " ftp (no <.netrc>)
@@ -3661,14 +3547,14 @@
return
endif
if seq == '*'
- exe 'silent keepjumps '.w:netrw_bannercnt.',$v/^\d\{3}\//s/^/'.spriority.'/'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$v/^\d\{3}\//s/^/'.spriority.'/'
else
- exe 'silent keepjumps '.w:netrw_bannercnt.',$g/'.eseq.'/s/^/'.spriority.'/'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$g/'.eseq.'/s/^/'.spriority.'/'
endif
let priority = priority + 1
endwhile
- exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\d\{3}\/\)\%(\d\{3}\/\)\+/\1/e'
+ exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\(\d\{3}\/\)\%(\d\{3}\/\)\+/\1/e'
" call Dret("SetSort")
endfun
@@ -3706,14 +3592,14 @@
endfun
" ---------------------------------------------------------------------
-" SetBufWinVars: (used by NetBrowse() and LocalBrowse()) {{{1
+" BufWinVars: (used by NetBrowse() and LocalBrowse()) {{{1
" To allow separate windows to have their own activities, such as
" Explore **/pattern, several variables have been made window-oriented.
" However, when the user splits a browser window (ex: ctrl-w s), these
-" variables are not inherited by the new window. SetBufWinVars() and
+" variables are not inherited by the new window. BufWinVars() and
" UseBufWinVars() get around that.
-fun! s:SetBufWinVars()
-" call Dfunc("SetBufWinVars()")
+fun! s:BufWinVars()
+" call Dfunc("BufWinVars()")
if exists("w:netrw_longlist") |let b:netrw_longlist = w:netrw_longlist |endif
if exists("w:netrw_bannercnt") |let b:netrw_bannercnt = w:netrw_bannercnt |endif
if exists("w:netrw_method") |let b:netrw_method = w:netrw_method |endif
@@ -3724,7 +3610,7 @@
if exists("w:netrw_explore_bufnr") |let b:netrw_explore_bufnr = w:netrw_explore_bufnr |endif
if exists("w:netrw_explore_line") |let b:netrw_explore_line = w:netrw_explore_line |endif
if exists("w:netrw_explore_list") |let b:netrw_explore_list = w:netrw_explore_list |endif
-" call Dret("SetBufWinVars")
+" call Dret("BufWinVars")
endfun
" ---------------------------------------------------------------------
diff --git a/runtime/autoload/netrwSettings.vim b/runtime/autoload/netrwSettings.vim
new file mode 100644
index 0000000..368af55
--- /dev/null
+++ b/runtime/autoload/netrwSettings.vim
@@ -0,0 +1,161 @@
+" netrwSettings.vim: makes netrw settings simpler
+" Date: Oct 12, 2005
+" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version: 4
+" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" netrwSettings.vim is provided *as is* and comes with no
+" warranty of any kind, either expressed or implied. By using
+" this plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
+" of this software.
+"
+" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
+" synagogues, preaching the gospel of the kingdom, and healing
+" every disease and every sickness among the people.
+" Load Once: {{{1
+if exists("g:loaded_netrwSettings") || &cp
+ finish
+endif
+let g:loaded_netrwSettings = "v4"
+
+" ---------------------------------------------------------------------
+" NetrwSettings: {{{1
+fun! netrwSettings#NetrwSettings()
+ " this call is here largely just to insure that netrw has been loaded
+ call netrw#NetSavePosn()
+ if !exists("g:loaded_netrw")
+ echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
+ return
+ endif
+
+ above wincmd s
+ enew
+ setlocal noswapfile bh=wipe
+ set ft=vim
+ file Netrw\ Settings
+
+ " these variables have the following default effects when they don't
+ " exist (ie. have not been set by the user in his/her .vimrc)
+ if !exists("g:netrw_longlist")
+ let g:netrw_longlist= 0
+ let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
+ endif
+ if !exists("g:netrw_silent")
+ let g:netrw_silent= 0
+ endif
+ if !exists("g:netrw_use_nt_rcp")
+ let g:netrw_use_nt_rcp= 0
+ endif
+ if !exists("g:netrw_ftp")
+ let g:netrw_ftp= 0
+ endif
+ if !exists("g:netrw_ignorenetrc")
+ let g:netrw_ignorenetrc= 0
+ endif
+
+ put ='+ ---------------------------------------------'
+ put ='+ NetrwSettings: (by Charles E. Campbell, Jr.)'
+ put ='+ Press ? with cursor atop any line for help '
+ put ='+ ---------------------------------------------'
+ let s:netrw_settings_stop= line(".")
+
+ put =''
+ put ='+ Netrw Protocol Commands'
+ put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
+ put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
+ put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
+ put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
+ put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
+ put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
+ put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
+ put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
+ put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
+ let s:netrw_protocol_stop= line(".")
+ put = ''
+
+ put ='+Netrw Transfer Control'
+ put = 'let g:netrw_cygwin = '.g:netrw_cygwin
+ put = 'let g:netrw_ftp = '.g:netrw_ftp
+ put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
+ put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
+ put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
+ put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
+ let s:netrw_xfer_stop= line(".")
+
+ put = ''
+ put ='+ Netrw Browser Control'
+ put = 'let g:netrw_alto = '.g:netrw_alto
+ put = 'let g:netrw_altv = '.g:netrw_altv
+ put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
+ put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
+ put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
+ put = 'let g:netrw_hide = '.g:netrw_hide
+ put = 'let g:netrw_keepdir = '.g:netrw_keepdir
+ put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
+ put = 'let g:netrw_list_hide = '.g:netrw_list_hide
+ put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
+ put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
+ put = 'let g:netrw_longlist = '.g:netrw_longlist
+ put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
+ put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
+ put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
+ put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
+ put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
+ put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
+ put = 'let g:netrw_silent = '.g:netrw_silent
+ put = 'let g:netrw_sort_by = '.g:netrw_sort_by
+ put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
+ put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
+ put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
+ put = 'let g:netrw_timefmt = '.g:netrw_timefmt
+ put = 'let g:netrw_winsize = '.g:netrw_winsize
+
+ put =''
+ put ='+ For help, place cursor on line and press ?'
+
+ 1d
+ silent %s/^+/"/e
+ res 99
+ silent %s/= \([^0-9].*\)$/= '\1'/e
+ silent %s/= $/= ''/e
+ 1
+
+ set nomod
+
+ map <buffer> <silent> ? :call NetrwSettingHelp()<cr>
+ let tmpfile= tempname()
+ exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwSettingHelp: {{{2
+fun! NetrwSettingHelp()
+" call Dfunc("NetrwSettingHelp()")
+ let curline = getline(".")
+ if curline =~ '='
+ let varhelp = substitute(curline,'^\s*let ','','e')
+ let varhelp = substitute(varhelp,'\s*=.*$','','e')
+" call Decho("trying help ".varhelp)
+ try
+ exe "he ".varhelp
+ catch /^Vim\%((\a\+)\)\=:E149/
+ echo "***sorry*** no help available for <".varhelp.">"
+ endtry
+ elseif line(".") < s:netrw_settings_stop
+ he netrw-settings
+ elseif line(".") < s:netrw_protocol_stop
+ he netrw-externapp
+ elseif line(".") < s:netrw_xfer_stop
+ he netrw-variables
+ else
+ he netrw-browse-var
+ endif
+" call Dret("NetrwSettingHelp")
+endfun
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 0234059..66d2eb5 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -1,79 +1,172 @@
+" tar.vim: Handles browsing tarfiles
+" AUTOLOAD PORTION
+" Date: Nov 18, 2005
+" Version: 4
+" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" License: Vim License (see vim's :help license)
"
-" tar.vim -- a Vim plugin for browsing tarfiles
-" Copyright (c) 2002, Michael C. Toren <mct@toren.net>
-" Distributed under the GNU General Public License.
+" Contains many ideas from Michael Toren's <tar.vim>
"
-" Version: 2
-" Date: Sep 14, 2005
-" Modified By: Charles E. Campbell, Jr.
-"
-" Updates are available from <http://michael.toren.net/code/>. If you
-" find this script useful, or have suggestions for improvements, please
-" let me know.
-" Also look there for further comments and documentation.
-"
-" This part defines the functions. The autocommands are in plugin/tar.vim.
-if exists("g:loaded_tar") || &cp
- finish
-endif
-let g:loaded_tar= "v2"
+" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" tarPlugin.vim is provided *as is* and comes with no warranty
+" of any kind, either expressed or implied. By using this
+" plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
+" of this software.
" ---------------------------------------------------------------------
-" tar#Read: {{{1
-fun! tar#Read(argument, cleanup)
-" call Dfunc("tar#Read(argument<".a:argument."> cleanup=".a:cleanup.")")
- let l:argument = a:argument
- let l:argument = substitute(l:argument, '^tarfile:', '', '')
- let l:argument = substitute(l:argument, '^\~', $HOME, '')
+" Initialization: {{{1
+let s:keepcpo= &cpo
+set cpo&vim
+if exists("g:loaded_tar")
+ finish
+endif
+let g:loaded_tar= "v4"
- let l:tarfile = l:argument
- while 1
- if (l:tarfile == "" || l:tarfile == "/")
- echo "***error*** (tar#Read) Could not find a readable tarfile in path:" l:argument
-" call Dret("tar#Read")
- return
- endif
+" ---------------------------------------------------------------------
+" Default Settings: {{{1
+if !exists("g:tar_browseoptions")
+ let g:tar_browseoptions= "Ptf"
+endif
+if !exists("g:tar_readoptions")
+ let g:tar_readoptions= "OPxf"
+endif
+if !exists("g:tar_writeoptions")
+ let g:tar_writeoptions= "uf"
+endif
- if filereadable(l:tarfile) " found it!
- break
- endif
+" ----------------
+" Functions: {{{1
+" ----------------
- let l:tarfile = fnamemodify(l:tarfile, ":h")
- endwhile
+" ---------------------------------------------------------------------
+" tar#Browse: {{{2
+fun! tar#Browse(tarfile)
+" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
- let l:toextract = strpart(l:argument, strlen(l:tarfile) + 1)
+ " sanity checks
+ if !executable("tar")
+ echohl Error | echo '***error*** (tar#Browse) "tar" not available on your system'
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+" call Dret("tar#Browse")
+ return
+ endif
+ if !filereadable(a:tarfile)
+ if a:tarfile !~# '^\a\+://'
+ " if its an url, don't complain, let url-handlers such as vim do its thing
+ echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+ endif
+" call Dret("tar#Browse : file<".a:tarfile."> not readable")
+ return
+ endif
+ if &ma != 1
+ set ma
+ endif
+ let w:tarfile= a:tarfile
- if (l:toextract == "")
-" call Dret("tar#Read")
- return
- endif
+ setlocal noswapfile
+ setlocal buftype=nofile
+ setlocal bufhidden=hide
+ setlocal nobuflisted
+ setlocal nowrap
+ set ft=tar
- let l:cat = s:TarCatCommand(l:tarfile)
- execute "r !" . l:cat . " < '" . l:tarfile . "'"
- \ " | tar OPxf - '" . l:toextract . "'"
+ " give header
+ exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'"
+ exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'"
+ exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
+ 0d
+ $
- if (a:cleanup)
- 0d "blank line
- execute "doautocmd BufReadPost " . expand("%")
- setlocal nomod
- silent preserve
- endif
-" call Dret("tar#Read")
+ if a:tarfile =~# '\.\(gz\|tgz\)$'
+ exe "silent r! gzip -d -c '".a:tarfile."'| tar -".g:tar_browseoptions." - "
+ elseif a:tarfile =~# '\.bz2$'
+ exe "silent r! bzip2 -d -c '".a:tarfile."'| tar -".g:tar_browseoptions." - "
+ else
+ exe "silent r! tar -".g:tar_browseoptions." '".a:tarfile."'"
+ endif
+ %g@/$@d
+
+ setlocal noma nomod ro
+ noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
+
+" call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
endfun
" ---------------------------------------------------------------------
-" tar#Write: {{{1
-fun! tar#Write(argument)
-" call Dfunc("tar#Write(argument<".a:argument.">)")
-"
+" TarBrowseSelect: {{{2
+fun! s:TarBrowseSelect()
+" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">")
+ let fname= getline(".")
+" call Decho("fname<".fname.">")
+
+ " sanity check
+ if fname =~ '^"'
+" call Dret("TarBrowseSelect")
+ return
+ endif
+
+ " about to make a new window, need to use w:tarfile
+ let tarfile= w:tarfile
+ let curfile= expand("%")
+
+ new
+ wincmd _
+ let s:tblfile_{winnr()}= curfile
+" call Decho("exe e tarfile:".tarfile.':'.fname)
+ exe "e tarfile:".tarfile.':'.fname
+ filetype detect
+
+" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
+endfun
+
+" ---------------------------------------------------------------------
+" tar#Read: {{{2
+fun! tar#Read(fname,mode)
+" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
+ let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','')
+ let fname = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','')
+" call Decho("tarfile<".tarfile."> fname<".fname.">")
+
+ if tarfile =~# '\.\(gz\|tgz\)$'
+" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'")
+ exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
+ elseif a:fname =~# '\.bz2$'
+" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'")
+ exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
+ else
+" call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'")
+ exe "silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'"
+ endif
+ let w:tarfile= a:fname
+ exe "file tarfile:".fname
+
+ " cleanup
+ 0d
+ set nomod
+
+" call Dret("tar#Read : w:tarfile<".w:tarfile.">")
+endfun
+
+" ---------------------------------------------------------------------
+" tar#Write: {{{2
+fun! tar#Write(fname)
+" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
+
" sanity checks
if !executable("tar")
- echo "***error*** (TarWrite) sorry, your system doesn't appear to have the tar pgm"
+ echohl Error | echo '***error*** (tar#Browse) "tar" not available on your system'
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Write")
return
endif
if !exists("*mkdir")
- echo "***error*** (TarWrite) sorry, mkdir() doesn't work on your system"
+ echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Write")
return
endif
@@ -91,44 +184,104 @@
try
exe "cd ".escape(tmpdir,' \')
catch /^Vim\%((\a\+)\)\=:E344/
- echo "***error*** (TarWrite) cannot cd to temporary directory"
+ echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Write")
return
endtry
" call Decho("current directory now: ".getcwd())
- " place temporary files under .../_TARVIM_/
- if isdirectory("_TARVIM_")
- call s:Rmdir("_TARVIM_")
+ " place temporary files under .../_ZIPVIM_/
+ if isdirectory("_ZIPVIM_")
+ call s:Rmdir("_ZIPVIM_")
endif
- call mkdir("_TARVIM_")
- cd _TARVIM_
+ call mkdir("_ZIPVIM_")
+ cd _ZIPVIM_
" call Decho("current directory now: ".getcwd())
- let tarfile = curdir."/".substitute(a:argument,'tarfile:\([^/]\{-}\)/.*$','\1','')
- let path = substitute(a:argument,'^.\{-}/','','')
- let dirpath = substitute(path,'/\=[^/]\+$','','')
-" call Decho("path <".path.">")
-" call Decho("dirpath<".dirpath.">")
- call mkdir(dirpath,"p")
- exe "w! ".path
- if executable("cygpath")
- let path = substitute(system("cygpath ".path),'\n','','e')
- let tarfile = substitute(system("cygpath ".tarfile),'\n','','e')
+ let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\):.*$','\1','')
+ let fname = substitute(w:tarfile,'tarfile:.\{-}:\(.*\)$','\1','')
+
+ " handle compressed archives
+ if tarfile =~# '\.gz'
+ call system("gzip -d ".tarfile)
+ let tarfile = substitute(tarfile,'\.gz','','e')
+ let compress= "gzip '".tarfile."'"
+ elseif tarfile =~# '\.tgz'
+ call system("gzip -d ".tarfile)
+ let tarfile = substitute(tarfile,'\.tgz','.tar','e')
+ let compress= "gzip '".tarfile."'"
+ let tgz = 1
+ elseif tarfile =~# '\.bz2'
+ call system("bzip2 -d ".tarfile)
+ let tarfile = substitute(tarfile,'\.bz2','','e')
+ let compress= "bzip2 '".tarfile."'"
endif
-" call Decho("tar --delete -f ".tarfile." ".path)
- call system("tar --delete -f ".tarfile." ".path)
if v:shell_error != 0
- echo "***error*** (TarWrite) sorry, your tar pgm doesn't support deletion of ".path
+ echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
-" call Decho("tar -rf ".tarfile." ".path)
- call system("tar -rf ".tarfile." ".path)
+
+" call Decho("tarfile<".tarfile."> fname<".fname.">")
+
+ let dirpath = substitute(fname,'/[^/]\+$','','e')
+ if tarfile !~ '/'
+ let tarfile= curdir.'/'.tarfile
+ endif
+" call Decho("tarfile<".tarfile."> fname<".fname.">")
+
+ call mkdir(dirpath,"p")
+ exe "w! ".fname
+ if executable("cygpath")
+ let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
+ let tarfile = substitute(system("cygpath ".tarfile),'\n','','e')
+ endif
+
+ " delete old file from tarfile
+" call Decho("tar --delete -f '".tarfile."' '".fname."'")
+ call system("tar --delete -f '".tarfile."' '".fname."'")
+ if v:shell_error != 0
+ echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+ else
+
+ " update tarfile with new file
+" call Decho("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'")
+ call system("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'")
+ if v:shell_error != 0
+ echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+ elseif exists("compress")
+" call Decho("call system(".compress.")")
+ call system(compress)
+ if exists("tgz")
+" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
+ call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
+ endif
+ endif
+ endif
+
+ " support writing tarfiles across a network
+ if s:tblfile_{winnr()} =~ '^\a\+://'
+" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
+ let tblfile= s:tblfile_{winnr()}
+ 1split|enew
+ let binkeep= &binary
+ let eikeep = &ei
+ set binary ei=all
+ exe "e! ".tarfile
+ call netrw#NetWrite(tblfile)
+ let &ei = eikeep
+ let &binary = binkeep
+ q!
+ unlet s:tblfile_{winnr()}
+ endif
endif
" cleanup and restore current directory
cd ..
- call s:Rmdir("_TARVIM_")
+ call s:Rmdir("_ZIPVIM_")
exe "cd ".escape(curdir,' \')
setlocal nomod
@@ -136,91 +289,7 @@
endfun
" ---------------------------------------------------------------------
-" tar#Browse: {{{1
-fun! tar#Browse(tarfile)
-" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
- setlocal noswapfile
- setlocal buftype=nofile
- setlocal bufhidden=hide
- setlocal filetype=
- setlocal nobuflisted
- setlocal buftype=nofile
- setlocal wrap
- setlocal syntax=tar
-
- let l:tarfile = a:tarfile
- let b:tarfile = l:tarfile
- let l:cat = s:TarCatCommand(l:tarfile)
-
- if ! filereadable(l:tarfile)
- let l:tarfile = substitute(l:tarfile, '^tarfile:', '', '')
- endif
-
- if ! filereadable(l:tarfile)
- echo "***error*** (tar#Browse) File not readable:" l:tarfile
-" call Dret("tar#Browse")
- return
- endif
-
- call s:Say("\" tar.vim version " . g:loaded_tar)
- call s:Say("\" Browsing tarfile " . l:tarfile)
- call s:Say("\" Hit ENTER to view a file in a new window")
- call s:Say("")
-
- silent execute "r!" . l:cat . "<'" . l:tarfile . "'| tar Ptf - "
- 0d "blank line
- /^$/1
-
- setlocal noma nomod ro
-
- noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
-" call Dret("tar#Browse")
-endfun
-
-" ---------------------------------------------------------------------
-" TarBrowseSelect: {{{1
-fun! s:TarBrowseSelect()
- let l:line = getline(".")
-
- if (l:line =~ '^" ')
- return
- endif
-
- if (l:line =~ '/$')
- echo "Please specify a file, not a directory"
- return
- endif
-
- let l:selection = "tarfile:" . b:tarfile . "/" . l:line
- new
- wincmd _
- execute "e " . l:selection
-endfun
-
-" ---------------------------------------------------------------------
-" TarCatCommand: kludge to deal with compressed archives {{{1
-fun! s:TarCatCommand(tarfile)
-" call Dfunc("s:TarCatCommand(tarfile<".a:tarfile.">)")
- if a:tarfile =~# '\.\(gz\|tgz\|Z\)$'
- let l:cat = "gzip -d -c"
- elseif a:tarfile =~# '\.bz2$'
- let l:cat = "bzip2 -d -c"
- else
- let l:cat = "cat"
- endif
-" call Dret("s:TarCatCommand ".l:cat)
- return l:cat
-endfun
-
-" ---------------------------------------------------------------------
-" Say: {{{1
-fun! s:Say(string)
- let @" = a:string
- $ put
-endfun
-
-" ---------------------------------------------------------------------
-" Rmdir: {{{1
+" Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if has("unix")
@@ -235,6 +304,8 @@
" call Dret("Rmdir")
endfun
-" ---------------------------------------------------------------------
-" Modelines: {{{1
-" vim:set ts=8 sts=4 sw=4 fdm=marker:
+" ------------------------------------------------------------------------
+" Modelines And Restoration: {{{1
+let &cpo= s:keepcpo
+unlet s:keepcpo
+" vim:ts=8 fdm=marker
diff --git a/runtime/autoload/xmlcomplete.vim b/runtime/autoload/xmlcomplete.vim
new file mode 100644
index 0000000..3cd4c71
--- /dev/null
+++ b/runtime/autoload/xmlcomplete.vim
@@ -0,0 +1,428 @@
+" Vim completion script
+" Language: XHTML 1.0 Strict
+" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
+" Last Change: 2005 Nov 22
+
+" This function will create Dictionary with users namespace strings and values
+" canonical (system) names of data files. Names should be lowercase,
+" descriptive to avoid any future conflicts. For example 'xhtml10s' should be
+" name for data of XHTML 1.0 Strict and 'xhtml10t' for XHTML 1.0 Transitional
+" User interface will be provided by XMLns command defined ...
+" Currently supported canonicals are:
+" xhtml10s - XHTML 1.0 Strict
+" xsl - XSL
+function! xmlcomplete#CreateConnection(canonical, ...)
+
+ " When only one argument provided treat name as default namespace (without
+ " 'prefix:').
+ if exists("a:1")
+ let users = a:1
+ else
+ let users = 'DEFAULT'
+ endif
+
+ " Source data file. Due to suspected errors in autoload do it with
+ " :runtime.
+ " TODO: make it properly (using autoload, that is) later
+ exe "runtime autoload/xml/".a:canonical.".vim"
+
+ " Remove all traces of unexisting files to return [] when trying
+ " omnicomplete something
+ " TODO: give warning about non-existing canonicals - should it be?
+ if !exists("g:xmldata_".a:canonical)
+ unlet! g:xmldata_connection
+ return 0
+ endif
+
+ " We need to initialize Dictionary to add key-value pair
+ if !exists("g:xmldata_connection")
+ let g:xmldata_connection = {}
+ endif
+
+ let g:xmldata_connection[users] = a:canonical
+
+endfunction
+
+function! xmlcomplete#CreateEntConnection(...)
+ if a:0 > 0
+ let g:xmldata_entconnect = a:1
+ else
+ let g:xmldata_entconnect = 'DEFAULT'
+ endif
+endfunction
+
+function! xmlcomplete#CompleteTags(findstart, base)
+ if a:findstart
+ " locate the start of the word
+ let line = getline('.')
+ let start = col('.') - 1
+ let compl_begin = col('.') - 2
+
+ while start >= 0 && line[start - 1] =~ '\(\k\|[:.-]\)'
+ let start -= 1
+ endwhile
+
+ if start >= 0 && line[start - 1] =~ '&'
+ let b:entitiescompl = 1
+ let b:compl_context = ''
+ return start
+ endif
+
+ let b:compl_context = getline('.')[0:(compl_begin)]
+ let b:compl_context = matchstr(b:compl_context, '.*<\zs.*')
+
+ " Make sure we will have only current namespace
+ unlet! b:xml_namespace
+ let b:xml_namespace = matchstr(b:compl_context, '^\k*\ze:')
+ if b:xml_namespace == ''
+ let b:xml_namespace = 'DEFAULT'
+ endif
+
+ return start
+
+ else
+ " There is no connction of namespace and data file. Abandon action
+ if !exists("g:xmldata_connection") || g:xmldata_connection == {}
+ return []
+ endif
+ " Initialize base return lists
+ let res = []
+ let res2 = []
+ " a:base is very short - we need context
+ let context = b:compl_context
+ unlet! b:compl_context
+
+ " Make entities completion
+ if exists("b:entitiescompl")
+ unlet! b:entitiescompl
+
+ if !exists("g:xmldata_entconnect") || g:xmldata_entconnect == 'DEFAULT'
+ let values = g:xmldata{'_'.g:xmldata_connection['DEFAULT']}['vimxmlentities']
+ else
+ let values = g:xmldata{'_'.g:xmldata_entconnect}['vimxmlentities']
+ endif
+
+ " Get only lines with entity declarations but throw out
+ " parameter-entities - they may be completed in future
+ let entdecl = filter(getline(1, "$"), 'v:val =~ "<!ENTITY\\s\\+[^%]"')
+
+ if len(entdecl) > 0
+ let intent = map(copy(entdecl), 'matchstr(v:val, "<!ENTITY\\s\\+\\zs\\(\\k\\|[.-:]\\)\\+\\ze")')
+ let values = intent + values
+ endif
+
+ for m in values
+ if m =~ '^'.a:base
+ call add(res, m.';')
+ endif
+ endfor
+
+ return res
+
+ endif
+ if context =~ '>'
+ " Generally if context contains > it means we are outside of tag and
+ " should abandon action
+ return []
+ endif
+
+ " find tags matching with "a:base"
+ " If a:base contains white space it is attribute.
+ " It could be also value of attribute...
+ " We have to get first word to offer
+ " proper completions
+ if context == ''
+ let tag = ''
+ else
+ let tag = split(context)[0]
+ endif
+ " Get rid of namespace
+ let tag = substitute(tag, '^'.b:xml_namespace.':', '', '')
+
+
+ " Get last word, it should be attr name
+ let attr = matchstr(context, '.*\s\zs.*')
+ " Possible situations where any prediction would be difficult:
+ " 1. Events attributes
+ if context =~ '\s'
+
+ " If attr contains =\s*[\"'] we catched value of attribute
+ if attr =~ "=\s*[\"']"
+ " Let do attribute specific completion
+ let attrname = matchstr(attr, '.*\ze\s*=')
+ let entered_value = matchstr(attr, ".*=\\s*[\"']\\zs.*")
+
+ if tag =~ '^[?!]'
+ " Return nothing if we are inside of ! or ? tag
+ return []
+ else
+ let values = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][attrname]
+ endif
+
+ if len(values) == 0
+ return []
+ endif
+
+ " We need special version of sbase
+ let attrbase = matchstr(context, ".*[\"']")
+ let attrquote = matchstr(attrbase, '.$')
+
+ for m in values
+ " This if is needed to not offer all completions as-is
+ " alphabetically but sort them. Those beginning with entered
+ " part will be as first choices
+ if m =~ '^'.entered_value
+ call add(res, m . attrquote.' ')
+ elseif m =~ entered_value
+ call add(res2, m . attrquote.' ')
+ endif
+ endfor
+
+ return res + res2
+
+ endif
+
+ if tag =~ '?xml'
+ " Two possible arguments for <?xml> plus variation
+ let attrs = ['encoding', 'version="1.0"', 'version']
+ elseif tag =~ '^!'
+ " Don't make completion at all
+ return []
+ else
+ let attrs = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1])
+ endif
+
+ for m in sort(attrs)
+ if m =~ '^'.attr
+ if tag !~ '^[?!]' && len(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][m]) > 0 && g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][m][0] =~ '^BOOL$'
+ call add(res, m)
+ elseif m =~ '='
+ call add(res, m)
+ else
+ call add(res, m.'="')
+ endif
+ elseif m =~ attr
+ if tag !~ '^[?!]' && len(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][m]) > 0 && g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[tag][1][m][0] =~ '^BOOL$'
+ call add(res, m)
+ elseif m =~ '='
+ call add(res, m)
+ else
+ call add(res2, m.'="')
+ endif
+ endif
+ endfor
+
+ return res + res2
+
+ endif
+ " Close tag
+ let b:unaryTagsStack = "base meta link hr br param img area input col"
+ if context =~ '^\/'
+ let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
+ return [opentag.">"]
+ endif
+
+ " Complete elements of XML structure
+ " TODO: #REQUIRED, #IMPLIED, #FIXED, #PCDATA - but these should be detected like
+ " entities - in first run
+ " keywords: CDATA, ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS
+ " are hardly recognizable but keep it in reserve
+ " also: EMPTY ANY SYSTEM PUBLIC DATA
+ if context =~ '^!'
+ let tags = ['!ELEMENT', '!DOCTYPE', '!ATTLIST', '!ENTITY', '!NOTATION', '![CDATA[', '![INCLUDE[', '![IGNORE[']
+
+ for m in tags
+ if m =~ '^'.context
+ let m = substitute(m, '^!\[\?', '', '')
+ call add(res, m)
+ elseif m =~ context
+ let m = substitute(m, '^!\[\?', '', '')
+ call add(res2, m)
+ endif
+ endfor
+
+ return res + res2
+
+ endif
+
+ " Complete text declaration
+ let g:co = context
+ if context =~ '^?'
+ let tags = ['?xml']
+
+ for m in tags
+ if m =~ '^'.context
+ call add(res, substitute(m, '^?', '', ''))
+ elseif m =~ context
+ call add(res, substitute(m, '^?', '', ''))
+ endif
+ endfor
+
+ return res + res2
+
+ endif
+
+ " Deal with tag completion.
+ let opentag = xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
+ let opentag = substitute(opentag, '^\k*:', '', '')
+
+ let tags = g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}[opentag][0]
+ let context = substitute(context, '^\k*:', '', '')
+
+ if b:xml_namespace == 'DEFAULT'
+ let b:xml_namespace = ''
+ else
+ let b:xml_namespace .= ':'
+ endif
+
+ for m in tags
+ if m =~ '^'.context
+ call add(res, b:xml_namespace.m)
+ elseif m =~ context
+ call add(res2, b:xml_namespace.m)
+ endif
+ endfor
+
+ return res + res2
+
+ endif
+endfunction
+
+" MM: This is greatly reduced closetag.vim used with kind permission of Steven
+" Mueller
+" Changes: strip all comments; delete error messages; add checking for
+" namespace
+" Author: Steven Mueller <diffusor@ugcs.caltech.edu>
+" Last Modified: Tue May 24 13:29:48 PDT 2005
+" Version: 0.9.1
+
+function! xmlcomplete#GetLastOpenTag(unaryTagsStack)
+ let linenum=line('.')
+ let lineend=col('.') - 1 " start: cursor position
+ let first=1 " flag for first line searched
+ let b:TagStack='' " main stack of tags
+ let startInComment=s:InComment()
+
+ if exists("b:xml_namespace")
+ if b:xml_namespace == 'DEFAULT'
+ let tagpat='</\=\(\k\|[.-]\)\+\|/>'
+ else
+ let tagpat='</\='.b:xml_namespace.':\(\k\|[.-]\)\+\|/>'
+ endif
+ else
+ let tagpat='</\=\(\k\|[.-:]\)\+\|/>'
+ endif
+ while (linenum>0)
+ let line=getline(linenum)
+ if first
+ let line=strpart(line,0,lineend)
+ else
+ let lineend=strlen(line)
+ endif
+ let b:lineTagStack=''
+ let mpos=0
+ let b:TagCol=0
+ while (mpos > -1)
+ let mpos=matchend(line,tagpat)
+ if mpos > -1
+ let b:TagCol=b:TagCol+mpos
+ let tag=matchstr(line,tagpat)
+
+ if exists('b:closetag_disable_synID') || startInComment==s:InCommentAt(linenum, b:TagCol)
+ let b:TagLine=linenum
+ call s:Push(matchstr(tag,'[^<>]\+'),'b:lineTagStack')
+ endif
+ let lineend=lineend-mpos
+ let line=strpart(line,mpos,lineend)
+ endif
+ endwhile
+ while (!s:EmptystackP('b:lineTagStack'))
+ let tag=s:Pop('b:lineTagStack')
+ if match(tag, '^/') == 0 "found end tag
+ call s:Push(tag,'b:TagStack')
+ elseif s:EmptystackP('b:TagStack') && !s:Instack(tag, a:unaryTagsStack) "found unclosed tag
+ return tag
+ else
+ let endtag=s:Peekstack('b:TagStack')
+ if endtag == '/'.tag || endtag == '/'
+ call s:Pop('b:TagStack') "found a open/close tag pair
+ elseif !s:Instack(tag, a:unaryTagsStack) "we have a mismatch error
+ return ''
+ endif
+ endif
+ endwhile
+ let linenum=linenum-1 | let first=0
+ endwhile
+return ''
+endfunction
+
+function! s:InComment()
+ return synIDattr(synID(line('.'), col('.'), 0), 'name') =~ 'Comment'
+endfunction
+
+function! s:InCommentAt(line, col)
+ return synIDattr(synID(a:line, a:col, 0), 'name') =~ 'Comment'
+endfunction
+
+function! s:SetKeywords()
+ let g:IsKeywordBak=&iskeyword
+ let &iskeyword='33-255'
+endfunction
+
+function! s:RestoreKeywords()
+ let &iskeyword=g:IsKeywordBak
+endfunction
+
+function! s:Push(el, sname)
+ if !s:EmptystackP(a:sname)
+ exe 'let '.a:sname."=a:el.' '.".a:sname
+ else
+ exe 'let '.a:sname.'=a:el'
+ endif
+endfunction
+
+function! s:EmptystackP(sname)
+ exe 'let stack='.a:sname
+ if match(stack,'^ *$') == 0
+ return 1
+ else
+ return 0
+ endif
+endfunction
+
+function! s:Instack(el, sname)
+ exe 'let stack='.a:sname
+ call s:SetKeywords()
+ let m=match(stack, '\<'.a:el.'\>')
+ call s:RestoreKeywords()
+ if m < 0
+ return 0
+ else
+ return 1
+ endif
+endfunction
+
+function! s:Peekstack(sname)
+ call s:SetKeywords()
+ exe 'let stack='.a:sname
+ let top=matchstr(stack, '\<.\{-1,}\>')
+ call s:RestoreKeywords()
+ return top
+endfunction
+
+function! s:Pop(sname)
+ if s:EmptystackP(a:sname)
+ return ''
+ endif
+ exe 'let stack='.a:sname
+ call s:SetKeywords()
+ let loc=matchend(stack,'\<.\{-1,}\>')
+ exe 'let '.a:sname.'=strpart(stack, loc+1, strlen(stack))'
+ let top=strpart(stack, match(stack, '\<'), loc)
+ call s:RestoreKeywords()
+ return top
+endfunction
+
+function! s:Clearstack(sname)
+ exe 'let '.a:sname."=''"
+endfunction
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index 751b1a1..50a6002 100644
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
-" Date: Sep 16, 2005
-" Version: 2
+" Date: Nov 14, 2005
+" Version: 4
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
@@ -22,7 +22,7 @@
finish
endif
-let g:loaded_zip= "v2"
+let g:loaded_zip= "v4"
" ----------------
" Functions: {{{1
@@ -41,9 +41,12 @@
return
endif
if !filereadable(a:zipfile)
- echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
- call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-" call Dret("zip#Browse")
+ if a:zipfile !~# '^\a\+://'
+ " if its an url, don't complain, let url-handlers such as vim do its thing
+ echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+ endif
+" call Dret("zip#Browse : file<".a:zipfile."> not readable")
return
endif
if &ma != 1
@@ -80,7 +83,7 @@
" ---------------------------------------------------------------------
" ZipBrowseSelect: {{{2
fun! s:ZipBrowseSelect()
-" call Dfunc("ZipBrowseSelect() zipfile<".w:zipfile.">")
+" call Dfunc("ZipBrowseSelect() zipfile<".w:zipfile."> curfile<".expand("%").">")
let fname= getline(".")
" sanity check
@@ -99,13 +102,15 @@
" get zipfile to the new-window
let zipfile= substitute(w:zipfile,'.zip$','','e')
+ let curfile= expand("%")
new
wincmd _
+ let s:zipfile_{winnr()}= curfile
exe "e zipfile:".zipfile.':'.fname
filetype detect
-" call Dret("ZipBrowseSelect")
+" call Dret("ZipBrowseSelect : s:zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
endfun
" ---------------------------------------------------------------------
@@ -128,7 +133,7 @@
" ---------------------------------------------------------------------
" zip#Write: {{{2
fun! zip#Write(fname)
-" call Dfunc("zip#Write(fname<".a:fname.")")
+" call Dfunc("zip#Write(fname<".a:fname.") zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
" sanity checks
if !executable("zip")
@@ -192,6 +197,21 @@
if v:shell_error != 0
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+
+ elseif s:zipfile_{winnr()} =~ '^\a\+://'
+ " support writing zipfiles across a network
+ let netzipfile= s:zipfile_{winnr()}
+" call Decho("handle writing <".zipfile.".zip> across network as <".netzipfile.">")
+ 1split|enew
+ let binkeep= &binary
+ let eikeep = &ei
+ set binary ei=all
+ exe "e! ".zipfile.".zip"
+ call netrw#NetWrite(netzipfile)
+ let &ei = eikeep
+ let &binary = binkeep
+ q!
+ unlet s:zipfile_{winnr()}
endif
" cleanup and restore current directory
diff --git a/runtime/compiler/eruby.vim b/runtime/compiler/eruby.vim
index 77292bc..474dafe 100644
--- a/runtime/compiler/eruby.vim
+++ b/runtime/compiler/eruby.vim
@@ -2,14 +2,8 @@
" Language: eRuby
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
" Info: $Id$
-" URL: http://vim-ruby.sourceforge.net
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
if exists("current_compiler")
diff --git a/runtime/compiler/fpc.vim b/runtime/compiler/fpc.vim
new file mode 100644
index 0000000..fb4f424
--- /dev/null
+++ b/runtime/compiler/fpc.vim
@@ -0,0 +1,17 @@
+" Vim compiler file
+" Compiler: FPC 2.1
+" Maintainer: Jaroslaw Blasiok <jaro3000@o2.pl>
+" Last Change: 2005 October 07
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "fpc"
+
+if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+" NOTE: compiler must be runned with -vb to write whole source path, not only file
+" name.
+CompilerSet errorformat=%f(%l\\,%c)\ %m
diff --git a/runtime/compiler/hp_acc.vim b/runtime/compiler/hp_acc.vim
index eaf61b2..685bd5b 100644
--- a/runtime/compiler/hp_acc.vim
+++ b/runtime/compiler/hp_acc.vim
@@ -1,8 +1,8 @@
" Vim compiler file
" Compiler: HP aCC
" Maintainer: Matthias Ulrich <matthias-ulrich@web.de>
-" URL: http://www.subhome.de/vim/hp_acc.vim
-" Last Change: 2004 Mar 27
+" URL: http://www.subhome.de/vim/hp_acc.vim
+" Last Change: 2005 Nov 19
"
" aCC --version says: "HP ANSI C++ B3910B A.03.13"
" This compiler has been tested on:
@@ -10,6 +10,10 @@
"
" Tim Brown's aCC is: "HP ANSI C++ B3910B A.03.33"
" and it also works fine...
+"
+" Now suggestions by aCC are supported (compile flag aCC +w).
+" Thanks to Tim Brown again!!
+"
if exists("current_compiler")
finish
@@ -21,6 +25,7 @@
endif
CompilerSet errorformat=%A%trror\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m,
+ \%A%tarning\ (suggestion)\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m\ %#,
\%A%tarning\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m\ %#,
\%Z\ \ \ \ %p^%.%#,
\%-C%.%#
diff --git a/runtime/compiler/ruby.vim b/runtime/compiler/ruby.vim
index 88b683f..d34b37e 100644
--- a/runtime/compiler/ruby.vim
+++ b/runtime/compiler/ruby.vim
@@ -5,12 +5,6 @@
" Info: $Id$
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
"
" Changelog:
diff --git a/runtime/compiler/rubyunit.vim b/runtime/compiler/rubyunit.vim
index ba5ddf4..9111178 100644
--- a/runtime/compiler/rubyunit.vim
+++ b/runtime/compiler/rubyunit.vim
@@ -2,14 +2,8 @@
" Language: Test::Unit - Ruby Unit Testing Framework
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
" Info: $Id$
-" URL: http://vim-ruby.sourceforge.net
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
if exists("current_compiler")
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index e2ca67a..390afad 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 7.0aa. Last change: 2005 Oct 10
+*autocmd.txt* For Vim version 7.0aa. Last change: 2005 Nov 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -812,6 +812,10 @@
autocommands for that group. Note: if you use an
undefined group name, Vim gives you an error message.
+ After applying the autocommands the modelines are
+ processed, so that their overrule the settings from
+ autocommands, like what happens when editing a file.
+
*:doautoa* *:doautoall*
:doautoa[ll] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 1ea512e..ec354ec 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 7.0aa. Last change: 2005 Sep 17
+*cmdline.txt* For Vim version 7.0aa. Last change: 2005 Nov 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -562,7 +562,7 @@
"name"
==============================================================================
-4. Ex command-line ranges *cmdline-ranges* *[range]* *E16* *E493*
+4. Ex command-line ranges *cmdline-ranges* *[range]* *E16*
Some Ex commands accept a line range in front of them. This is noted as
[range]. It consists of one or more line specifiers, separated with ',' or
@@ -648,11 +648,15 @@
closed fold. See |fold-behavior|.
-Reverse Range
+Reverse Range *E493*
A range should have the lower line number first. If this is not the case, Vim
-will ask you if it should swap the line numbers. This is not done within the
-global command ":g".
+will ask you if it should swap the line numbers.
+ Backwards range given, OK to swap ~
+This is not done within the global command ":g".
+
+You can use ":silent" before a command to avoid the question, the range will
+always be swapped then.
Count and Range *N:*
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index cb7ed6e..adcf451 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2005 Oct 12
+*eval.txt* For Vim version 7.0aa. Last change: 2005 Nov 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5050,6 +5050,9 @@
:let l = foo#bar#lvar
+However, when the autoload script was already loaded it won't be loaded again
+for an unknown variable.
+
When assigning a value to such a variable nothing special happens. This can
be used to pass settings to the autoload script before it's loaded: >
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index ef0763d..6e0a3e4 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt* For Vim version 7.0aa. Last change: 2005 Mar 29
+*if_perl.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -9,6 +9,7 @@
1. Editing Perl files |perl-editing|
2. Compiling VIM with Perl interface |perl-compiling|
3. Using the Perl interface |perl-using|
+4. Dynamic loading |perl-dynamic|
{Vi does not have any of these commands}
@@ -259,4 +260,22 @@
endif
Note that "EOF" must be at the start of the line.
+==============================================================================
+4. Dynamic loading *perl-dynamic*
+
+On MS-Windows the Perl library can be loaded dynamically. The |:version|
+output then includes |+perl/dyn|.
+
+This means that Vim will search for the Perl DLL file only when needed. When
+you don't use the Perl interface you don't need it, thus you can use Vim
+without this DLL file.
+
+To use the Perl interface the Perl DLL must be in your search path. In a
+console window type "path" to see what directories are used.
+
+The name of the DLL must match the Perl version Vim was compiled with.
+Currently the name is "perl58.dll". That is for Perl 5.8. To know for
+sure edit "gvim.exe" and search for "perl\d*.dll\c".
+
+==============================================================================
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 1a2a33d..3ceeff8 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt* For Vim version 7.0aa. Last change: 2005 Mar 29
+*if_pyth.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Paul Moore
@@ -11,6 +11,7 @@
3. Buffer objects |python-buffer|
4. Range objects |python-range|
5. Window objects |python-window|
+6. Dynamic loading |python-dynamic|
{Vi does not have any of these commands}
@@ -300,4 +301,21 @@
The width attribute is writable only if the screen is split vertically.
==============================================================================
+6. Dynamic loading *python-dynamic*
+
+On MS-Windows the Python library can be loaded dynamically. The |:version|
+output then includes |+python/dyn|.
+
+This means that Vim will search for the Python DLL file only when needed.
+When you don't use the Python interface you don't need it, thus you can use
+Vim without this DLL file.
+
+To use the Python interface the Python DLL must be in your search path. In a
+console window type "path" to see what directories are used.
+
+The name of the DLL must match the Python version Vim was compiled with.
+Currently the name is "python24.dll". That is for Python 2.4. To know for
+sure edit "gvim.exe" and search for "python\d*.dll\c".
+
+==============================================================================
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index 1efb6ce..a70d32a 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,4 +1,4 @@
-*if_ruby.txt* For Vim version 7.0aa. Last change: 2005 Aug 31
+*if_ruby.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Shugo Maeda
@@ -11,6 +11,7 @@
3. VIM::Buffer objects |ruby-buffer|
4. VIM::Window objects |ruby-window|
5. Global variables |ruby-globals|
+6. Dynamic loading |ruby-dynamic|
{Vi does not have any of these commands}
*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
@@ -166,7 +167,7 @@
Sets the cursor position to {row} and {col}.
==============================================================================
-4. Global variables *ruby-globals*
+5. Global variables *ruby-globals*
There are two global variables.
@@ -174,4 +175,21 @@
$curbuf The current buffer object.
==============================================================================
+6. Dynamic loading *ruby-dynamic*
+
+On MS-Windows the Ruby library can be loaded dynamically. The |:version|
+output then includes |+ruby/dyn|.
+
+This means that Vim will search for the Ruby DLL file only when needed. When
+you don't use the Ruby interface you don't need it, thus you can use Vim
+without this DLL file.
+
+To use the Ruby interface the Ruby DLL must be in your search path. In a
+console window type "path" to see what directories are used.
+
+The name of the DLL must match the Ruby version Vim was compiled with.
+Currently the name is "ruby18.dll". That is for Ruby 1.8. To know for sure
+edit "gvim.exe" and search for "ruby\d*.dll\c".
+
+==============================================================================
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt
index 1195ed5..79c43f5 100644
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -1,4 +1,4 @@
-*if_tcl.txt* For Vim version 7.0aa. Last change: 2005 Mar 29
+*if_tcl.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Ingo Wilken
@@ -14,6 +14,7 @@
6. Miscellaneous; Output from Tcl |tcl-misc| |tcl-output|
7. Known bugs & problems |tcl-bugs|
8. Examples |tcl-examples|
+9. Dynamic loading |tcl-dynamic|
{Vi does not have any of these commands} *E280* *E281*
@@ -509,4 +510,21 @@
endif
==============================================================================
+9. Dynamic loading *tcl-dynamic*
+
+On MS-Windows the Tcl library can be loaded dynamically. The |:version|
+output then includes |+tcl/dyn|.
+
+This means that Vim will search for the Tcl DLL file only when needed. When
+you don't use the Tcl interface you don't need it, thus you can use Vim
+without this DLL file.
+
+To use the Tcl interface the Tcl DLL must be in your search path. In a
+console window type "path" to see what directories are used.
+
+The name of the DLL must match the Tcl version Vim was compiled with.
+Currently the name is "tcl83.dll". That is for Tcl 8.3. To know for sure
+edit "gvim.exe" and search for "tcl\d*.dll\c".
+
+==============================================================================
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 4b6d0eb..9d8e4e6 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.0aa. Last change: 2005 Oct 02
+*insert.txt* For Vim version 7.0aa. Last change: 2005 Nov 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -975,6 +975,7 @@
Filetype-specific remarks for omni completion *compl-omni-filetypes*
+
C *ft-c-omni*
Completion of C code requires a tags file. You should use Exuberant ctags,
@@ -1007,7 +1008,14 @@
are included.
+CSS *ft-css-omni*
+
+Complete properties and their appropriate values according to CSS 2.1
+specification.
+
+
(X)HTML *ft-html-omni*
+ *ft-xhtml-omni*
CTRL-X CTRL-O provides completion of various elements of (X)HTML files.
It is designed to support writing of XHTML 1.0 Strict files but will
@@ -1019,23 +1027,124 @@
a tag)
- when attribute has limited number of possible values help to complete
them
+- complete names of entities
- complete values of "class" and "id" attributes with data obtained from
style tag and included CSS files
- when completing "style" attribute or working inside of "style" tag
switch to |ft-css-omni| completion
- when used after "</" CTRL-X CTRL-O will close the last opened tag
-File htmlcomplete.vim provides through |autoload| mechanism
+Note: When used first time completion menu will be shown with little delay
+- this is time needed for loading of data file.
+
+
+XML *ft-xml-omni*
+
+Vim 7 provides mechanism to context aware completion of XML files. It depends
+on special |xml-data-file| and two commands: |:XMLns| and |:XMLent|. Features
+are:
+
+- after "<" complete tag name depending on context (no div suggest
+ inside of an a tag)
+- inside of tag complete proper attributes (no width attribute for an
+ a tag)
+- when attribute has limited number of possible values help to complete
+ them
+- complete names of entities (defined in |xml-data-file| and in current file
+ with "<!ENTITY" declarations
+- when used after "</" CTRL-X CTRL-O will close the last opened tag
+
+Format of XML data file *xml-omni-datafile*
+
+Vim distribution provides two data files as examples (xhtml10s.vim, xsl.vim)
+
+XML data files are stored in "autoload/xml" directory in 'runtimepath'. They
+have meaningful name which will be used in commands. It should be unique name
+which will not create conflicts in future. For example name xhtml10s.vim means
+it is data file for XHTML 1.0 Strict.
+
+File contains one variable with fixed name: g:xmldata_xhtml10s . It is
+compound from two parts:
+
+1. "g:xmldata_" general prefix
+2. "xhtml10s" name of file and name of described XML dialect
+
+Part two must be exactly the same as name of file.
+
+Variable is data structure in form of |Dictionary|. Keys are tag names and
+values are two element |List|. First element of List is also List with
+names of possible children, second element is |Dictionary| with names of
+attributes as keys and possible values of attributes as values. Example: >
+
+ let g:xmldata_crippledhtml = {
+ \ "html":
+ \ [ ["body", "head"], {"id": [], "xmlns": ["http://www.w3.org/1999/xhtml"],
+ \ "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}],
+ \ "script":
+ \ [ [], {"id": [], "charset": [], "type": ["text/javascript"], "src": [],
+ \ "defer": ["BOOL"], "xml:space": ["preserve"]}],
+ \ "meta":
+ \ [ [], {"id": [], "http-equiv": [], "name": [], "content": [], "scheme":
+ \ [], "lang": [], "xml:lang": [], "dir": ["ltr", "rtl"]}]
+ \ "vimxmlentities": ["amp", "lt", "gt", "apos", "quot"]}
+
+This example should be put in "autoload/xml/crippledhtml.vim" file.
+
+In example are visible two special elements:
+
+1. "vimxmlentities" - special key with List containing entities of this XML
+ dialect.
+2. "BOOL" - value of attribute key showing if attribute should be inserted
+ bare ("defer" vs. 'defer="'). It can be the only element of List of
+ attribute values.
+
+Note: Tag names in data file MUST not contain namespace description. Check
+xsl.vim for example.
+
+Commands
+
+:XMLns {name} [{namespace}] *:XMLns*
+
+Vim has to know which data file should be used and with which namespace. For
+loading of data file and connecting data with prope namespace use |:XMLns|
+command. First (obligatory) argument is name of data (xhtml10s, xsl). Second
+argument is code of namespace (h, xsl). When used without second argument
+dialect will be used as default - without namespace declaration. For example
+to use XML completion in .xsl files: >
+
+ :XMLns xhtml10s
+ :XMLns xsl xsl
+
+
+:XMLent {name} *:XMLent*
+
+By default entities will be completed from data file of default
+namespace. XMLent command should be used in case when there is no
+default namespace: >
+
+ :XMLent xhtml10s
+
+Usage
+
+While used in situation (after declarations from previous part, | is
+cursor position): >
+
+ <|
+
+Will complete to appropriate XHTML tag, and in this situation: >
+
+ <xsl:|
+
+Will complete to appropriate XSL tag.
+
+File xmlcomplete.vim provides through |autoload| mechanism
GetLastOpenTag function which can be used in XML files to get name of
last open tag with (b:unaryTagsStack has to be defined): >
- :echo htmlcomplete#GetLastOpenTag("b:unaryTagsStack")
+ :echo xmlcomplete#GetLastOpenTag("b:unaryTagsStack")
-CSS *ft-css-omni*
-Complete properties and their appropriate values according to CSS 2.1
-specification.
==============================================================================
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 618c767..a5f6d0c 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.0aa. Last change: 2005 Sep 22
+*map.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -966,8 +966,10 @@
-complete=custom,{func} custom completion, defined via {func}
-complete=customlist,{func} custom completion, defined via {func}
-Custom completion *:command-completion-custom*
- *E467* *E468*
+
+Custom completion *:command-completion-custom*
+ *:command-completion-customlist*
+ *E467* *E468*
It is possible to define customized completion schemes via the "custom,{func}"
or the "customlist,{func}" completion argument. The {func} part should be a
function with the following prototype >
@@ -981,13 +983,13 @@
candidates one per line in a newline separated string.
For the "customlist" argument, the function should return the completion
-candidates as a Vim List. Non-string items in the list are ignored.
+candidates as a Vim List. Non-string items in the list are ignored.
The function arguments are:
ArgLead the leading portion of the argument currently being
completed on
CmdLine the entire command line
- CursorPos the cursor position in it
+ CursorPos the cursor position in it (byte index)
The function may use these for determining context. For the "custom"
argument, it is not necessary to filter candidates against the (implicit
pattern in) ArgLead. Vim will do filter the candidates with its regexp engine
@@ -1009,6 +1011,7 @@
: return split(globpath(&path, a:ArgLead), "\n")
:endfun
<
+
Range handling *E177* *E178*
By default, user-defined commands do not accept a line number range. However,
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 7f6a972..ead91ab 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt* For Vim version 7.0aa. Last change: 2005 Jul 09
+*mbyte.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -484,6 +484,12 @@
request a very large buffer, more than Vim is willing to provide).
Try getting another iconv() implementation.
+ *iconv-dynamic*
+On MS-Windows Vim can be compiled with the |+iconv/dyn| feature. This means
+Vim will search for the "iconv.dll" and "libiconv.dll" libraries. When
+neither of them can be found Vim will still work but some conversions won't be
+possible.
+
==============================================================================
4. Using a terminal *mbyte-terminal*
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index fcbd445..0631d45 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.0aa. Last change: 2005 Oct 05
+*options.txt* For Vim version 7.0aa. Last change: 2005 Nov 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -76,10 +76,8 @@
comma separated list, a comma is added, unless the
value was empty.
If the option is a list of flags, superfluous flags
- are removed. Otherwise there is no check for doubled
- values. You can avoid this by removing a value first.
- Example: >
- :set guioptions-=T guioptions+=T
+ are removed. When adding a flag that was already
+ present the option value doesn't change.
< Also see |:set-args| above.
{not in Vi}
@@ -988,6 +986,9 @@
Watch out for special characters, see |option-backslash|.
When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the
default value. "/tmp/*" is only used for Unix.
+ Note that the default also makes sure that "crontab -e" works (when a
+ backup would be made by renaming the original file crontab won't see
+ the newly created file). Also see 'backupcopy' and |crontab|.
*'balloondelay'* *'bdlay'*
'balloondelay' 'bdlay' number (default: 600)
@@ -2927,10 +2928,11 @@
The name of an external program that will be used to format the lines
selected with the "gq" command. The program must take the input on
stdin and produce the output on stdout. The Unix program "fmt" is
- such a program. If this option is an empty string, the internal
- format function will be used |C-indenting|. Environment variables are
- expanded |:set_env|. See |option-backslash| about including spaces
- and backslashes.
+ such a program.
+ If this option is an empty string, the internal format function will
+ be used |C-indenting|.
+ Environment variables are expanded |:set_env|. See |option-backslash|
+ about including spaces and backslashes.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 5bce52c..850dccb 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,8 +1,8 @@
-*pi_netrw.txt* For Vim version 7.0. Last change: Oct 03, 2005
+*pi_netrw.txt* For Vim version 7.0. Last change: Aug 31, 2005
+
VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
-
*dav* *http* *network* *rcp* *scp*
*fetch* *netrw* *Nread* *rsync* *sftp*
*ftp* *netrw.vim* *Nwrite* *netrw-file*
@@ -25,7 +25,7 @@
4. Transparent File Transfer............................|netrw-transparent|
5. Ex Commands..........................................|netrw-ex|
6. Variables and Options................................|netrw-var|
-7. Directory Browsing...................................|netrw-browse| {{{1
+7. Directory Browser....................................|netrw-browse| {{{1
Maps...............................................|netrw-maps|
Exploring..........................................|netrw-explore-cmds|
Quick Reference Commands Table.....................|netrw-browse-cmds|
@@ -194,8 +194,8 @@
2. Network-Oriented File Transfer *netrw-xfer*
Network-oriented file transfer under Vim is implemented by a VimL-based script
-(<netrw.vim>) using plugin techniques. It currently supports both reading and
-writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
+(<netrw.vim>) using plugin techniques. It currently supports both reading
+and writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
dav/cadaver, rsync, or sftp.
http is currently supported read-only via use of wget or fetch.
@@ -206,23 +206,24 @@
ex. vim ftp://hostname/path/to/file
<
-The characters preceding the colon specify the protocol to use; in the
-example, its ftp. The <netrw.vim> script then formulates a command or a
-series of commands (typically ftp) which it issues to an external program
-(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
-from/written to a temporary file (under Unix/Linux, /tmp/...) which the
-<netrw.vim> script will clean up.
+The characters preceding the colon specify the protocol to use;
+in the example, its ftp. The <netrw.vim> script then formulates
+a command or a series of commands (typically ftp) which it issues
+to an external program (ftp, scp, etc) which does the actual file
+transfer/protocol. Files are read from/written to a temporary file
+(under Unix/Linux, /tmp/...) which the <netrw.vim> script will
+clean up.
-One may modify any protocol's implementing external application by setting a
-variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
-"scp -q").
+One may modify any protocol's implementing external application
+by setting a variable (ex. scp uses the variable g:netrw_scp_cmd,
+which is defaulted to "scp -q").
Ftp, an old protocol, seems to be blessed by numerous implementations.
-Unfortunately, some implementations are noisy (ie., add junk to the end of the
-file). Thus, concerned users may decide to write a NetReadFixup() function
-that will clean up after reading with their ftp. Some Unix systems (ie.,
-FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
-not noisy and more convenient, actually, for <netrw.vim> to use.
+Unfortunately, some implementations are noisy (ie., add junk to the end
+of the file). Thus, concerned users may decide to write a NetReadFixup()
+function that will clean up after reading with their ftp. Some Unix systems
+(ie., FreeBSD) provide a utility called "fetch" which uses the ftp protocol
+but is not noisy and more convenient, actually, for <netrw.vim> to use.
Consequently, if "fetch" is executable, it will be used to do reads for
ftp://... (and http://...) . See |netrw-var| for more about this.
@@ -331,9 +332,8 @@
a built-in Vim function. See |netrw-uidpass| for how to change the password
after one has set it.
-Unfortunately there doesn't appear to be a way for netrw to feed a password to
-scp. Thus every transfer via scp will require re-entry of the password.
-However, |netrw-listhack| can help with this problem.
+Unfortunately there doesn't appear to be a way for netrw to feed a password
+to scp. Thus every transfer via scp will require re-entry of the password.
==============================================================================
@@ -341,28 +341,21 @@
Network-oriented file transfers are available by default whenever
|'nocompatible'| mode is enabled. The <netrw.vim> file resides in your
-system's vim-plugin directory and is sourced automatically whenever you bring
-up vim. I suggest that, at a minimum, you have at least the following in your
-<.vimrc> customization file: >
- set nocp
- if version >= 600
- filetype plugin indent on
- endif
-<
+system's vim-plugin directory and is sourced automatically whenever you
+bring up vim.
+
==============================================================================
4. Transparent File Transfer *netrw-transparent*
Transparent file transfers occur whenever a regular file read or write
(invoked via an |:autocmd| for |BufReadCmd| or |BufWriteCmd| events) is made.
-Thus one may use files across networks just as simply as if they were local. >
+Thus one may use files across networks as if they were local. >
vim ftp://[user@]machine/path
...
:wq
-See |netrw-activate| for more on how to encourage your vim to use plugins
-such as netrw.
==============================================================================
5. Ex Commands *netrw-ex*
@@ -376,7 +369,8 @@
:[range]Nw {netfile} [{netfile}]...
Write the specified lines to the {netfile}.
-:Nread Read the specified lines into the current
+:Nread
+ Read the specified lines into the current
buffer from the file specified in
b:netrw_lastfile.
@@ -407,11 +401,10 @@
The script <netrw.vim> uses several variables which can affect <netrw.vim>'s
behavior. These variables typically may be set in the user's <.vimrc> file:
-(also see |netrw-settings|) >
-
- -------------
- Netrw Options
- -------------
+>
+ -------------
+ Netrw Options
+ -------------
Option Meaning
-------------- -----------------------------------------------
<
@@ -488,12 +481,12 @@
-------------------------------------------------------------------------
<
*netrw-ftp*
-The first two options both help with certain ftp's that give trouble
-otherwise. In order to best understand how to use these options if ftp is
-giving you troubles, a bit of discussion follows on how netrw does ftp reads.
+The first two options both help with certain ftp's that give trouble otherwise.
+In order to best understand how to use these options if ftp is giving you
+troubles, a bit of discussion follows on how netrw does ftp reads.
-The g:netrw_..._cmd variables specify the external program to use handle the
-associated protocol (rcp, ftp, etc), plus any options.
+The g:netrw_..._cmd variables specify the external program to use handle
+the associated protocol (rcp, ftp, etc), plus any options.
The g:netrw_list_cmd's HOSTNAME entry will be changed via substitution with
whatever the current request is for a hostname.
@@ -526,8 +519,8 @@
The temporary file is then read into the main editing session window that
requested it and the temporary file deleted.
-If your ftp doesn't accept the "user" command and immediately just demands a
-userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
+If your ftp doesn't accept the "user" command and immediately just demands
+a userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
*netrw-cadaver*
To handle the SSL certificate dialog for untrusted servers, one may pull
@@ -554,12 +547,12 @@
endif
endfunction
>
-The NetReadFixup() function will be called if it exists and thus allows you to
-customize your reading process. As a further example, <netrw.vim> contains
-just such a function to handle Windows 95 ftp. For whatever reason, Windows
-95's ftp dumps four blank lines at the end of a transfer, and so it is
-desirable to automate their removal. Here's some code taken from <netrw.vim>
-itself:
+The NetReadFixup() function will be called if it exists and thus allows
+you to customize your reading process. As a further example, <netrw.vim>
+contains just such a function to handle Windows 95 ftp. For whatever
+reason, Windows 95's ftp dumps four blank lines at the end of a transfer,
+and so it is desirable to automate their removal. Here's some code taken
+from <netrw.vim> itself:
>
if has("win95") && g:netrw_win95ftp
fun! NetReadFixup(method, line1, line2)
@@ -572,7 +565,7 @@
>
==============================================================================
-7. Directory Browsing *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
+7. Directory Browser *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
MAPS *netrw-maps*
?................Help.......................................|netrw-help|
@@ -663,13 +656,12 @@
: connect to address [0-9a-fA-F:]*
: No route to host$'
- *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
- listing. Defaults:
- unix or g:netrw_cygwin set: : "ls -lF"
- otherwise "dir"
-
- *g:netrw_hide* if true, the hiding list is used
- default: =0
+ *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
+ messages, banners, and whatnot that one doesn't
+ want masquerading as "directories" and "files".
+ Use this pattern to remove such embedded
+ messages. By default its value is:
+ '^total\s\+\d\+$'
*g:netrw_keepdir* =1 (default) keep current directory immune from
the browsing directory.
@@ -684,11 +676,16 @@
*g:netrw_longlist* if =1, then long listing will be default
+ *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
+ listing. Defaults:
+ unix or g:netrw_cygwin set: : "ls -lF"
+ otherwise "dir"
+
*g:netrw_list_hide* comma separated pattern list for hiding files
default: ""
*g:netrw_local_mkdir* command for making a local directory
- default: "mkdir"
+ default: "ssh HOSTNAME mkdir"
*g:netrw_local_rmdir* remove directory command (rmdir)
default: "rmdir"
@@ -712,6 +709,9 @@
*g:netrw_rmf_cmd* command for removing softlinks
default: "ssh HOSTNAME rm -f"
+ *g:netrw_hide* if true, the hiding list is used
+ default: =0
+
*g:netrw_sort_by* sort by "name", "time", or "size"
default: "name"
@@ -723,18 +723,6 @@
default: '[\/]$,*,\.bak$,\.o$,\.h$,
\.info$,\.swp$,\.obj$'
- *g:netrw_ssh_cmd* One may specify an executable command
- to use instead of ssh for remote actions
- such as listing, file removal, etc.
- default: ssh
-
- *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
- messages, banners, and whatnot that one doesn't
- want masquerading as "directories" and "files".
- Use this pattern to remove such embedded
- messages. By default its value is:
- '^total\s\+\d\+$'
-
*g:netrw_timefmt* specify format string to strftime() (%c)
default: "%c"
@@ -744,7 +732,7 @@
INTRODUCTION TO DIRECTORY BROWSING *netrw-browse-intro*
Netrw supports the browsing of directories on the local system and on remote
-hosts, including listing files and directories, entering directories, editing
+hosts, including generating listing directories, entering directories, editing
files therein, deleting files/directories, making new directories, and moving
(renaming) files and directories. The Netrw browser generally implements the
previous explorer maps and commands for remote directories, although details
@@ -755,15 +743,13 @@
in its remote browsing. Any other protocol will be used for file transfers,
but otherwise the ssh protocol will be used to do remote directory browsing.
-To use Netrw's remote directory browser, simply attempt to read a "file" with a
+To enter the netrw directory browser, simply attempt to read a "file" with a
trailing slash and it will be interpreted as a request to list a directory:
vim [protocol]://[user@]hostname/path/
-For local directories, the trailing slash is not required.
-
-If you'd like to avoid entering the password in for remote directory listings
-with ssh or scp, see |netrw-listhack|.
+If you'd like to avoid entering the password in for directory listings, scp,
+ssh interaction, etc, see |netrw-listhack|.
*netrw-explore* *netrw-pexplore*
*netrw-hexplore* *netrw-sexplore*
@@ -797,8 +783,7 @@
may explicitly provide a directory (path) to use.
(Following needs v7.0 or later) *netrw-starstar*
-When Explore, Sexplore, Hexplore, or Vexplore are used with a **,
-such as:
+When Explore, Sexplore, Hexplore, or Vexplore are used like
>
:Explore **/filename_pattern
<
@@ -812,8 +797,7 @@
matching file. One may then proceed to the next (or previous) matching files'
directories by using Nexplore or Pexplore, respectively. If your console or
gui produces recognizable shift-up or shift-down sequences, then you'll likely
-find using shift-downarrow and shift-uparrow convenient. They're mapped by
-netrw:
+find the following mappings convenient:
<s-down> == Nexplore, and
<s-up> == Pexplore.
@@ -838,12 +822,11 @@
GOING UP *netrw--*
-To go up a directory, press "-" or press the <cr> when atop the ../ directory
+To go up a directory, press - or his the <cr> when atop the ../ directory
entry in the listing.
-Netrw will use the command in |g:netrw_list_cmd| to perform the directory
-listing operation after changing HOSTNAME to the host specified by the
-user-provided url. By default netrw provides the command as:
+Netrw will modify the command in |g:netrw_list_cmd| to perform the directory
+listing operation. By default the command is:
ssh HOSTNAME ls -FLa
@@ -858,13 +841,7 @@
Browsing is simple: move the cursor onto a file or directory of interest.
Hitting the <cr> (the return key) will select the file or directory.
Directories will themselves be listed, and files will be opened using the
-protocol given in the original read request.
-
- CAVEAT: There are three forms of listing (see |netrw-i|). Netrw assumes
- that two or more spaces delimit filenames and directory names for the long
- and wide listing formats. Thus, if your filename or directory name has two
- or more spaces embedded in it, or any trailing spaces, then you'll need to
- use the "thin" format to select it.
+protocol given in the original read request.
OBTAINING A FILE *netrw-O*
@@ -872,21 +849,7 @@
When browsing a remote directory, one may obtain a file under the cursor (ie.
get a copy on your local machine, but not edit it) by pressing the O key.
Only ftp and scp are supported for this operation (but since these two are
-available for browsing, that shouldn't be a problem). The status bar
-will then show, on its right hand side, a message like "Obtaining filename".
-The statusline will be restored after the transfer is complete.
-
-Netrw can also "obtain" a file using the local browser. Netrw's display
-of a directory is not necessarily the same as Vim's "current directory",
-unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
-a file using the local browser (by putting the cursor on it) and pressing
-"O" will then "obtain" the file; ie. copy it to Vim's current directory.
-
-Related topics:
- * To see what the current directory is, use |:pwd|
- * To make the currently browsed directory the current directory, see |netrw-c|
- * To automatically make the currently browsed directory the current
- directory, see |g:netrw_keepdir|.
+available for browsing, that shouldn't be a problem).
THIN, LONG, AND WIDE LISTINGS *netrw-i*
@@ -896,27 +859,21 @@
The short listing format gives just the files' and directories' names.
The long listing is either based on the "ls" command via ssh for remote
-directories or displays the filename, file size (in bytes), and the time and
-date of last modification for local directories. With the long listing
-format, netrw is not able to recognize filenames which have trailing spaces.
-Use the thin listing format for such files.
+directories or displays the filename, file size (in bytes), and the
+time and date of last modification for local directories.
-The wide listing format has a multi-column display of the various files in the
-netrw current directory, rather like the Unix "ls" presents. In this mode the
-"b" and "B" maps are not available; instead, use Nb (|netrw-Nb|) and NB
-(|netrw-NB|). The wide listing format uses two or more contiguous spaces to
-delineate filenames; when using that format, netrw won't be able to recognize
-or use filenames which have two or more contiguous spaces embedded in the name
-or any trailing spaces. The thin listing format will, however, work with such
-files.
+The wide listing format has a multi-column display of the various
+files in the netrw current directory, rather like the Unix "ls" presents.
+In this mode the "b" and "B" maps are not available; instead, use
+Nb (|netrw-Nb|) and NB (|netrw-NB|).
MAKING A NEW DIRECTORY *netrw-d*
-With the "d" map one may make a new directory either remotely (which depends
-on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
-global variable g:netrw_local_mkdir). Netrw will issue a request for the new
-directory's name. A bare <CR> at that point will abort the making of the
+With the "d" map one may make a new directory either remotely (which
+depends on the global variable g:netrw_mkdir_cmd) or locally (which depends on
+the global variable g:netrw_local_mkdir). Netrw will issue a request for the
+new directory's name. A bare <CR> at that point will abort the making of the
directory. Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.
@@ -924,12 +881,12 @@
DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D*
Deleting/removing files and directories involves moving the cursor to the
-file/directory to be deleted and pressing "D". Directories must be empty
-first before they can be successfully removed. If the directory is a softlink
-to a directory, then netrw will make two requests to remove the directory
-before succeeding. Netrw will ask for confirmation before doing the
-removal(s). You may select a range of lines with the "V" command (visual
-selection), and then pressing "D".
+file/directory to be deleted and pressing "D". Directories must be empty first
+before they can be successfully removed. If the directory is a softlink to a
+directory, then netrw will make two requests to remove the directory before
+succeeding. Netrw will ask for confirmation before doing the removal(s).
+You may select a range of lines with the "V" command (visual selection),
+and then pressing "D".
The g:netrw_rm_cmd, g:netrw_rmf_cmd, and g:netrw_rmdir_cmd variables are used
to control the attempts to remove files and directories. The g:netrw_rm_cmd
@@ -966,17 +923,17 @@
HIDING FILES OR DIRECTORIES *netrw-a*
-Netrw's browsing facility allows one to use the hiding list in one of three
-ways: ignore it, hide files which match, and show only those files which
-match. The "a" map allows the user to cycle about these three ways.
+Netrw's browsing facility allows one to use the hiding list in one of
+three ways: ignore it, hide files which match, and show only those files
+which match. The "a" map allows the user to cycle about these three ways.
-The g:netrw_list_hide variable holds a comma delimited list of patterns (ex.
-\.obj) which specify the hiding list. (also see |netrw-h|) To set the hiding
-list, use the <c-h> map. As an example, to hide files which begin with a ".",
-one may use the <c-h> map to set the hiding list to '^\..*' (or one may put
-let g:netrw_list_hide= '^\..*' in one's <.vimrc>). One may then use the "a"
-key to show all files, hide matching files, or to show only the matching
-files.
+The g:netrw_list_hide variable holds a comma delimited list of patterns
+(ex. \.obj) which specify the hiding list. (also see |netrw-h|) To
+set the hiding list, use the <c-h> map. As an example, to hide files
+which begin with a ".", one may use the <c-h> map to set the hiding
+list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*' in
+one's <.vimrc>). One may then use the "a" key to show all files,
+hide matching files, or to show only the matching files.
EDIT FILE OR DIRECTORY HIDING LIST *netrw-h* *netrw-edithide*
@@ -984,8 +941,7 @@
The "<ctrl-h>" map brings up a requestor allowing the user to change the
file/directory hiding list. The hiding list consists of one or more patterns
delimited by commas. Files and/or directories satisfying these patterns will
-either be hidden (ie. not shown) or be the only ones displayed (see
-|netrw-a|).
+either be hidden (ie. not shown) or be the only ones displayed (see |netrw-a|).
BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz*
@@ -994,9 +950,9 @@
allows one to open a new window to hold the new directory listing or file. A
horizontal split is used. (for vertical splitting, see |netrw-v|)
-Normally, the o key splits the window horizontally with the new window and
-cursor at the top. To change to splitting the window horizontally with the
-new window and cursor at the bottom, have
+Normally, the o key splits the window horizontally with the new window
+and cursor at the top. To change to splitting the window horizontally
+with the new window and cursor at the bottom, have
let g:netrw_alto = 1
@@ -1005,30 +961,30 @@
PREVIEW WINDOW *netrw-p* *netrw-preview*
-One may use a preview window (currently only for local browsing) by using the
-"p" key when the cursor is atop the desired filename to be previewed.
+One may use a preview window (currently only for local browsing) by using
+the "p" key when the cursor is atop the desired filename to be previewed.
SELECTING SORTING STYLE *netrw-s* *netrw-sort*
-One may select the sorting style by name, time, or (file) size. The "s" map
-allows one to circulate amongst the three choices; the directory listing will
-automatically be refreshed to reflect the selected style.
+One may select the sorting style by name, time, or (file) size. The
+"s" map allows one to circulate amongst the three choices; the directory
+listing will automatically be refreshed to reflect the selected style.
EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence*
-When "Sorted by" is name, one may specify priority via the sorting sequence
-(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
-name-listing by suffix, although any pattern will do. Patterns are delimited
-by commas. The default sorting sequence is:
+When "Sorted by" is name, one may specify priority via the sorting
+sequence (g:netrw_sort_sequence). The sorting sequence typically
+prioritizes the name-listing by suffix, although any pattern will do.
+Patterns are delimited by commas. The default sorting sequence is:
>
[\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$
<
-The lone * is where all filenames not covered by one of the other patterns
-will end up. One may change the sorting sequence by modifying the
-g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
-using the "S" map.
+The lone * is where all filenames not covered by one of the other
+patterns will end up. One may change the sorting sequence by modifying
+the g:netrw_sort_sequence variable (either manually or in your <.vimrc>)
+or by using the "S" map.
REVERSING SORTING ORDER *netrw-r* *netrw-reverse*
@@ -1055,13 +1011,13 @@
BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v*
-Normally one enters a file or directory using the <cr>. However, the "v" map
-allows one to open a new window to hold the new directory listing or file. A
-vertical split is used. (for horizontal splitting, see |netrw-o|)
+Normally one enters a file or directory using the <cr>. However, the "v"
+map allows one to open a new window to hold the new directory listing or
+file. A vertical split is used. (for horizontal splitting, see |netrw-o|)
-Normally, the v key splits the window vertically with the new window and
-cursor at the left. To change to splitting the window vertically with the new
-window and cursor at the right, have
+Normally, the v key splits the window vertically with the new window
+and cursor at the left. To change to splitting the window vertically
+with the new window and cursor at the right, have
let g:netrw_altv = 1
@@ -1077,24 +1033,24 @@
* for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
* for KDE (with kfmclient): kfmclient is used.
* for Gnome (with gnome-open): gnome-open is used.
- * otherwise the netrwFileHandler plugin is used.
+ * otherwise the NetrwFileHandler plugin is used.
The file's suffix is used by these various approaches to determine an
-appropriate application to use to "handle" these files. Such things as
-OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
-*.eps) can be handled.
+appropriate application to use to "handle" these files. Such things
+as OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript
+(*.ps, *.eps) can be handled.
-The netrwFileHandler applies a user-defined function to a file, based on its
+The NetrwFileHandler applies a user-defined function to a file, based on its
extension. Of course, the handler function must exist for it to be called!
>
Ex. mypgm.html x ->
- netrwFileHandler_html("scp://user@host/some/path/mypgm.html")
+ NetrwFileHandler_html("scp://user@host/some/path/mypgm.html")
<
-See the <plugin/netrwFileHandlers.vim> for an example of how to handle an html
+See the <plugin/NetrwFileHandlers.vim> for an example of how to handle an html
file with mozilla.
-One may write custom netrwFileHandlers; please look at the
-plugin/netrwFileHandlers.vim script for examples. If its likely to be
+One may write custom NetrwFileHandlers; please look at the
+plugin/NetrwFileHandlers.vim script for examples. If its likely to be
generally useful, please feel free to forward a copy to me for future
inclusion in the distribution.
@@ -1107,8 +1063,8 @@
currently browsed directory be the current directory.
With the default setting for g:netrw_keepdir, in order to make the two
-directories the same, use the "c" map (just type c). That map will set the
-current directory to the current browsing directory.
+directories the same, use the "c" map (just type c). That map will set
+the current directory to the current browsing directory.
BOOKMARKING A DIRECTORY *netrw-b* *netrw-bookmark* *netrw-bookmarks*
@@ -1131,8 +1087,8 @@
{cnt}B
-Any count may be used to reference any of the bookmarks. See |netrw-b| on
-how to bookmark a directory and |netrw-q| on how to list bookmarks.
+Any count may be used to reference any of the bookmarks. See |netrw-b|
+for how to bookmark a directory and |netrw-q| for how to list them.
When wide listing is in use (see |netrw-i|), then the B map is not available;
instead, use {cnt}NB.
@@ -1162,9 +1118,9 @@
With the NetrwSettings.vim plugin, >
:NetrwSettings
will bring up a window with the many variables that netrw uses for its
-settings. You may change any of their values; when you save the file, the
-settings therein will be used. One may also press "?" on any of the lines for
-help on what each of the variables do.
+settings. You may change any of their values; when you save the file,
+the settings therein will be used. One may also press "?" on any of
+the lines for help on what each of the variables do.
==============================================================================
@@ -1284,33 +1240,6 @@
==============================================================================
10. History *netrw-history*
- v73: * bugfix -- scp://host/path/file was getting named incorrectly
- * netrw detects use of earlier-than-7.0 version of vim and issues
- a pertinent error message.
- * netrwSettings.vim is now uses autoloading. Only
- <netrwPlugin.vim> is needed as a pure plugin
- (ie. always loaded).
- v72: * bugfix -- formerly, one could prevent the loading of netrw
- by "let g:loaded_netrw=1"; when autoloading became supported,
- this feature was lost. It is now restored.
- v71: * bugfix -- made some "set nomodifiable"s into setlocal variants
- (allows :e somenewfile to be modifiable as usual)
- * NetrwSettings calls a netrw function, thereby assuring that
- netrw has loaded. However, if netrw does not load for whatever
- reason, then NetrwSettings will now issue a warning message.
- * For what reason I don't recall, when wget and fetch are both
- not present, and an attempt to read a http://... url is made,
- netrw exited. It now only returns.
- * When ch=1, on the second and subsequent uses of browsing Netrw
- would issue a blank line to clear the echo'd messages. This
- caused an annoying "Hit-Enter" prompt; now a blank line message
- is echo'd only if &ch>1.
- v70: * when using |netrw-O|, the "Obtaining filename" message is now
- shown using |hl-User9|. If User9 has not been defined, netrw
- will define it.
- v69: * Bugfix: win95/98 machines were experiencing a
- "E121: Undefined variable: g:netrw_win95ftp" message
- v68: * double-click-leftmouse selects word under mouse
v67: * Passwords which contain blanks will now be surrounded by
double-quotes automatically (Yongwei)
v66: * Netrw now seems to work with a few more Windows situations
@@ -1426,7 +1355,7 @@
* special file viewing with:
(windows) rundll32 url.dll (gnome) gnome-open (kde)
kfmclient If none of these are on the executable path, then
- netrwFileHandlers.vim is used.
+ NetrwFileHandlers.vim is used.
* directory bookmarking during both local and remote browsing
implemented
* one may view all, use the hiding list to suppress, or use the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 35f00c3..2fb97ba 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1062,6 +1062,7 @@
+gettext various.txt /*+gettext*
+hangul_input various.txt /*+hangul_input*
+iconv various.txt /*+iconv*
++iconv/dyn various.txt /*+iconv\/dyn*
+insert_expand various.txt /*+insert_expand*
+jumplist various.txt /*+jumplist*
+keymap various.txt /*+keymap*
@@ -1090,13 +1091,16 @@
+osfiletype various.txt /*+osfiletype*
+path_extra various.txt /*+path_extra*
+perl various.txt /*+perl*
++perl/dyn various.txt /*+perl\/dyn*
+postscript various.txt /*+postscript*
+printer various.txt /*+printer*
+profile various.txt /*+profile*
+python various.txt /*+python*
++python/dyn various.txt /*+python\/dyn*
+quickfix various.txt /*+quickfix*
+rightleft various.txt /*+rightleft*
+ruby various.txt /*+ruby*
++ruby/dyn various.txt /*+ruby\/dyn*
+scrollbind various.txt /*+scrollbind*
+signs various.txt /*+signs*
+smartindent various.txt /*+smartindent*
@@ -1109,6 +1113,7 @@
+tag_binary various.txt /*+tag_binary*
+tag_old_static various.txt /*+tag_old_static*
+tcl various.txt /*+tcl*
++tcl/dyn various.txt /*+tcl\/dyn*
+terminfo various.txt /*+terminfo*
+termresponse various.txt /*+termresponse*
+textobjects various.txt /*+textobjects*
@@ -1663,6 +1668,8 @@
:TOhtml syntax.txt /*:TOhtml*
:Vexplore pi_netrw.txt /*:Vexplore*
:X editing.txt /*:X*
+:XMLent insert.txt /*:XMLent*
+:XMLns insert.txt /*:XMLns*
:\bar cmdline.txt /*:\\bar*
:_! cmdline.txt /*:_!*
:_# cmdline.txt /*:_#*
@@ -1839,6 +1846,7 @@
:command map.txt /*:command*
:command-completion map.txt /*:command-completion*
:command-completion-custom map.txt /*:command-completion-custom*
+:command-completion-customlist map.txt /*:command-completion-customlist*
:command-verbose map.txt /*:command-verbose*
:comment eval.txt /*:comment*
:comp quickfix.txt /*:comp*
@@ -5007,6 +5015,7 @@
ft-ksh-syntax syntax.txt /*ft-ksh-syntax*
ft-lace-syntax syntax.txt /*ft-lace-syntax*
ft-lex-syntax syntax.txt /*ft-lex-syntax*
+ft-lisp-syntax syntax.txt /*ft-lisp-syntax*
ft-lite-syntax syntax.txt /*ft-lite-syntax*
ft-lpc-syntax syntax.txt /*ft-lpc-syntax*
ft-lua-syntax syntax.txt /*ft-lua-syntax*
@@ -5059,6 +5068,8 @@
ft-vim-indent indent.txt /*ft-vim-indent*
ft-vim-syntax syntax.txt /*ft-vim-syntax*
ft-xf86conf-syntax syntax.txt /*ft-xf86conf-syntax*
+ft-xhtml-omni insert.txt /*ft-xhtml-omni*
+ft-xml-omni insert.txt /*ft-xml-omni*
ft-xml-syntax syntax.txt /*ft-xml-syntax*
ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
ftdetect filetype.txt /*ftdetect*
@@ -5302,6 +5313,7 @@
hebrew.txt hebrew.txt /*hebrew.txt*
help various.txt /*help*
help-context help.txt /*help-context*
+help-tags tags 1
help-translated various.txt /*help-translated*
help-xterm-window various.txt /*help-xterm-window*
help.txt help.txt /*help.txt*
@@ -5513,6 +5525,7 @@
iconise starting.txt /*iconise*
iconize starting.txt /*iconize*
iconv() eval.txt /*iconv()*
+iconv-dynamic mbyte.txt /*iconv-dynamic*
ident-search tips.txt /*ident-search*
if_cscop.txt if_cscop.txt /*if_cscop.txt*
if_mzsch.txt if_mzsch.txt /*if_mzsch.txt*
@@ -5658,6 +5671,7 @@
linewise motion.txt /*linewise*
linewise-register change.txt /*linewise-register*
linewise-visual visual.txt /*linewise-visual*
+lisp.vim syntax.txt /*lisp.vim*
lispindent() eval.txt /*lispindent()*
list-identity eval.txt /*list-identity*
list-index eval.txt /*list-index*
@@ -6111,6 +6125,7 @@
perl-SetOption if_perl.txt /*perl-SetOption*
perl-Windows if_perl.txt /*perl-Windows*
perl-compiling if_perl.txt /*perl-compiling*
+perl-dynamic if_perl.txt /*perl-dynamic*
perl-editing if_perl.txt /*perl-editing*
perl-overview if_perl.txt /*perl-overview*
perl-patterns pattern.txt /*perl-patterns*
@@ -6174,6 +6189,7 @@
python-command if_pyth.txt /*python-command*
python-commands if_pyth.txt /*python-commands*
python-current if_pyth.txt /*python-current*
+python-dynamic if_pyth.txt /*python-dynamic*
python-error if_pyth.txt /*python-error*
python-eval if_pyth.txt /*python-eval*
python-examples if_pyth.txt /*python-examples*
@@ -6310,6 +6326,7 @@
ruby-buffer if_ruby.txt /*ruby-buffer*
ruby-command if_ruby.txt /*ruby-command*
ruby-commands if_ruby.txt /*ruby-commands*
+ruby-dynamic if_ruby.txt /*ruby-dynamic*
ruby-evaluate if_ruby.txt /*ruby-evaluate*
ruby-globals if_ruby.txt /*ruby-globals*
ruby-message if_ruby.txt /*ruby-message*
@@ -6774,6 +6791,7 @@
tcl-bugs if_tcl.txt /*tcl-bugs*
tcl-command if_tcl.txt /*tcl-command*
tcl-commands if_tcl.txt /*tcl-commands*
+tcl-dynamic if_tcl.txt /*tcl-dynamic*
tcl-ex-commands if_tcl.txt /*tcl-ex-commands*
tcl-examples if_tcl.txt /*tcl-examples*
tcl-expr if_tcl.txt /*tcl-expr*
@@ -7266,6 +7284,7 @@
xim-input-style mbyte.txt /*xim-input-style*
xiterm syntax.txt /*xiterm*
xml-folding syntax.txt /*xml-folding*
+xml-omni-datafile insert.txt /*xml-omni-datafile*
xml.vim syntax.txt /*xml.vim*
xpm.vim syntax.txt /*xpm.vim*
xterm-8-bit term.txt /*xterm-8-bit*
@@ -7337,13 +7356,6 @@
zg spell.txt /*zg*
zh scroll.txt /*zh*
zi fold.txt /*zi*
-zip zip.txt /*zip*
-zip-contents zip.txt /*zip-contents*
-zip-copyright zip.txt /*zip-copyright*
-zip-history zip.txt /*zip-history*
-zip-manual zip.txt /*zip-manual*
-zip-usage zip.txt /*zip-usage*
-zip.txt zip.txt /*zip.txt*
zj fold.txt /*zj*
zk fold.txt /*zk*
zl scroll.txt /*zl*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index fbecaa2..522eb2a 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt* For Vim version 7.0aa. Last change: 2005 Jul 12
+*tagsrch.txt* For Vim version 7.0aa. Last change: 2005 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -440,7 +440,7 @@
will be searched for the tag.
This can be switched off by including the 'd' flag in 'cpoptions', to make
-it Vi compatible. "./tags" will than be the tags file in the current
+it Vi compatible. "./tags" will then be the tags file in the current
directory, instead of the tags file in the directory where the current file
is.
diff --git a/runtime/doc/tar.txt b/runtime/doc/tar.txt
new file mode 100644
index 0000000..f43140d
--- /dev/null
+++ b/runtime/doc/tar.txt
@@ -0,0 +1,37 @@
+*tar.txt* Tar File Interface Nov 03, 2005
+
+Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
+ (remove NOSPAM from Campbell's email first)
+Copyright: The GPL (gnu public license) applies to *tar-copyright*
+ tarPlugin.vim, and tar.txt.
+ No warranty, express or implied. Use At-Your-Own-Risk.
+
+==============================================================================
+1. Contents *tar* *tar-contents*
+ 1. Contents..................................................|tar-contents|
+ 2. Usage.....................................................|tar-usage|
+ 3. History...................................................|tar-history|
+
+==============================================================================
+2. Usage *tar-usage* *tar-manual*
+
+ When one edits a *.tar file, this plugin will handle displaying a
+ contents page. Select a file to edit by moving the cursor atop
+ the desired file, then hit the <return> key. After editing, one may
+ also write to the file. Currently, one may not make a new file in
+ tar archives via the plugin.
+
+==============================================================================
+3. History *tar-history*
+ v3 Sep 16, 2005 * handles writing files in an archive back to the
+ archive
+ Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
+ Oct 18, 2005 * handles writing to compressed archives
+ Nov 03, 2005 * handles writing tarfiles across a network using
+ netrw#NetWrite()
+ v2 * converted to use Vim7's new autoload feature by
+ Bram Moolenaar
+ v1 (original release) * Michael Toren (see http://michael.toren.net/code/)
+
+==============================================================================
+vim:tw=78:ts=8:ft=help
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index e856a56..14097a9 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.0aa. Last change: 2005 Oct 12
+*todo.txt* For Vim version 7.0aa. Last change: 2005 Nov 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,18 +30,66 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
+Using chown() is unsafe. (Jinpeng Wei)
+ ex_cmds.c: viminfo tempfile: use mch_open(O_EXCL) and fdopen()
+ fileio.c: use fchown() instead of chown()
+ vim.h: define O_NOFOLLOW if needed. Not in Vim 6.4?
+
+Go over all changes between 6.3 and 6.4 and make sure they are included in 7.
+
+'statusline' is drawn over the Omni menu.
+
+Cygwin and Mac OS/X may preserve case for file names but ignore case
+differences. Use Amiga code?
+
+"make unixall": remove split in floppy-size archives.
+
+To support mapping <F4> to be used as <F4>{motion}: Add operator that
+executes a user defined function. '[ and '] marks are at start and end of
+text. ":map <F4> :set opfunc=MyOp<CR>gy".
+
+Patch from Yasuhiro Matsumoto: ":e ++enc=xxx" keeps encoding for conversion
+errors and illegal bytes. How about replacing bytes with '?' or not?
+
ccomplete:
- When an option is set: In completion mode and the user types (identifier)
characters, advance to the first match instead of removing the popup menu.
If there is no match remove the selection. (Yegappan Lakshmanan)
+- Complete the longest common match instead of the first match?
+- !_TAG_FILE_FORMAT and it's ilk are listed in the global completions
- When completing something that is a structure, add the "." or "->".
- When a typedef or struct is local to a file only use it in that file?
+- Window resize when poup is displayed
+- page-up / page-down
spelling:
- When a recognized word ends in a . don't have 'spellcapcheck" match it.
-- Use KEEPCASE instead of "KEP". applies to affixes too.
+- Use KEEPCASE instead of "KEP". It applies to the word including affixes
+ Hunspell also uses it.
+- Hunspell has NOSUGGEST flag (use for obscene words?)
+- Check out Hunspell 1.1.2.
- Look into hungarian dictionary:
http://magyarispell.sourceforge.net/rc3-beta2.zip
+- Support breakpoint character · 0xb7 and ignore it?
+- Dutch word list should be available here: http://www.woordenlijst.org/
+8 Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
+ obtain). But new Myspell wordlist will come (Hagen)
+- Finding suggestions with sound folding is slow. Somehow store the
+ sound-folded words and link to the words it comes from?
+
+When editing a file "a" that is a symbolic link to "b", while another Vim is
+editing "b", there is no warning. Follow symlink to make swap file name?
+Patch from Stefano Zacchiroli.
+
+In diff mode deleting lines is very slow. E.g., when diffing two .po files
+and then sourcing po/cleaup.vim.
+
+7 Add plugins for formatting. Should be able to make a choice depending on
+ the language of a file (English/Korean/Japanese/etc.).
+ Setting the 'langformat' option to "chinese" would load the
+ "format/chinese.vim" plugin.
+Edward L. Fox explains how it should be done for most Asian languages. (2005
+Nov 24)
Mac unicode patch (Da Woon Jung):
- selecting proportional font breaks display
@@ -52,10 +100,15 @@
- With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
(Alan Schmitt)
+Patch to add a few flags to search(). (Benji Fisher, Nov 22)
+
Win32: Use the free downloadable compiler 7.1. Figure out how to do debugging
(with Agide?) and describe it. (George Reilly)
Try out using the free MS compiler and debugger, using Make_mvc.mak.
+Win32: Check that installer puts menu items in "all users" dir when possible,
+not administrator dir.
+
Autoload:
- Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of
script names and a help file and produces a script that can be sourced to
@@ -67,7 +120,8 @@
helpfile doc/myscript.txt
For the "helpfile" item ":helptags" is run.
-Add ":smap", Select mode mapping?
+Add ":smap", Select mode mapping? Otherwise: ":sunmap", so that Visual mode
+mappings for normal keys can be removed from Select mode.
Awaiting response:
- Win32: tearoff menu window should have a scrollbar when it's taller than
@@ -88,6 +142,10 @@
make it work for all completion methods.
UI:
+ - Complete longest common string first, like 'wildmode' "longest:full".
+ - Add an "auto" mode: after typing a character (or string) completion is
+ done for the longest common string. plugin defines the possible
+ characters/strings. (Martin Stubenschrott)
- GUI implementation of the popup menu.
- When using tags, show match in preview window (function prototype,
struct member, etc.).
@@ -191,9 +249,9 @@
For GTK Neil Bird has a patch to use Vim like a widget.
- Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
can be selected with CTRL-V. Allow '$' (end of line) for col2.
-- Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye,
- assisted by Mikolaj Machowski. Should work like an IDE. Try to keep it
- generic. Also found here: http://skawina.eu.org/mikolaj/vimgdb
+- Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye.
+ Should work like an IDE. Try to keep it generic. Now found here:
+ http://clewn.sf.net.
And the idevim plugin/script.
To be able to start the debugger from inside Vim: For GUI run a program
with a netbeans connection; for console: start a program that splits the
@@ -207,6 +265,7 @@
implement part in Java and then connect to Vim. Some hints from Alexandru
Roman, 2004 Dec 15. Should then also work with Oracle Jdeveloper, see JSR
198 standard http://www.jcp.org/en/jsr/detail?id=198.
+ Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine)
- STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
Especially when using the scrollbar. Typing a cursor-movement command
scrolls back to where the cursor is.
@@ -353,7 +412,9 @@
How does this work? Missing comments.
gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
Update 2004 Sep 10
- More docs. Search in 'runtimepath'?
+ Another patch from Edward L. Fox (2005 Nov 24)
+ Search in 'runtimepath'?
+ More docs about how to use this.
How to get the messages into the .po files?
--- did not respond (yet) --
- Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
@@ -395,7 +456,7 @@
7 When 'rightleft' is set, the search pattern should be displayed right
to left as well? See patch of Dec 26. (Nadim Shaikli)
8 Lock all used memory so that it doesn't get swapped to disk (uncrypted).
- Patch by Jason Holt, 2003 May 23.
+ Patch by Jason Holt, 2003 May 23. Uses mlock.
7 Support a stronger encryption. Jason Holt implemented AES (May 6 2003).
7 Add ! register, for shell commands. (patch from Grenie)
8 In the gzip plugin, also recognize *.gz.orig, *.gz.bak, etc. Like it's
@@ -791,7 +852,16 @@
8 OS/2: Add Extended Attributes support and define HAVE_ACL.
8 OS/2: When editing a file name "foo.txt" that is actually called FOO.txt,
writing uses "foo.txt". Should obtain the real file name.
-8 Should $USERPROFILE be preferred above $HOMEDRIVE/$HOMEPATH?
+8 Should $USERPROFILE be preferred above $HOMEDRIVE/$HOMEPATH? No, but it's
+ a good fallback, thus use:
+ $HOME
+ $HOMEDRIVE$HOMEPATH
+ SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_APPDATA, FALSE);
+ $USERPROFILE
+ SHGetSpecialFolderPath(NULL, lpzsPath, CSIDL_COMMON_APPDATA, FALSE);
+ $ALLUSERSPROFILE
+ $SYSTEMDRIVE\
+ C:\
8 Win32 console: <M-Up> and <M-Down> don't work. (Geddes) We don't have
special keys for these. Should use modifier + key.
8 Win32 console: caps-lock makes non-alpha keys work like with shift.
@@ -1382,22 +1452,19 @@
8 Make "en-rare" spell file? Ask Charles Campbell.
8 The English dictionaries for different regions are not consistent in their
use of words with a dash.
-8 Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
- obtain). But new Myspell wordlist will come (Hagen)
7 Insert mode completion mechanism that uses the spell word lists.
8 Add hl groups to 'spelllang'?
:set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath
More complicated: Regions with different languages? E.g., comments
in English, strings in German (po file).
-8 Implement compound words when it works for Myspell. Current idea has the
- problem that "foo/X" always allows "foofoo", there is no way to specify a
- word can only be at the start or end, or that only certain words combine.
Diff mode:
8 Use diff mode to show the changes made in a buffer (compared to the file).
Use an unnamed buffer, like doing:
new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
+ Also show difference with the file when editing started? Should show what
+ can be undone. (Tom Popovich)
7 Add cursor-binding: when moving the cursor in one diff'ed buffer, also
move it in other diff'ed buffers, so that CTRL-W commands go to the same
location.
@@ -1575,6 +1642,11 @@
re-insert the [] if possible.
8 Make it possible to use color of text for Visual highlight group (like for
the Cursor).
+8 It would be useful to make the highlight group name an expression. Then
+ when there is a match, the expression would be evaluated to find out what
+ highlight group to use. Could be used to check if the shell used in a
+ password file appears in /etc/shells. (Nikolai Weibull)
+ syn match =s:checkShell(v:match) contained 'pattern'
8 Make it possible to only highlight a sub-expression of a match. Like
using "\1" in a ":s" command.
8 Support for deleting syntax items:
@@ -3020,8 +3092,6 @@
7 There is 'titleold', why is there no 'iconold'? (Chazelas)
7 Make 'scrolloff' a global-local option, so that it can be different in the
quickfix window, for example. (Gary Holloway)
-7 Add plugins for formatting. Should be able to make a choice depending on
- the language of a file (English/Korean/Japanese/etc.).
External commands:
@@ -3349,7 +3419,8 @@
7 Add a way to define an item list with a pattern in 'formatoptions'. The
'n' flag doesn't work for "6.3" or "6a.".
8 Add 'formatexpr' option: Used for formatting operator "gq" instead of the
- builtin formatting or 'formatprg'.
+ builtin formatting or 'formatprg'. Or use a string that starts with "="
+ in 'formatprg': "=MyFormat()".
8 Allow using a trailing space to signal a paragraph that continues on the
next line (MIME text/plain; format=flowed, RFC 2646). Can be used for
continuous formatting. Could use 'autoformat' option, which specifies a
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index 751c0b4..d126f8b 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt* For Vim version 7.0aa. Last change: 2005 Aug 12
+*uganda.txt* For Vim version 7.0aa. Last change: 2005 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -211,9 +211,26 @@
Check the ICCF web site for the latest information! See |iccf| for the URL.
-USA and Canada: Contact Kibaale Children's Fund (KCF) in Surrey, Canada. They
+USA: The methods mentioned below can be used. Alternatively, you
+ can send a check to the Nehemiah Group Outreach Society
+ (NGOS). This will reduce banking costs and you can get an IRS
+ tax receipt. The NGOS forwards the funds directly to the
+ Kibaale project in Uganda. Checks must be made payable to
+ NGOS but please note on the check "donation Kibaale". Mail
+ checks to:
+ NGOS
+ P.O. Box 50862
+ Indianapolis, IN 45250
+ Questions regarding the Nehemiah Group Outreach Society (NGOS)
+ should be directed to: Ross deMerchant, Executive Director -
+ r.demerchant AT sbcglobal DOT net.
+ For sponsoring a child contact KCF in Canada (see below) and
+ send the check to NGOS in Indianapolis.
+
+Canada: Contact Kibaale Children's Fund (KCF) in Surrey, Canada. They
take care of the Canadian sponsors for the children in
- Kibaale. You can send them a one time donation directly.
+ Kibaale. KCF forwards 100% of the money to the project in
+ Uganda. You can send them a one time donation directly.
Please send me a note so that I know what has been donated
because of Vim. Ask KCF for information about sponsorship.
Kibaale Children's Fund c/o Pacific Academy
@@ -223,12 +240,10 @@
Phone: 604-581-5353
If you make a donation to Kibaale Children's Fund (KCF) you
will receive a tax receipt which can be submitted with your
- tax return (under the Free Trade Agreement tax receipts issued
- by an organization registered in Canada are fully accepted by
- the IRS in the USA, with a few conditions).
+ tax return.
Holland: Transfer to the account of "Stichting ICCF Holland" in Venlo.
- This will allow for tax deduction (if you live in Holland)!
+ This will allow for tax deduction if you live in Holland.
Postbank, nr. 4548774
Germany: It is possible to make donations that allow for a tax return.
@@ -252,7 +267,7 @@
https://www.paypal.com/affil/pal=Bram%40iccf-holland.org
The e-mail address for sending the money to is:
Bram@iccf-holland.org
- For amounts above 400 Euro ($500) sending a cheque is
+ For amounts above 400 Euro ($500) sending a check is
preferred.
Others: Transfer to one of these accounts if possible:
@@ -264,11 +279,11 @@
Rabobank Venlo, account 3765.05.117
Swift code: RABO NL 2U
under the name "Bram Moolenaar", Venlo
- Otherwise, send a cheque in euro or US dollars to the address
+ Otherwise, send a check in euro or US dollars to the address
below. Minimal amount: $70 (my bank does not accept smaller
- amounts for foreign cheques, sorry)
+ amounts for foreign check, sorry)
-Address to send cheques to:
+Address to send checks to:
stichting ICCF Holland
Bram Moolenaar
Clematisstraat 30
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 3f075d8..b4172cc 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 7.0aa. Last change: 2005 Aug 27
+*various.txt* For Vim version 7.0aa. Last change: 2005 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -295,7 +295,8 @@
*+GUI_Motif* Unix only: Motif |GUI|
*+GUI_Photon* QNX only: Photon |GUI|
m *+hangul_input* Hangul input support |hangul|
- *+iconv* Compiled with the |iconv()| function, may have |/dyn|
+ *+iconv* Compiled with the |iconv()| function
+ *+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion
N *+jumplist* |jumplist|
B *+keymap* |'keymap'|
@@ -325,14 +326,17 @@
*+osfiletype* Support for the 'osfiletype' option and filetype
checking in automatic commands. |autocmd-osfiletypes|
N *+path_extra* Up/downwards search in 'path' and 'tags'
-m *+perl* Perl interface |perl|, may have |/dyn|
+m *+perl* Perl interface |perl|
+m *+perl/dyn* Perl interface |perl-dynamic| |/dyn|
*+postscript* |:hardcopy| writes a PostScript file
N *+printer* |:hardcopy| command
H *+profile* |:profile| command
-m *+python* Python interface |python|, may have |/dyn|
+m *+python* Python interface |python|
+m *+python/dyn* Python interface |python-dynamic| |/dyn|
N *+quickfix* |:make| and |quickfix| commands
B *+rightleft* Right to left typing |'rightleft'|
-m *+ruby* Ruby interface |ruby|, may have |/dyn|
+m *+ruby* Ruby interface |ruby|
+m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
N *+scrollbind* |'scrollbind'|
B *+signs* |:sign|
N *+smartindent* |'smartindent'|
@@ -345,7 +349,8 @@
N *+tag_binary* binary searching in tags file |tag-binary-search|
N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
-m *+tcl* Tcl interface |tcl|, may have |/dyn|
+m *+tcl* Tcl interface |tcl|
+m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
*+terminfo* uses |terminfo| instead of termcap
N *+termresponse* support for |t_RV| and |v:termresponse|
N *+textobjects* |text-objects| selection
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index 3f17ebb..7490a45 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -1,4 +1,4 @@
-*version6.txt* For Vim version 7.0aa. Last change: 2005 Oct 09
+*version6.txt* For Vim version 7.0aa. Last change: 2005 Oct 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -13863,16 +13863,36 @@
Changed *changed-6.4*
-------
-Nothing relevant.
+Removed runtime/tools/tcltags, Exuberant ctags does it better.
Added *added-6.4*
-----
-Netrc syntax file. (Nikolai Weibull)
-Sudoers syntax file. (Nikolai Weibull)
-SMTPrc syntax file. (Kornel Kielczewski)
-Esterel syntax file. (Maurizio Tranchero)
+Alsaconf syntax file (Nikolai Weibull)
+Eruby syntax, indent, compiler and ftplugin file (Doug Kearns)
+Esterel syntax file (Maurizio Tranchero)
+Mathematica indent file (Steve Layland)
+Netrc syntax file (Nikolai Weibull)
+PHP compiler file (Doug Kearns)
+Pascal indent file (Neil Carter)
+Prescribe syntax file (Klaus Muth)
+Rubyunit compiler file (Doug Kearns)
+SMTPrc syntax file (Kornel Kielczewski)
+Sudoers syntax file (Nikolai Weibull)
+TPP syntax file (Gerfried Fuchs)
+VHDL ftplugin file (R. Shankar)
+Verilog-AMS syntax file (S. Myles Prather)
+
+Bulgarian keymap (Alberto Mardegan)
+Canadian keymap (Eric Joanis)
+
+Hungarian menu translations in UTF-8 (Kantra Gergely)
+Ukrainian menu translations (Bohdan Vlasyuk)
+
+Irish message translations (Kevin Patrick Scannell)
+
+Configure also checks for tclsh8.4.
Fixed *fixed-6.4*
@@ -13888,6 +13908,10 @@
Gcc would warn "dereferencing type-punned pointer will break strict -aliasing
rules". Avoid using typecasts for variable pointers.
+Gcc 3.x interprets the -MM argument differently. Change "-I /path" to
+"-isystem /path" for "make depend".
+
+
Patch 6.3.001
Problem: ":browse split" gives the file selection dialog twice. (Gordon
Bazeley) Same problem for ":browse diffpatch".
@@ -14056,7 +14080,7 @@
Patch 6.3.026
Problem: When ~/.vim/after/syntax/syncolor.vim contains a command that
- reloads the colors an enless loop and/or a crash may occur.
+ reloads the colors an endless loop and/or a crash may occur.
Solution: Only free the old value of an option when it was originally
allocated. Limit recursiveness of init_highlight() to 5 levels.
Files: src/option.c, src/syntax.c
@@ -14471,5 +14495,36 @@
Solution: Limit the values to 10000 and 1000.
Files: src/option.c
+Patch 6.4a.001
+Problem: The Unix Makefile contained too many dependencies and a few
+ uncommented lines.
+Solution: Run "make depend" with manual changes to avoid a gcc
+ incompatibility. Comment a few lines.
+Files: src/Makefile
+
+Patch 6.4b.001
+Problem: Vim reports "Vim 6.4a" in the ":version" output.
+Solution: Change "a" to "b". (Tony Mechelynck)
+Files: src/version.h
+
+Patch 6.4b.002
+Problem: In Insert mode, pasting a multi-byte character after the end of
+ the line leaves the cursor just before that character.
+Solution: Make sure "gP" leaves the cursor in the right place when
+ 'virtualedit' is set.
+Files: src/ops.c
+
+Patch 6.4b.003 (after 6.4b.002)
+Problem: The problem still exists when 'encoding' is set to "cp936".
+Solution: Fix the problem in getvvcol(), compute the coladd field correctly.
+Files: src/charset.c, src/ops.c
+
+Patch 6.4b.004
+Problem: Selecting a {} block with "viB" includes the '}' when there is an
+ empty line before it.
+Solution: Don't advance the cursor to include a line break when it's already
+ at the line break.
+Files: src/search.c
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index a7f1201..65ecbc8 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt* For Vim version 7.0aa. Last change: 2005 Oct 11
+*version7.txt* For Vim version 7.0aa. Last change: 2005 Nov 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -429,7 +429,7 @@
Lakshmanan).
-New functions: ~
+New and extended functions: ~
|add()| append an item to a List
|append()| append List of lines to the buffer
@@ -570,7 +570,7 @@
Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
"yyp".
-Mac: GUI font selector. (Peter "Rain Dog" Cucka)
+Mac: GUI font selector. (Peter Cucka)
Mac: support for multi-byte characters. (Da Woon Jung)
@@ -619,6 +619,9 @@
Move the help for printing to a separate help file. It's quite a lot now.
+When ":silent" is used and a backwards range is given for an Ex command the
+range is swapped automatically instead of asking if that is OK.
+
The pattern matching code was changed from a recursive function to an
iterative mechanism. This avoids out-of-stack errors. State is stored in
allocated memory, running out of memory can always be detected. Allows
@@ -636,7 +639,7 @@
Added "nbsp" in 'listchars'. (David Blanchet)
Added the "acwrite" value for the 'buftype' option. This is for a buffer that
-doesn not have a name that refers to a file and is written with BufWriteCmd
+does not have a name that refers to a file and is written with BufWriteCmd
autocommands.
For lisp indenting and matching parenthesis: (Sergey Khorev)
@@ -816,7 +819,7 @@
sorted: user commands, variables, syntax names, etc.
When no locale is set, thus using the "C" locale, Vim will work with latin1
-characters, using it's own isupper()/toupper()/etc. functions.
+characters, using its own isupper()/toupper()/etc. functions.
When using an rxvt terminal emulator guess the value of 'background' using the
COLORFGBG environment variable. (Ciaran McCreesh)
@@ -1395,4 +1398,13 @@
Columns. Fixed bad effects when running out of memory (command line would be
reversed, ":qa!" resulted in ":!aq").
+Motif: "gvim -iconic" opened the window anyway. (David Harrison)
+
+There is a tiny chance that a symlink gets created between checking for an
+existing file and creating a file. Use the O_NOFOLLOW for open() if it's
+available.
+
+In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
+sticking to the first column.
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/zip.txt b/runtime/doc/zip.txt
index aa95460..3ca3683 100644
--- a/runtime/doc/zip.txt
+++ b/runtime/doc/zip.txt
@@ -1,4 +1,4 @@
-*zip.txt* Zip File Interface Sep 16, 2005
+*zip.txt* Zip File Interface Nov 03, 2005
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
@@ -20,12 +20,21 @@
==============================================================================
2. Usage *zip-usage* *zip-manual*
+ When one edits a *.zip file, this plugin will handle displaying a
+ contents page. Select a file to edit by moving the cursor atop
+ the desired file, then hit the <return> key. After editing, one may
+ also write to the file. Currently, one may not make a new file in
+ zip archives via the plugin.
+
==============================================================================
3. History *zip-history*
+ v3 Oct 18, 2005 * <amatch> used instead of <afile> in autocmds
v2 Sep 16, 2005 * silenced some commands (avoiding hit-enter prompt)
* began testing under Windows; works thus far
* filetype detection fixed
- v1 Sep 15, 2005 * Initial release, had browsin, reading, and writing
+ Nov 03, 2005 * handles writing zipfiles across a network using
+ netrw#NetWrite()
+ v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
==============================================================================
vim:tw=78:ts=8:ft=help
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index edbe718..e2b1d10 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 Oct 12
+" Last Change: 2005 Nov 23
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -1349,6 +1349,9 @@
" Ruby
au BufNewFile,BufRead *.rb,*.rbw,*.gem,*.gemspec setf ruby
+" Rantfile is like Ruby
+au BufNewFile,BufRead [rR]antfile,*.rant setf ruby
+
" S-lang (or shader language!)
au BufNewFile,BufRead *.sl setf slang
@@ -1612,9 +1615,19 @@
" Sudoers
au BufNewFile,BufRead /etc/sudoers,sudoers.tmp setf sudoers
-" Tads (or Nroff)
+" If the first line starts with '#' and contains 'perl' it's probably a Perl
+" file.
+fun! s:FTperl()
+ if getline(1)[0] == '#' && getline(1) =~ 'perl'
+ setf perl
+ return 1
+ endif
+ return 0
+endfun
+
+" Tads (or Nroff or Perl test file)
au BufNewFile,BufRead *.t
- \ if !s:FTnroff() | setf tads | endif
+ \ if !s:FTnroff() && !s:FTperl() | setf tads | endif
" Tags
au BufNewFile,BufRead tags setf tags
@@ -1622,8 +1635,8 @@
" TAK
au BufNewFile,BufRead *.tak setf tak
-" Tcl
-au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk setf tcl
+" Tcl (JACL too)
+au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl
" TealInfo
au BufNewFile,BufRead *.tli setf tli
diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim
index ed010d0..d256831 100644
--- a/runtime/ftplugin/eruby.vim
+++ b/runtime/ftplugin/eruby.vim
@@ -2,14 +2,8 @@
" Language: eRuby
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
" Info: $Id$
-" URL: http://vim-ruby.sourceforge.net
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
" Only do this when not done yet for this buffer
diff --git a/runtime/ftplugin/ocaml.vim b/runtime/ftplugin/ocaml.vim
index c2bc20e..322be55 100644
--- a/runtime/ftplugin/ocaml.vim
+++ b/runtime/ftplugin/ocaml.vim
@@ -1,38 +1,36 @@
-" Vim settings file
-" Language: OCaml
-" Maintainers: Mike Leary <leary@nwlink.com>
-" Markus Mottl <markus@oefai.at>
-" Stefano Zacchiroli <zack@bononia.it>
-" URL: http://www.oefai.at/~markus/vim/ftplugin/ocaml.vim
-" Last Change: 2004 Apr 12 - better .ml/.mli-switching without Python (SZ)
-" 2003 Nov 21 - match_words-patterns and .ml/.mli-switching (MM)
-" 2003 Oct 16 - re-entered variable 'did_ocaml_dtypes' (MM)
-" 2003 Oct 15 - added Stefano Zacchirolis (SZ) Python-code for
-" displaying type annotations (MM)
+" Language: OCaml
+" Maintainer: David Baelde <firstname.name@ens-lyon.org>
+" Mike Leary <leary@nwlink.com>
+" Markus Mottl <markus.mottl@gmail.com>
+" Stefano Zacchiroli <zack@bononia.it>
+" URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim
+" Last Change: 2005 Oct 13 - removed GPL; better matchit support (MM, SZ)
+"
+" if exists("b:did_ftplugin")
+" finish
+" endif
+let b:did_ftplugin=1
-" Only do these settings when not done yet for this buffer
-if exists("b:did_ftplugin")
- finish
-endif
-
-" Don't do other file type settings for this buffer
-let b:did_ftplugin = 1
-
+" Error handling -- helps moving where the compiler wants you to go
+let s:cposet=&cpoptions
set cpo-=C
-
-" Error formats
setlocal efm=
- \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
- \%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
- \%+EReference\ to\ unbound\ regexp\ name\ %m,
- \%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
- \%Wocamlyacc:\ w\ -\ %m,
- \%-Zmake%.%#,
- \%C%m
+ \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
+ \%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
+ \%+EReference\ to\ unbound\ regexp\ name\ %m,
+ \%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
+ \%Wocamlyacc:\ w\ -\ %m,
+ \%-Zmake%.%#,
+ \%C%m,
+ \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
+ \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
+ \%D%*\\a:\ Entering\ directory\ `%f',
+ \%X%*\\a:\ Leaving\ directory\ `%f',
+ \%DMaking\ %*\\a\ in\ %f
" Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
- " Uncommenting
+ " (un)commenting
if !hasmapto('<Plug>Comment')
nmap <buffer> <LocalLeader>c <Plug>LUncomOn
vmap <buffer> <LocalLeader>c <Plug>BUncomOn
@@ -41,46 +39,141 @@
endif
nnoremap <buffer> <Plug>LUncomOn mz0i(* <ESC>$A *)<ESC>`z
- nnoremap <buffer> <Plug>LUncomOff <ESC>:s/^(\* \(.*\) \*)/\1/<CR>
+ nnoremap <buffer> <Plug>LUncomOff :s/^(\* \(.*\) \*)/\1/<CR>:noh<CR>
vnoremap <buffer> <Plug>BUncomOn <ESC>:'<,'><CR>`<O<ESC>0i(*<ESC>`>o<ESC>0i*)<ESC>`<
vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
if !hasmapto('<Plug>Abbrev')
- iabbrev <buffer> ASS (assert false)
+ iabbrev <buffer> ASS (assert false (* XXX *))
endif
endif
" Let % jump between structure elements (due to Issac Trotts)
-let b:mw='\<let\>:\<and\>:\(\<in\>\|;;\),'
-let b:mw=b:mw . '\<if\>:\<then\>:\<else\>,\<do\>:\<done\>,'
-let b:mw=b:mw . '\<\(object\|sig\|struct\|begin\)\>:\<end\>'
-let b:match_words=b:mw
+let b:mw = ''
+let b:mw = b:mw . ',\<let\>:\<and\>:\(\<in\>\|;;\)'
+let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
+let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>,'
+let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
+let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
+let b:match_words = b:mw
+
+let b:match_ignorecase=0
" switching between interfaces (.mli) and implementations (.ml)
if !exists("g:did_ocaml_switch")
let g:did_ocaml_switch = 1
- map ,s :call OCaml_switch(0)<CR>
- map ,S :call OCaml_switch(1)<CR>
+ map <LocalLeader>s :call OCaml_switch(0)<CR>
+ map <LocalLeader>S :call OCaml_switch(1)<CR>
fun OCaml_switch(newwin)
if (match(bufname(""), "\\.mli$") >= 0)
let fname = substitute(bufname(""), "\\.mli$", ".ml", "")
if (a:newwin == 1)
- exec "new " . fname
+ exec "new " . fname
else
- exec "arge " . fname
+ exec "arge " . fname
endif
elseif (match(bufname(""), "\\.ml$") >= 0)
let fname = bufname("") . "i"
if (a:newwin == 1)
- exec "new " . fname
+ exec "new " . fname
else
- exec "arge " . fname
+ exec "arge " . fname
endif
endif
endfun
endif
-" Vim support for OCaml 3.07 .annot files (requires Vim with python support)
+" Folding support
+
+" Get the modeline because folding depends on indentation
+let s:s = line2byte(line('.'))+col('.')-1
+if search('^\s*(\*:o\?caml:')
+ let s:modeline = getline(".")
+else
+ let s:modeline = ""
+endif
+if s:s > 0
+ exe 'goto' s:s
+endif
+
+" Get the indentation params
+let s:m = matchstr(s:modeline,'default\s*=\s*\d\+')
+if s:m != ""
+ let s:idef = matchstr(s:m,'\d\+')
+elseif exists("g:omlet_indent")
+ let s:idef = g:omlet_indent
+else
+ let s:idef = 2
+endif
+let s:m = matchstr(s:modeline,'struct\s*=\s*\d\+')
+if s:m != ""
+ let s:i = matchstr(s:m,'\d\+')
+elseif exists("g:omlet_indent_struct")
+ let s:i = g:omlet_indent_struct
+else
+ let s:i = s:idef
+endif
+
+" Set the folding method
+if exists("g:ocaml_folding")
+ setlocal foldmethod=expr
+ setlocal foldexpr=OMLetFoldLevel(v:lnum)
+endif
+
+" - Only definitions below, executed once -------------------------------------
+
+if exists("*OMLetFoldLevel")
+ finish
+endif
+
+function s:topindent(lnum)
+ let l = a:lnum
+ while l > 0
+ if getline(l) =~ '\s*\%(\<struct\>\|\<sig\>\|\<object\>\)'
+ return indent(l)
+ endif
+ let l = l-1
+ endwhile
+ return -s:i
+endfunction
+
+function OMLetFoldLevel(l)
+
+ " This is for not merging blank lines around folds to them
+ if getline(a:l) !~ '\S'
+ return -1
+ endif
+
+ " We start folds for modules, classes, and every toplevel definition
+ if getline(a:l) =~ '^\s*\%(\<val\>\|\<module\>\|\<class\>\|\<type\>\|\<method\>\|\<initializer\>\|\<inherit\>\|\<exception\>\|\<external\>\)'
+ exe 'return ">' (indent(a:l)/s:i)+1 '"'
+ endif
+
+ " Toplevel let are detected thanks to the indentation
+ if getline(a:l) =~ '^\s*let\>' && indent(a:l) == s:i+s:topindent(a:l)
+ exe 'return ">' (indent(a:l)/s:i)+1 '"'
+ endif
+
+ " We close fold on end which are associated to struct, sig or object.
+ " We use syntax information to do that.
+ if getline(a:l) =~ '^\s*end\>' && synIDattr(synID(a:l, indent(a:l)+1, 0), "name") != "ocamlKeyword"
+ return (indent(a:l)/s:i)+1
+ endif
+
+ " Folds end on ;;
+ if getline(a:l) =~ '^\s*;;'
+ exe 'return "<' (indent(a:l)/s:i)+1 '"'
+ endif
+
+ " Comments around folds aren't merged to them.
+ if synIDattr(synID(a:l, indent(a:l)+1, 0), "name") == "ocamlComment"
+ return -1
+ endif
+
+ return '='
+endfunction
+
+" Vim support for OCaml .annot files (requires Vim with python support)
"
" Executing OCamlPrintType(<mode>) function will display in the Vim bottom
" line(s) the type of an ocaml value getting it from the corresponding .annot
@@ -92,37 +185,15 @@
" .annot files are parsed lazily the first time OCamlPrintType is invoked; is
" also possible to force the parsing using the OCamlParseAnnot() function.
"
-" Hitting the <F3> key will cause OCamlPrintType function to be invoked with
+" Typing ',3' will cause OCamlPrintType function to be invoked with
" the right argument depending on the current mode (visual or not).
"
-" Copyright (C) <2003> Stefano Zacchiroli <zack@bononia.it>
+" Copyright (C) <2003-2004> Stefano Zacchiroli <zack@bononia.it>
"
" Created: Wed, 01 Oct 2003 18:16:22 +0200 zack
-" LastModified: Mon, 06 Oct 2003 11:05:39 +0200 zack
-"
-" This program is free software; you can redistribute it and/or modify
-" it under the terms of the GNU General Public License as published by
-" the Free Software Foundation; either version 2 of the License, or
-" (at your option) any later version.
-"
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
-"
-" You should have received a copy of the GNU General Public License
-" along with this program; if not, write to the Free Software
-" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-"
+" LastModified: Wed, 25 Aug 2004 18:28:39 +0200 zack
if !has("python")
- echo "Python support not found: OCaml .annot support disabled"
- finish
-endif
-
-if !exists("g:did_ocaml_dtypes")
- let g:did_ocaml_dtypes = 1
-else
finish
endif
@@ -166,7 +237,7 @@
at least two space characters.
- in each block, the two positions are respectively the start and the
- - end of the range described by the block.
+ end of the range described by the block.
- in a position, the filename is the name of the file, the first num
is the line number, the second num is the offset of the beginning
of the line, the third num is the offset of the position itself.
@@ -182,7 +253,7 @@
self.__timestamp = None # last parse action timestamp
self.__annot = {}
self.__re = re.compile(
- '^"[^"]+"\s+(\d+)\s+(\d+)\s+(\d+)\s+"[^"]+"\s+(\d+)\s+(\d+)\s+(\d+)$')
+ '^"[^"]*"\s+(\d+)\s+(\d+)\s+(\d+)\s+"[^"]*"\s+(\d+)\s+(\d+)\s+(\d+)$')
def __parse(self, fname):
try:
@@ -210,7 +281,9 @@
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
type = string.join(type, "\n")
- self.__annot[(line1, col1), (line2, col2)] = type
+ key = ((line1, col1), (line2, col2))
+ if not self.__annot.has_key(key):
+ self.__annot[key] = type
line = f.readline() # position line
f.close()
self.__filename = fname
@@ -285,7 +358,7 @@
EOF
-fun OCamlPrintType(current_mode)
+fun! OCamlPrintType(current_mode)
if (a:current_mode == "visual")
python printOCamlType("visual")
else
@@ -293,9 +366,15 @@
endif
endfun
-fun OCamlParseAnnot()
+fun! OCamlParseAnnot()
python parseOCamlAnnot()
endfun
-map <F3> :call OCamlPrintType("normal")<RETURN>
-vmap <F3> :call OCamlPrintType("visual")<RETURN>
+map <LocalLeader>t :call OCamlPrintType("normal")<RETURN>
+vmap <LocalLeader>t :call OCamlPrintType("visual")<RETURN>
+
+let &cpoptions=s:cposet
+unlet s:cposet
+
+" vim:sw=2
+
diff --git a/runtime/ftplugin/ruby.vim b/runtime/ftplugin/ruby.vim
index 6f06561..4c8db85 100644
--- a/runtime/ftplugin/ruby.vim
+++ b/runtime/ftplugin/ruby.vim
@@ -2,14 +2,8 @@
" Language: Ruby
" Maintainer: Gavin Sinclair <gsinclair at soyabean.com.au>
" Info: $Id$
-" URL: http://vim-ruby.sourceforge.net
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
"
" Original matchit support thanks to Ned Konz. See his ftplugin/ruby.vim at
diff --git a/runtime/ftplugin/xml.vim b/runtime/ftplugin/xml.vim
index 7bde8e7..8cff537 100644
--- a/runtime/ftplugin/xml.vim
+++ b/runtime/ftplugin/xml.vim
@@ -32,6 +32,15 @@
\ '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>'
endif
+"
+" For Omni completion, by Mikolaj Machowski.
+if exists('&ofu')
+ setlocal ofu=xmlcomplete#CompleteTags
+endif
+command! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>)
+command! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>)
+
+
" Change the :browse e filter to primarily show xml-related files.
if has("gui_win32")
let b:browsefilter="XML Files (*.xml)\t*.xml\n" .
diff --git a/runtime/indent/d.vim b/runtime/indent/d.vim
new file mode 100644
index 0000000..b5dd5e8
--- /dev/null
+++ b/runtime/indent/d.vim
@@ -0,0 +1,22 @@
+" Vim indent file for the D programming language (version 0.137).
+"
+" Language: D
+" Maintainer: Jason Mills<jmills@cs.mun.ca>
+" Last Change: 2005 Nov 22
+" Version: 0.1
+"
+" Please email me with bugs, comments, and suggestion. Put vim in the subject
+" to ensure the email will not be marked has spam.
+"
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+
+let b:did_indent = 1
+
+" D indenting is a lot like the built-in C indenting.
+setlocal cindent
+
+" vim: ts=8 noet
diff --git a/runtime/indent/eruby.vim b/runtime/indent/eruby.vim
index 81f7c1a..b62a024 100644
--- a/runtime/indent/eruby.vim
+++ b/runtime/indent/eruby.vim
@@ -2,14 +2,8 @@
" Language: Ruby
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
" Info: $Id$
-" URL: http://vim-ruby.rubyforge.org/
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
" Only load this indent file when no other was loaded.
diff --git a/runtime/indent/php.vim b/runtime/indent/php.vim
index 22210ce..8d05b03 100644
--- a/runtime/indent/php.vim
+++ b/runtime/indent/php.vim
@@ -2,17 +2,19 @@
" Language: PHP
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
" URL: http://www.2072productions.com/vim/indent/php.vim
-" Last Change: 2005 September 22th
-" Version: 1.181
+" Last Change: 2005 Nobember 21st
+" Version: 1.20
"
-" The change log and all the comments have been removed from this file.
+" The change log and all the comments have been removed from this file.
"
-" For a complete change log and fully commented code, download the script on
-" 2072productions.com at the URI provided above.
-"
-"
+" For a complete change log and fully commented code, download the script on
+" 2072productions.com at the URI provided above.
+"
" If you find a bug, please e-mail me at John.wellesz (AT) teaser (DOT) fr
-" with an example of code that breaks the algorithm.
+" with an example of code that break the algorithm.
+"
+"
+" Thanks a lot for using this script.
"
"
" NOTE: This script must be used with PHP syntax ON and with the php syntax
@@ -23,6 +25,7 @@
" tags not at col 1 you'll have to indent your file 2 times (This script
" will automatically put HereDoc end tags at col 1).
"
+"
" NOTE: If you are editing file in Unix file format and that (by accident)
" there are '\r' before new lines, this script won't be able to proceed
" correctly and will make many mistakes because it won't be able to match
@@ -34,31 +37,36 @@
" or simply 'let' the option PHP_removeCRwhenUnix to 1 and the script will
" silently remove them when VIM load this script (at each bufread).
+
+" Options: PHP_autoformatcomment = 0 to not enable autoformating of comment by
+" default, if set to 0, this script will let the 'formatoptions' setting intact.
+"
" Options: PHP_default_indenting = # of sw (default is 0), # of sw will be
-" added to the indent of each line of PHP code.
+" added to the indent of each line of PHP code.
"
" Options: PHP_removeCRwhenUnix = 1 to make the script automatically remove CR
-" at end of lines (by default this option is unset), NOTE that you
-" MUST remove CR when the fileformat is UNIX else the indentation
-" won't be correct...
+" at end of lines (by default this option is unset), NOTE that you
+" MUST remove CR when the fileformat is UNIX else the indentation
+" won't be correct...
"
" Options: PHP_BracesAtCodeLevel = 1 to indent the '{' and '}' at the same
-" level than the code they contain.
-" Exemple:
-" Instead of:
-" if ($foo)
-" {
-" foo();
-" }
-"
-" You will write:
-" if ($foo)
+" level than the code they contain.
+" Exemple:
+" Instead of:
+" if ($foo)
" {
-" foo();
+" foo();
" }
"
-" NOTE: The script will be a bit slower if you use this option because
-" some optimizations won't be available.
+" You will write:
+" if ($foo)
+" {
+" foo();
+" }
+"
+" NOTE: The script will be a bit slower if you use this option because
+" some optimizations won't be available.
+
if exists("b:did_indent")
@@ -82,6 +90,11 @@
let b:PHP_BracesAtCodeLevel = 0
endif
+if exists("PHP_autoformatcomment")
+ let b:PHP_autoformatcomment = PHP_autoformatcomment
+else
+ let b:PHP_autoformatcomment = 1
+endif
let b:PHP_lastindented = 0
let b:PHP_indentbeforelast = 0
@@ -114,12 +127,12 @@
endif
if exists("*GetPhpIndent")
- finish " XXX
+ finish " XXX
endif
let s:endline= '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
let s:PHP_startindenttag = '<?\%(.*?>\)\@!\|<script[^>]*>\%(.*<\/script>\)\@!'
-"setlocal debug=msg " XXX
+" setlocal debug=msg " XXX
function! GetLastRealCodeLNum(startline) " {{{
@@ -141,7 +154,7 @@
if lastline !~ '^\*/'
call search('\*/', 'W')
endif
- let lnum = searchpair('/\*', '', '\*/', s:searchpairflags)
+ let lnum = searchpair('/\*', '', '\*/', s:searchpairflags, 'Skippmatch2()')
let lastline = getline(lnum)
if lastline =~ '^\s*/\*'
@@ -184,6 +197,17 @@
return lnum
endfunction " }}}
+function! Skippmatch2()
+
+ let line = getline(".")
+
+ if line =~ '\%(".*\)\@<=/\*\%(.*"\)\@=' || line =~ '\%(//.*\)\@<=/\*'
+ return 1
+ else
+ return 0
+ endif
+endfun
+
function! Skippmatch() " {{{
let synname = synIDattr(synID(line("."), col("."), 0), "name")
if synname == "Delimiter" || synname == "phpParent" || synname == "javaScriptBraces" || synname == "phpComment" && b:UserIsTypingComment
@@ -245,7 +269,7 @@
let cline = getline(a:lnum)
if a:tofind==""
- let tofind = "^\\s*[\"']*\s*\\zs\\S"
+ let tofind = "^\\s*[\"']*\\s*\\zs\\S"
else
let tofind = a:tofind
endif
@@ -264,17 +288,28 @@
endfunction " }}}
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\);'
-let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|for\%(each\)\=\>\|declare\>\|class\>\|[|&]\)'
+let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|[|&]\)'
let s:autorestoptions = 0
if ! s:autorestoptions
- au BufWinEnter,Syntax *.php,*.php3,*.php4,*.php5 call ResetOptions()
+ au BufWinEnter,Syntax *.php,*.php3,*.php4,*.php5 call ResetOptions()
let s:autorestoptions = 1
endif
function! ResetOptions()
if ! b:optionsset
- setlocal formatoptions=qroc
+ if b:PHP_autoformatcomment
+
+ setlocal comments=s1:/*,mb:*,ex:*/,://,:#
+
+ setlocal formatoptions-=t
+ setlocal formatoptions+=q
+ setlocal formatoptions+=r
+ setlocal formatoptions+=o
+ setlocal formatoptions+=w
+ setlocal formatoptions+=c
+ setlocal formatoptions+=b
+ endif
let b:optionsset = 1
endif
endfunc
@@ -376,7 +411,7 @@
if cline !~ '^\*/'
call search('\*/', 'W')
endif
- let lnum = searchpair('/\*', '', '\*/', s:searchpairflags)
+ let lnum = searchpair('/\*', '', '\*/', s:searchpairflags, 'Skippmatch2()')
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
@@ -493,7 +528,7 @@
if cline !~ '^\*/'
call search('\*/', 'W')
endif
- let lnum = searchpair('/\*', '', '\*/', s:searchpairflags)
+ let lnum = searchpair('/\*', '', '\*/', s:searchpairflags, 'Skippmatch2()')
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
diff --git a/runtime/indent/ruby.vim b/runtime/indent/ruby.vim
index e5946eb..5d48a79 100644
--- a/runtime/indent/ruby.vim
+++ b/runtime/indent/ruby.vim
@@ -1,16 +1,10 @@
" Vim indent file
-" Language: Ruby
-" Maintainer: Gavin Sinclair <gsinclair at soyabean.com.au>
-" Developer: Nikolai Weibull <source at pcppopper.org>
-" Info: $Id$
-" URL: http://vim-ruby.rubyforge.org/
-" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
+" Language: Ruby
+" Maintainer: Gavin Sinclair <gsinclair at soyabean.com.au>
+" Developer: Nikolai Weibull <source at pcppopper.org>
+" Info: $Id$
+" URL: http://vim-ruby.rubyforge.org
+" Anon CVS: See above site
" ----------------------------------------------------------------------------
" 0. Initialization {{{1
@@ -42,17 +36,13 @@
let s:syng_strcom = '\<ruby\%(String\|StringDelimiter\|ASCIICode' .
\ '\|Interpolation\|NoInterpolation\|Escape\|Comment\|Documentation\)\>'
-" Regex of syntax group names that are strings or comments.
-let s:syng_strcom2 = '\<ruby\%(String' .
- \ '\|Interpolation\|NoInterpolation\|Escape\|Comment\|Documentation\)\>'
-
" Regex of syntax group names that are strings.
let s:syng_string =
- \ '\<ruby\%(String\|Interpolation\|NoInterpolation\|Escape\)\>'
+ \ '\<ruby\%(String\|StringDelimiter\|Interpolation\|NoInterpolation\|Escape\)\>'
" Regex of syntax group names that are strings or documentation.
let s:syng_stringdoc =
- \'\<ruby\%(String\|Interpolation\|NoInterpolation\|Escape\|Documentation\)\>'
+ \'\<ruby\%(String\|StringDelimiter\|Interpolation\|NoInterpolation\|Escape\|Documentation\)\>'
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr =
@@ -109,11 +99,6 @@
return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_strcom
endfunction
-" Check if the character at lnum:col is inside a string or comment.
-function s:IsInStringOrComment2(lnum, col)
- return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_strcom2
-endfunction
-
" Check if the character at lnum:col is inside a string.
function s:IsInString(lnum, col)
return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_string
@@ -134,14 +119,14 @@
let line = getline(lnum)
if line =~ '^=begin$'
if in_block
- let in_block = 0
+ let in_block = 0
else
- break
+ break
endif
elseif !in_block && line =~ '^=end$'
let in_block = 1
elseif !in_block && line !~ '^\s*#.*$' && !(s:IsInStringOrComment(lnum, 1)
- \ && s:IsInStringOrComment(lnum, strlen(line)))
+ \ && s:IsInStringOrComment(lnum, strlen(line)))
break
endif
let lnum = prevnonblank(lnum - 1)
@@ -160,7 +145,7 @@
let line = getline(lnum)
let col = match(line, s:continuation_regex2) + 1
if (col > 0 && !s:IsInStringOrComment(lnum, col))
- \ || s:IsInString(lnum, strlen(line))
+ \ || s:IsInString(lnum, strlen(line))
let msl = lnum
else
break
@@ -181,9 +166,9 @@
if !s:IsInStringOrComment(a:lnum, pos + 1)
let idx = stridx('(){}[]', line[pos])
if idx % 2 == 0
- let open_{idx} = open_{idx} + 1
+ let open_{idx} = open_{idx} + 1
else
- let open_{idx - 1} = open_{idx - 1} - 1
+ let open_{idx - 1} = open_{idx - 1} - 1
endif
endif
let pos = match(line, '[][(){}]', pos + 1)
@@ -246,13 +231,13 @@
if s:Match(v:lnum, s:ruby_deindent_keywords)
call cursor(v:lnum, 1)
if searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
- \ s:end_skip_expr) > 0
+ \ s:end_skip_expr) > 0
let line = getline('.')
if strpart(line, 0, col('.') - 1) =~ '=\s*$' &&
\ strpart(line, col('.') - 1, 2) !~ 'do'
- let ind = virtcol('.') - 1
+ let ind = virtcol('.') - 1
else
- let ind = indent('.')
+ let ind = indent('.')
endif
endif
return ind
@@ -302,12 +287,12 @@
if col > 0
call cursor(lnum, col)
if searchpair(s:end_start_regex, '', s:end_end_regex, 'bW',
- \ s:end_skip_expr) > 0
+ \ s:end_skip_expr) > 0
let n = line('.')
let ind = indent('.')
let msl = s:GetMSL(n)
if msl != n
- let ind = indent(msl)
+ let ind = indent(msl)
end
return ind
endif
diff --git a/runtime/plugin/NetrwPlugin.vim b/runtime/plugin/NetrwPlugin.vim
new file mode 100644
index 0000000..f28c2eb
--- /dev/null
+++ b/runtime/plugin/NetrwPlugin.vim
@@ -0,0 +1,156 @@
+" netrw.vim: Handles file transfer and remote directory listing across a network
+" PLUGIN PORTION
+" Last Change: Aug 31, 2005
+" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version: 67
+" License: Vim License (see vim's :help license)
+" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
+" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" netrw.vim is provided *as is* and comes with no warranty
+" of any kind, either expressed or implied. By using this
+" plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
+" of this software.
+"
+" But be doers of the Word, and not only hearers, deluding your own selves {{{1
+" (James 1:22 RSV)
+" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if exists("g:loaded_netrw") || &cp
+ finish
+endif
+if v:version < 600
+ echoerr "***netrw*** doesn't support Vim version ".v:version
+ finish
+endif
+let g:loaded_netrw = "v67"
+if v:version < 700
+ let loaded_explorer = 1
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+" ---------------------------------------------------------------------
+" Public Interface: {{{1
+
+" Local Browsing: {{{2
+augroup FileExplorer
+ au!
+ au BufEnter * call s:LocalBrowse(expand("<amatch>"))
+augroup END
+
+" Network Browsing Reading Writing: {{{2
+augroup Network
+ au!
+ if has("win32") || has("win95") || has("win64") || has("win16")
+ au BufReadCmd file://* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ else
+ au BufReadCmd file:///* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ endif
+ au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread " .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
+ au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
+augroup END
+
+" Commands: :Nread, :Nwrite, :NetUserPass {{{2
+com! -nargs=* Nread call netrw#NetSavePosn()<bar>call netrw#NetRead(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -range=% -nargs=* Nwrite call netrw#NetSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -nargs=* NetUserPass call NetUserPass(<f-args>)
+
+" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
+com! -nargs=? -bar -bang -count=0 Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0 Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0 Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0 Vexplore call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
+com! -nargs=? -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
+com! -nargs=? -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
+
+" Commands: NetrwSettings {{{2
+com! -nargs=0 NetrwSettings :call NetrwSettings#NetrwSettings()
+
+" ---------------------------------------------------------------------
+" LocalBrowse: {{{2
+fun! s:LocalBrowse(dirname)
+ " unfortunate interaction -- debugging calls can't be used here;
+ " the BufEnter event causes triggering when attempts to write to
+ " the DBG buffer are made.
+ if isdirectory(a:dirname)
+ call netrw#DirBrowse(a:dirname)
+ endif
+ " not a directory, ignore it
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwStatusLine: {{{1
+fun! NetrwStatusLine()
+" let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr(".")." Xline#".w:netrw_explore_line." line#".line(".")
+ if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr(".") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
+ let &stl= s:netrw_explore_stl
+ if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
+ if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
+ return ""
+ else
+ return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
+ endif
+endfun
+
+" ------------------------------------------------------------------------
+" NetUserPass: set username and password for subsequent ftp transfer {{{1
+" Usage: :call NetUserPass() -- will prompt for userid and password
+" :call NetUserPass("uid") -- will prompt for password
+" :call NetUserPass("uid","password") -- sets global userid and password
+fun! NetUserPass(...)
+
+ " get/set userid
+ if a:0 == 0
+" call Dfunc("NetUserPass(a:0<".a:0.">)")
+ if !exists("g:netrw_uid") || g:netrw_uid == ""
+ " via prompt
+ let g:netrw_uid= input('Enter username: ')
+ endif
+ else " from command line
+" call Dfunc("NetUserPass(a:1<".a:1.">) {")
+ let g:netrw_uid= a:1
+ endif
+
+ " get password
+ if a:0 <= 1 " via prompt
+" call Decho("a:0=".a:0." case <=1:")
+ let g:netrw_passwd= inputsecret("Enter Password: ")
+ else " from command line
+" call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
+ let g:netrw_passwd=a:2
+ endif
+" call Dret("NetUserPass")
+endfun
+
+" ------------------------------------------------------------------------
+" NetReadFixup: this sort of function is typically written by the user {{{1
+" to handle extra junk that their system's ftp dumps
+" into the transfer. This function is provided as an
+" example and as a fix for a Windows 95 problem: in my
+" experience, win95's ftp always dumped four blank lines
+" at the end of the transfer.
+if has("win95") && g:netrw_win95ftp
+ fun! NetReadFixup(method, line1, line2)
+" call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
+ if method == 3 " ftp (no <.netrc>)
+ let fourblanklines= line2 - 3
+ silent fourblanklines.",".line2."g/^\s*/d"
+ endif
+" call Dret("NetReadFixup")
+ endfun
+endif
+
+let &cpo= s:keepcpo
+unlet s:keepcpo
+" ------------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
diff --git a/runtime/plugin/NetrwSettings.vim b/runtime/plugin/NetrwSettings.vim
new file mode 100644
index 0000000..eecdcd2
--- /dev/null
+++ b/runtime/plugin/NetrwSettings.vim
@@ -0,0 +1,157 @@
+" NetrwSettings.vim: makes netrw settings simpler
+" Last Change: Aug 16, 2005
+" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version: 3
+" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" NetrwSettings.vim is provided *as is* and comes with no
+" warranty of any kind, either expressed or implied. By using
+" this plugin, you agree that in no event will the copyright
+" holder be liable for any damages resulting from the use
+" of this software.
+"
+" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
+" synagogues, preaching the gospel of the kingdom, and healing
+" every disease and every sickness among the people.
+" Load Once: {{{1
+if exists("g:loaded_NetrwSettings") || &cp
+ finish
+endif
+let g:loaded_NetrwSettings = "v3"
+
+" ---------------------------------------------------------------------
+" NetrwSettings: {{{1
+fun! NetrwSettings#NetrwSettings()
+ " this call is here largely just to insure that netrw has been loaded
+ call netrw#NetSavePosn()
+
+ above wincmd s
+ enew
+ setlocal noswapfile bh=wipe
+ set ft=vim
+ file Netrw\ Settings
+
+ " these variables have the following default effects when they don't
+ " exist (ie. have not been set by the user in his/her .vimrc)
+ if !exists("g:netrw_longlist")
+ let g:netrw_longlist= 0
+ let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
+ endif
+ if !exists("g:netrw_silent")
+ let g:netrw_silent= 0
+ endif
+ if !exists("g:netrw_use_nt_rcp")
+ let g:netrw_use_nt_rcp= 0
+ endif
+ if !exists("g:netrw_ftp")
+ let g:netrw_ftp= 0
+ endif
+ if !exists("g:netrw_ignorenetrc")
+ let g:netrw_ignorenetrc= 0
+ endif
+
+ put ='+ ---------------------------------------------'
+ put ='+ NetrwSettings: (by Charles E. Campbell, Jr.)'
+ put ='+ Press ? with cursor atop any line for help '
+ put ='+ ---------------------------------------------'
+ let s:netrw_settings_stop= line(".")
+
+ put =''
+ put ='+ Netrw Protocol Commands'
+ put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
+ put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
+ put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
+ put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
+ put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
+ put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
+ put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
+ put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
+ let s:netrw_protocol_stop= line(".")
+ put = ''
+
+ put ='+Netrw Transfer Control'
+ put = 'let g:netrw_cygwin = '.g:netrw_cygwin
+ put = 'let g:netrw_ftp = '.g:netrw_ftp
+ put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
+ put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
+ put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
+ put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
+ let s:netrw_xfer_stop= line(".")
+
+ put = ''
+ put ='+ Netrw Browser Control'
+ put = 'let g:netrw_alto = '.g:netrw_alto
+ put = 'let g:netrw_altv = '.g:netrw_altv
+ put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
+ put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
+ put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
+ put = 'let g:netrw_hide = '.g:netrw_hide
+ put = 'let g:netrw_keepdir = '.g:netrw_keepdir
+ put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
+ put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
+ put = 'let g:netrw_list_hide = '.g:netrw_list_hide
+ put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
+ put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
+ put = 'let g:netrw_longlist = '.g:netrw_longlist
+ put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
+ put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
+ put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
+ put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
+ put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
+ put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
+ put = 'let g:netrw_silent = '.g:netrw_silent
+ put = 'let g:netrw_sort_by = '.g:netrw_sort_by
+ put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
+ put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
+ put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
+ put = 'let g:netrw_timefmt = '.g:netrw_timefmt
+ put = 'let g:netrw_winsize = '.g:netrw_winsize
+
+ put =''
+ put ='+ For help, place cursor on line and press ?'
+
+ 1d
+ silent %s/^+/"/e
+ res 99
+ silent %s/= \([^0-9].*\)$/= '\1'/e
+ silent %s/= $/= ''/e
+ 1
+
+ set nomod
+
+ map <buffer> <silent> ? :call NetrwSettingHelp()<cr>
+ let tmpfile= tempname()
+ exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwSettingHelp: {{{2
+fun! NetrwSettingHelp()
+" call Dfunc("NetrwSettingHelp()")
+ let curline = getline(".")
+ if curline =~ '='
+ let varhelp = substitute(curline,'^\s*let ','','e')
+ let varhelp = substitute(varhelp,'\s*=.*$','','e')
+" call Decho("trying help ".varhelp)
+ try
+ exe "he ".varhelp
+ catch /^Vim\%((\a\+)\)\=:E149/
+ echo "***sorry*** no help available for <".varhelp.">"
+ endtry
+ elseif line(".") < s:netrw_settings_stop
+ he netrw-settings
+ elseif line(".") < s:netrw_protocol_stop
+ he netrw-externapp
+ elseif line(".") < s:netrw_xfer_stop
+ he netrw-variables
+ else
+ he netrw-browse-var
+ endif
+" call Dret("NetrwSettingHelp")
+endfun
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
diff --git a/runtime/plugin/netrwPlugin.vim b/runtime/plugin/netrwPlugin.vim
index bc5a85a..6e33d51 100644
--- a/runtime/plugin/netrwPlugin.vim
+++ b/runtime/plugin/netrwPlugin.vim
@@ -1,6 +1,6 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN PORTION
-" Date: Oct 12, 2005
+" Date: Oct 27, 2005
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@@ -42,15 +42,15 @@
augroup Network
au!
if has("win32") || has("win95") || has("win64") || has("win16")
- au BufReadCmd file://* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au BufReadCmd file://* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
else
- au BufReadCmd file:///* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
- au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au BufReadCmd file://* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',"")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
+ au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".netrw#RFC2396(expand("<amatch>"))|exe 'e '.substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',"")|exe "silent doau BufReadPost ".netrw#RFC2396(expand("<amatch>"))
endif
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
- au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread " .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
+ au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau FileReadPre ".expand("<amatch>")|exe "Nread " .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
- au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau FileWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
augroup END
" Commands: :Nread, :Nwrite, :NetUserPass {{{2
diff --git a/runtime/plugin/tar.vim b/runtime/plugin/tar.vim
deleted file mode 100644
index cc97f44..0000000
--- a/runtime/plugin/tar.vim
+++ /dev/null
@@ -1,34 +0,0 @@
-" tar.vim -- a Vim plugin for browsing tarfiles
-" Copyright (c) 2002, Michael C. Toren <mct@toren.net>
-" Distributed under the GNU General Public License.
-"
-" Version: 1.01
-" Last Change: 2005 Jul 26
-"
-" Updates are available from <http://michael.toren.net/code/>. If you
-" find this script useful, or have suggestions for improvements, please
-" let me know.
-" Also look there for further comments and documentation.
-"
-" This part only sets the autocommands. The functions are in autoload/tar.vim.
-
-if has("autocmd")
- augroup tar
- au!
- au BufReadCmd tarfile:* call tar#Read(expand("<afile>"), 1)
- au BufReadCmd tarfile:*/* call tar#Read(expand("<afile>"), 1)
- au FileReadCmd tarfile:* call tar#Read(expand("<afile>"), 0)
- au FileReadCmd tarfile:*/* call tar#Read(expand("<afile>"), 0)
-
- au BufWriteCmd tarfile:* call tar#Write(expand("<afile>"))
- au BufWriteCmd tarfile:*/* call tar#Write(expand("<afile>"))
- au FileWriteCmd tarfile:* call tar#Write(expand("<afile>"))
- au FileWriteCmd tarfile:*/* call tar#Write(expand("<afile>"))
-
- au BufReadCmd *.tar call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tar.gz call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tar.bz2 call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tar.Z call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tgz call tar#Browse(expand("<afile>"))
- augroup END
-endif
diff --git a/runtime/plugin/tarPlugin.vim b/runtime/plugin/tarPlugin.vim
index b9a34aa..506b431 100644
--- a/runtime/plugin/tarPlugin.vim
+++ b/runtime/plugin/tarPlugin.vim
@@ -9,25 +9,25 @@
"
" This part only sets the autocommands. The functions are in autoload/tar.vim.
-if has("autocmd")
- augroup tar
- au!
- au BufReadCmd tarfile:* call tar#Read(expand("<afile>"), 1)
- au BufReadCmd tarfile:*/* call tar#Read(expand("<afile>"), 1)
- au FileReadCmd tarfile:* call tar#Read(expand("<afile>"), 0)
- au FileReadCmd tarfile:*/* call tar#Read(expand("<afile>"), 0)
+augroup tar
+ au!
+ au BufReadCmd tarfile:* call tar#Read(expand("<amatch>"), 1)
+ au FileReadCmd tarfile:* call tar#Read(expand("<amatch>"), 0)
+ au BufWriteCmd tarfile:* call tar#Write(expand("<amatch>"))
+ au FileWriteCmd tarfile:* call tar#Write(expand("<amatch>"))
- au BufWriteCmd tarfile:* call tar#Write(expand("<afile>"))
- au BufWriteCmd tarfile:*/* call tar#Write(expand("<afile>"))
- au FileWriteCmd tarfile:* call tar#Write(expand("<afile>"))
- au FileWriteCmd tarfile:*/* call tar#Write(expand("<afile>"))
+ if has("unix")
+ au BufReadCmd tarfile:*/* call tar#Read(expand("<amatch>"), 1)
+ au FileReadCmd tarfile:*/* call tar#Read(expand("<amatch>"), 0)
+ au BufWriteCmd tarfile:*/* call tar#Write(expand("<amatch>"))
+ au FileWriteCmd tarfile:*/* call tar#Write(expand("<amatch>"))
+ endif
- au BufReadCmd *.tar call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tar.gz call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tar.bz2 call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tar.Z call tar#Browse(expand("<afile>"))
- au BufReadCmd *.tgz call tar#Browse(expand("<afile>"))
- augroup END
-endif
+ au BufReadCmd *.tar call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tar.gz call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tar.bz2 call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tar.Z call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tgz call tar#Browse(expand("<amatch>"))
+augroup END
" vim: ts=8
diff --git a/runtime/plugin/zipPlugin.vim b/runtime/plugin/zipPlugin.vim
index 608edb5..20319a3 100644
--- a/runtime/plugin/zipPlugin.vim
+++ b/runtime/plugin/zipPlugin.vim
@@ -22,19 +22,19 @@
" Public Interface: {{{1
augroup zip
au!
- au BufReadCmd zipfile:* call zip#Read(expand("<afile>"), 1)
- au FileReadCmd zipfile:* call zip#Read(expand("<afile>"), 0)
- au BufWriteCmd zipfile:* call zip#Write(expand("<afile>"))
- au FileWriteCmd zipfile:* call zip#Write(expand("<afile>"))
+ au BufReadCmd zipfile:* call zip#Read(expand("<amatch>"), 1)
+ au FileReadCmd zipfile:* call zip#Read(expand("<amatch>"), 0)
+ au BufWriteCmd zipfile:* call zip#Write(expand("<amatch>"))
+ au FileWriteCmd zipfile:* call zip#Write(expand("<amatch>"))
if has("unix")
- au BufReadCmd zipfile:*/* call zip#Read(expand("<afile>"), 1)
- au FileReadCmd zipfile:*/* call zip#Read(expand("<afile>"), 0)
- au BufWriteCmd zipfile:*/* call zip#Write(expand("<afile>"))
- au FileWriteCmd zipfile:*/* call zip#Write(expand("<afile>"))
+ au BufReadCmd zipfile:*/* call zip#Read(expand("<amatch>"), 1)
+ au FileReadCmd zipfile:*/* call zip#Read(expand("<amatch>"), 0)
+ au BufWriteCmd zipfile:*/* call zip#Write(expand("<amatch>"))
+ au FileWriteCmd zipfile:*/* call zip#Write(expand("<amatch>"))
endif
- au BufReadCmd *.zip call zip#Browse(expand("<afile>"))
+ au BufReadCmd *.zip call zip#Browse(expand("<amatch>"))
augroup END
" ------------------------------------------------------------------------
diff --git a/runtime/spell/sv/main.aap b/runtime/spell/sv/main.aap
index fc45fcf..5634711 100644
--- a/runtime/spell/sv/main.aap
+++ b/runtime/spell/sv/main.aap
@@ -1,4 +1,6 @@
# Aap recipe for Swedish Vim spell files.
+#
+# Maintainer: Stefan Karlsson <stefan.74@comhem.se>
# Use a freshly compiled Vim if it exists.
@if os.path.exists('../../../src/vim'):
diff --git a/runtime/spell/sv/sv_SE.diff b/runtime/spell/sv/sv_SE.diff
index 3dfc515..5a0b383 100644
--- a/runtime/spell/sv/sv_SE.diff
+++ b/runtime/spell/sv/sv_SE.diff
@@ -139,3 +139,547 @@
+ SAL Ä E
+ SAL ÖG(IE)-6 ÖK # vokal+g(ie) ger ej j-ljud
+ SAL Ö Ö
+*** sv_SE.orig.dic 2003-08-14 13:02:06.000000000 +0200
+--- sv_SE.dic 2005-10-15 18:15:52.171875000 +0200
+***************
+*** 108,113 ****
+--- 108,114 ----
+ adoption/ADHS
+ adoptivbarn/BDS
+ adoptivson/ADS
++ adr.
+ adrenalin/BS
+ adress/DHS
+ adressat/ADHS
+***************
+*** 608,613 ****
+--- 609,615 ----
+ anlöps/S
+ anlöpta/JRS
+ anm
++ anm.
+ anmaning/ADGS
+ anmoda/ABCDEFMNPS
+ anmodande/ACEFS
+***************
+*** 973,978 ****
+--- 975,981 ----
+ arrogant/OS
+ arsenal/DHS
+ arsenik/DS
++ art.
+ art/ADHOS
+ arta/CHJMNPS
+ artefakt/DHS
+***************
+*** 1094,1099 ****
+--- 1097,1103 ----
+ audiens/DHS
+ auditorie/CIS
+ auditorium/JS
++ aug.
+ August/A
+ augusti/AS
+ auktion/ADHS
+***************
+*** 2376,2381 ****
+--- 2380,2386 ----
+ bikupa/AEGS
+ bikupe/S
+ bikups/S
++ bil.
+ bil/ADGS
+ bila/EGIJOS
+ bilaga/EGOS
+***************
+*** 2490,2495 ****
+--- 2495,2501 ----
+ Björn
+ björn/ADGS
+ Björns
++ bl.a.
+ bla/JS
+ black/DGS
+ blackout/DHS
+***************
+*** 3645,3650 ****
+--- 3651,3657 ----
+ debut/ADHS
+ debutant/DHS
+ debutera/JMS
++ dec.
+ december/AS
+ decennie/CIS
+ decennium/AJS
+***************
+*** 4117,4122 ****
+--- 4124,4130 ----
+ dotterson/ADS
+ Douglas
+ dov/OPS
++ dr
+ dra/AJS
+ drabant/DHS
+ drabba/ACMNPS
+***************
+*** 4315,4321 ****
+ duven/MS
+ dvala/EGJS
+ dvaldes/S
+! dvs
+ dväljas/S
+ dväljes/S
+ dväljs/NS
+--- 4323,4330 ----
+ duven/MS
+ dvala/EGJS
+ dvaldes/S
+! dvs.
+! d.v.s.
+ dväljas/S
+ dväljes/S
+ dväljs/NS
+***************
+*** 4463,4468 ****
+--- 4472,4478 ----
+ Ebbas
+ Ecuador/A
+ ed/ADHS
++ e.d.
+ Edberg/A
+ eder/AJMS
+ Edit/A
+***************
+*** 4612,4617 ****
+--- 4622,4628 ----
+ ekorre/AEGS
+ ekosystem/BDS
+ ekosändning/ADGS
++ e.Kr.
+ eksem/BDS
+ Eksjö/A
+ ekumenik/DS
+***************
+*** 4825,4830 ****
+--- 4836,4842 ----
+ enkrona/EGS
+ enkät/DHS
+ Enköping/A
++ enl.
+ enlighet/S
+ enligt/S
+ enorm/OPS
+***************
+*** 4990,4995 ****
+--- 5002,5008 ----
+ etanol/DS
+ etapp/DHS
+ etc
++ etc.
+ etcetera/S
+ eten/BDS
+ eter/ES
+***************
+*** 5334,5341 ****
+--- 5347,5356 ----
+ favorisera/ACDMNPS
+ favorit/ADHS
+ favör/DHS
++ f.d.
+ fe/EFHS
+ feber/ES
++ febr.
+ febril/MOPS
+ februari/AS
+ federal/MOS
+***************
+*** 5451,5456 ****
+--- 5466,5472 ----
+ fiffla/ACDMNS
+ fifflar/DJQS
+ fifflare/AEJS
++ fig.
+ figur/ADHS
+ figurativ/OS
+ figurera/ACJMNPS
+***************
+*** 5635,5640 ****
+--- 5651,5657 ----
+ fjäsk/ABS
+ fjäska/JMS
+ fjättra/CMNPS
++ f.Kr.
+ flack/OPS
+ flacka/ABCDJMNS
+ fladder/CS
+***************
+*** 5913,5918 ****
+--- 5930,5936 ----
+ fortplanta/ACMNPS
+ fortplantning/ADGS
+ fortran/S
++ forts.
+ fortsatt/OQS
+ fortskrida/KS
+ fortsätta/AJS
+***************
+*** 6075,6080 ****
+--- 6093,6099 ----
+ fras/DHS
+ frasa/BDHJMS
+ frasering/ADS
++ fre.
+ fred/ADS
+ freda/ACJMNPS
+ fredag/ADGS
+***************
+*** 6170,6175 ****
+--- 6189,6195 ----
+ frivol/MOS
+ froda/ACMNPS
+ frodig/OS
++ fr.o.m.
+ from/KLMNS
+ fromhet/ADS
+ fromt/S
+***************
+*** 6453,6458 ****
+--- 6473,6479 ----
+ fästman/AFS
+ fästmö/AEIS
+ fästning/ADGS
++ f.ö.
+ föda/ADEJKLRS
+ född/OQS
+ födelse/AES
+***************
+*** 10493,10498 ****
+--- 10514,10520 ----
+ Jan/A
+ Janne/A
+ Janos
++ jan.
+ januari/AS
+ japan/DHS
+ Japans
+***************
+*** 10520,10525 ****
+--- 10542,10548 ----
+ jetflyg/ABS
+ jetmotor/EHS
+ jetplan/ABDS
++ jfr
+ jiddisch/DS
+ Jimmy/A
+ jippo/ACES
+***************
+*** 10870,10875 ****
+--- 10893,10899 ----
+ kaos/BS
+ kaotisk/OS
+ Kap
++ kap.
+ kap/BDS
+ kapa/ACJMNPS
+ kapabel/KMS
+***************
+*** 11119,11124 ****
+--- 11143,11149 ----
+ Kjell/A
+ kjol/ADGS
+ kjortel/EIS
++ kl.
+ kl
+ klack/DGS
+ klacka/IJMS
+***************
+*** 13445,13450 ****
+--- 13470,13476 ----
+ löpning/ADGS
+ löpsedel/AEIS
+ löptid/DS
++ lör.
+ lördag/ADGS
+ lös/AORS
+ lösa/ABDJKLQRS
+***************
+*** 13783,13788 ****
+--- 13809,13815 ----
+ Mauretanien/A
+ Mauritius
+ mausoleum/JS
++ max.
+ max
+ maxim/DHS
+ maximal/MOS
+***************
+*** 13965,13970 ****
+--- 13992,13998 ----
+ mexikan/DHS
+ mexikanska/AEGS
+ Mexiko/A
++ m.fl.
+ mg
+ MHz
+ Michael/A
+***************
+*** 14016,14021 ****
+--- 14044,14050 ----
+ milslång/OS
+ milstolpe/AEGS
+ mimosa/AES
++ min.
+ min/ACDFHS
+ mina/HJS
+ mindervärdig/OQRS
+***************
+*** 14136,14141 ****
+--- 14165,14171 ----
+ mjölnar/DJQS
+ mjölnare/AEJS
+ ml
++ m.m.
+ mm
+ mo/AEGS
+ mobba/ACMNPS
+***************
+*** 14539,14544 ****
+--- 14569,14575 ----
+ målstyrd/OS
+ målsättning/ADGS
+ måltid/ADHS
++ mån.
+ mån/DGQS
+ måna/IJMPRS
+ månad/ADHQS
+***************
+*** 14792,14797 ****
+--- 14823,14830 ----
+ neutron/DHS
+ nevö/ES
+ New
++ ngn
++ ngt
+ nia/EGJQS
+ Nicaragua/A
+ nick/DGS
+***************
+*** 14920,14931 ****
+--- 14953,14966 ----
+ notifikation/ADS
+ notis/DHS
+ notorisk/OS
++ nov.
+ nova/AES
+ novell/DHS
+ novellmagasin/ABDS
+ novellsamling/ADGS
+ november/AS
+ novis/DHS
++ nr.
+ nr
+ nu/BS
+ nubb/S
+***************
+*** 15243,15248 ****
+--- 15278,15284 ----
+ obrottslig/OS
+ obrukbar/MOS
+ obruten/MS
++ obs.
+ obs
+ observant/OPS
+ observation/ADHS
+***************
+*** 15470,15475 ****
+--- 15506,15512 ----
+ okonventionell/MOS
+ okritisk/OS
+ okryddade/OS
++ okt.
+ oktagon/HS
+ oktal/MOS
+ oktav/DHS
+***************
+*** 15741,15746 ****
+--- 15778,15784 ----
+ onjutbar/MOS
+ onkel/AES
+ onormal/MOS
++ ons.
+ onsdag/ADGS
+ onyanserade/OS
+ onykter/MS
+***************
+*** 15977,15983 ****
+--- 16015,16023 ----
+ ostrukturerade/OS
+ ostörd/OS
+ osund/OS
++ osv.
+ osv
++ o.s.v.
+ osvensk/OS
+ osviklig/OPS
+ osympatisk/OPQS
+***************
+*** 16378,16383 ****
+--- 16418,16424 ----
+ petitum/ES
+ Petra/A
+ Pettersson/A
++ p.g.a.
+ pga
+ Philips
+ pi/FS
+***************
+*** 17457,17462 ****
+--- 17498,17504 ----
+ resonabel/MS
+ resonemang/ABDS
+ resonera/ACMNS
++ resp.
+ resp/S
+ respekt/S
+ respektabel/LMS
+***************
+*** 18328,18333 ****
+--- 18370,18376 ----
+ sentimentalitet/ADS
+ separat/OS
+ separera/ACMNPS
++ sept.
+ september/AS
+ seraf/DHS
+ serenad/DHS
+***************
+*** 18652,18657 ****
+--- 18695,18701 ----
+ sjöslag/S
+ sjöss/S
+ sjåpig/OS
++ s.k.
+ ska/GJMPS
+ skada/ABCDEGJMNPS
+ skadedjur/BDS
+***************
+*** 20767,20772 ****
+--- 20811,20817 ----
+ sömnlös/OQRS
+ sömnlöshet/ADS
+ sömnmedel/ACFS
++ sön.
+ söndag/ADGS
+ sönder/S
+ sönderbruten/MS
+***************
+*** 20832,20837 ****
+--- 20877,20883 ----
+ såväl/S
+ såvärst/S
+ ta/AKRS
++ tab.
+ tabbe/S
+ tabell/DHS
+ tabernaklet/AS
+***************
+*** 21063,21068 ****
+--- 21109,21115 ----
+ testar/DJQS
+ testare/AEJS
+ testning/ADGS
++ t.ex.
+ tex
+ Texas
+ text/DHOS
+***************
+*** 21336,21341 ****
+--- 21383,21389 ----
+ tippa/ACMNPS
+ tips/BDS
+ tipsa/ACJMNPS
++ tis.
+ tisdag/ADGS
+ tistel/EIS
+ titan/S
+***************
+*** 21463,21468 ****
+--- 21511,21517 ----
+ tolvårig/OS
+ tolvårs/S
+ Tom
++ t.o.m.
+ tom/LMS
+ Tomas
+ tomat/DHS
+***************
+*** 21513,21518 ****
+--- 21562,21568 ----
+ torped/ADHS
+ torpedbåt/ADGS
+ torr/MOPS
++ tors.
+ torsdag/ADGS
+ torsk/DGS
+ Torsten/A
+***************
+*** 22359,22364 ****
+--- 22409,22415 ----
+ uppkomst/DS
+ uppkoppling/ADGS
+ uppkrupen/MS
++ uppl.
+ upplaga/AEGOS
+ upplagd/OS
+ upplage/S
+***************
+*** 22639,22644 ****
+--- 22690,22696 ----
+ utförar/DJQS
+ utförare/AEJS
+ utförlig/OPS
++ utg.
+ utgallra/ACMNPS
+ utgamla/S
+ utgammal/MS
+***************
+*** 23003,23008 ****
+--- 23055,23061 ----
+ varannan/S
+ varav/S
+ Varberg/A
++ vard.
+ varda/BDS
+ vardag/ADGS
+ vardaglig/OPS
+***************
+*** 23091,23096 ****
+--- 23144,23150 ----
+ Vaxholm/A
+ vaxljus/BDS
+ Vaxmora
++ vd
+ VD
+ ve/GS
+ veck/ABDS
+***************
+*** 23203,23208 ****
+--- 23257,23264 ----
+ vettlös/OS
+ vev/DS
+ veva/ACJMNPS
++ v.g.
++ v.g.v.
+ vi/ACEOS
+ vibration/ADHS
+ vibrator/AES
+***************
+*** 23416,23421 ****
+--- 23472,23478 ----
+ VM
+ vokabulär/S
+ vokal/DHS
++ vol.
+ volontär/ADHS
+ volt/S
+ Volvo/A
diff --git a/runtime/syntax/catalog.vim b/runtime/syntax/catalog.vim
index 2f8e388..4dbff00 100644
--- a/runtime/syntax/catalog.vim
+++ b/runtime/syntax/catalog.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: sgml catalog file
" Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: Tue, 27 Apr 2004 14:54:59 CEST
+" Last Change: Fr, 04 Nov 2005 12:46:45 CET
" Filenames: /etc/sgml.catalog
" $Id$
@@ -17,8 +17,8 @@
syn region catalogString start=+'+ skip=+\\\\\|\\'+ end=+'+ keepend
syn region catalogComment start=+--+ end=+--+ contains=catalogTodo
-syn keyword catalogTodo TODO FIXME XXX contained display
-syn keyword catalogKeyword DOCTYPE OVERRIDE PUBLIC DTDDECL ENTITY display
+syn keyword catalogTodo TODO FIXME XXX NOTE contained
+syn keyword catalogKeyword DOCTYPE OVERRIDE PUBLIC DTDDECL ENTITY CATALOG
" The default highlighting.
diff --git a/runtime/syntax/cf.vim b/runtime/syntax/cf.vim
index 647c56a..517a20d 100644
--- a/runtime/syntax/cf.vim
+++ b/runtime/syntax/cf.vim
@@ -1,175 +1,251 @@
-" Vim syntax file
-" Language: ColdFusion
-" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
-" Last Change: August 3, 2005
-" ColdFusion MX 7
-" Usage: Since ColdFusion has its own version of HTML comments
-" (<!--- --->)
-" make sure that you put 'let html_wrong_comments=1' in your .vimrc /
-" _vimrc file.
-
-" 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
-
-" Use all the stuff from the HTML syntax file.
-if version < 600
- source <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
-endif
-
-" Tag names.
-syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate cfbreak cfcache
-syn keyword cfTagName contained cfcalendar cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection
-syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory cfdocument
-syn keyword cfTagName contained cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror cfexecute
-syn keyword cfTagName contained cfexit cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid
-syn keyword cfTagName contained cfgridcolumn cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif
-syn keyword cfTagName contained cfimport cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
-syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout cfloop cfmail
-syn keyword cfTagName contained cfmailparam cfmailpart cfmodule cfNTauthenticate cfobject cfobjectcache
-syn keyword cfTagName contained cfoutput cfparam cfpop cfprocessingdirective cfprocparam cfprocresult
-syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow
-syn keyword cfTagName contained cfreturn cfsavecontent cfschedule cfscript cfsearch cfselect cfset cfsetting
-syn keyword cfTagName contained cfsilent cfslider cfstoredproc cfswitch cftable cftextarea cfthrow cftimer
-syn keyword cfTagName contained cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx cfxml
-
-" Tag parameters.
-syn keyword cfArg contained abort accept access accessible action addnewline addtoken addtoken agentname
-syn keyword cfArg contained align appendkey appletsource application applicationtimeout applicationtoken
-syn keyword cfArg contained archive argumentcollection arguments asciiextensionlist attachmentpath
-syn keyword cfArg contained attributecollection attributes attributes autowidth backgroundcolor
-syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname blockfactor body bold
-syn keyword cfArg contained border branch cachedafter cachedwithin casesensitive categories category
-syn keyword cfArg contained categorytree cc cfsqltype charset chartheight chartwidth checked class
-syn keyword cfArg contained clientmanagement clientstorage codebase colheaderalign colheaderbold
-syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders colheadertextcolor
-syn keyword cfArg contained collection colorlist colspacing columns completepath component condition
-syn keyword cfArg contained connection contentid context contextbytes contexthighlightbegin
-syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria custom1 custom2
-syn keyword cfArg contained custom3 custom4 data dataalign databackgroundcolor datacollection
-syn keyword cfArg contained datalabelstyle datasource date daynames dbname dbserver dbtype dbvarname debug
-syn keyword cfArg contained default delete deletebutton deletefile delimiter delimiters description
-syn keyword cfArg contained destination detail directory disabled display displayname disposition dn domain
-syn keyword cfArg contained enablecab enablecfoutputonly enabled encoded encryption enctype enddate
-syn keyword cfArg contained endrange endrow endtime entry errorcode exception existing expand expires
-syn keyword cfArg contained expireurl expression extendedinfo extends extensions external failifexists
-syn keyword cfArg contained failto file filefield filename filter firstdayofweek firstrowasheaders font
-syn keyword cfArg contained fontbold fontembed fontitalic fontsize foregroundcolor format formfields
-syn keyword cfArg contained formula from generateuniquefilenames getasbinary grid griddataalign gridlines
-syn keyword cfArg contained groovecolor group groupcasesensitive header headeralign headerbold headerfont
-syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor height highlighthref
-syn keyword cfArg contained hint href hrefkey hscroll hspace htmltable id idletimeout img imgopen imgstyle
-syn keyword cfArg contained index inline input insert insertbutton interval isolation italic item
-syn keyword cfArg contained itemcolumn key keyonly label labelformat language list listgroups locale
-syn keyword cfArg contained localfile log loginstorage lookandfeel mailerid mailto marginbottom marginleft
-syn keyword cfArg contained marginright marginright margintop markersize markerstyle mask maxlength maxrows
-syn keyword cfArg contained message messagenumber method mimeattach mimetype mode modifytype monthnames
-syn keyword cfArg contained multipart multiple name namecomplict nameconflict namespace new newdirectory
-syn keyword cfArg contained notsupported null numberformat object omit onchange onclick onerror onkeydown
-syn keyword cfArg contained onkeyup onload onmousedown onmouseup onreset onsubmit onvalidate operation
-syn keyword cfArg contained orderby orientation output outputfile overwrite ownerpassword pageencoding
-syn keyword cfArg contained pageheight pagetype pagewidth paintstyle param_1 param_2 param_3 param_4
-syn keyword cfArg contained param_5 parent passive passthrough password path pattern permissions picturebar
-syn keyword cfArg contained pieslicestyle port porttypename prefix preloader preservedata previouscriteria
-syn keyword cfArg contained procedure protocol provider providerdsn proxybypass proxypassword proxyport
-syn keyword cfArg contained proxyserver proxyuser publish query queryasroot queryposition range rebind
-syn keyword cfArg contained recurse redirect referral refreshlabel remotefile replyto report requesttimeout
-syn keyword cfArg contained required reset resolveurl result resultset retrycount returnasbinary returncode
-syn keyword cfArg contained returntype returnvariable roles rowheaderalign rowheaderbold rowheaderfont
-syn keyword cfArg contained rowheaderfontsize rowheaderitalic rowheaders rowheadertextcolor rowheaderwidth
-syn keyword cfArg contained rowheight scale scalefrom scaleto scope scriptprotect scriptsrc secure
-syn keyword cfArg contained securitycontext select selectcolor selected selecteddate selectedindex
-syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement server serviceport
-syn keyword cfArg contained serviceportname sessionmanagement sessiontimeout setclientcookies setcookie
-syn keyword cfArg contained setdomaincookies show3d showborder showdebugoutput showerror showlegend
-syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort sortascendingbutton
-syn keyword cfArg contained sortcontrol sortdescendingbutton sortxaxis source spoolenable sql src start
-syn keyword cfArg contained startdate startrange startrow starttime status statuscode statust step
-syn keyword cfArg contained stoponerror style subject suggestions suppresswhitespace tablename tableowner
-syn keyword cfArg contained tablequalifier taglib target task template text textcolor textqualifier
-syn keyword cfArg contained thread throwonerror throwonfailure throwontimeout time timeout timespan tipbgcolor tipstyle
-syn keyword cfArg contained title to tooltip top toplevelvariable transfermode type uid unit url urlpath
-syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate validateat value
-syn keyword cfArg contained valuecolumn values valuesdelimiter valuesdisplay var variable vertical visible
-syn keyword cfArg contained vscroll vspace webservice width wmode wraptext wsdlfile xaxistitle xaxistype
-syn keyword cfArg contained xoffset yaxistitle yaxistype yoffset
-
-" ColdFusion Functions.
-syn keyword cfFunctionName contained Abs GetFunctionList Max ACos GetGatewayHelper Mid AddSOAPRequestHeader
-syn keyword cfFunctionName contained GetHttpRequestData Min AddSOAPResponseHeader GetHttpTimeString Minute
-syn keyword cfFunctionName contained ArrayAppend GetLocale Month ArrayAvg GetLocaleDisplayName MonthAsString
-syn keyword cfFunctionName contained ArrayClear GetMetaData Now ArrayDeleteAt GetMetricData NumberFormat
-syn keyword cfFunctionName contained ArrayInsertAt GetPageContext ParagraphFormat ArrayIsEmpty GetProfileSections
-syn keyword cfFunctionName contained ParseDateTime ArrayLen GetProfileString Pi ArrayMax GetSOAPRequest
-syn keyword cfFunctionName contained PreserveSingleQuotes ArrayMin GetSOAPRequestHeader Quarter ArrayNew
-syn keyword cfFunctionName contained GetSOAPResponse QueryAddColumn ArrayPrepend GetSOAPResponseHeader QueryAddRow
-syn keyword cfFunctionName contained ArrayResize GetTempDirectory QueryNew ArraySet GetTempFile QuerySetCell
-syn keyword cfFunctionName contained ArraySort GetTickCount QuotedValueList ArraySum GetTimeZoneInfo Rand ArraySwap
-syn keyword cfFunctionName contained GetToken Randomize ArrayToList Hash RandRange Asc Hour REFind ASin
-syn keyword cfFunctionName contained HTMLCodeFormat REFindNoCase Atn HTMLEditFormat ReleaseComObject BinaryDecode
-syn keyword cfFunctionName contained IIf RemoveChars BinaryEncode IncrementValue RepeatString BitAnd InputBaseN
-syn keyword cfFunctionName contained Replace BitMaskClear Insert ReplaceList BitMaskRead Int ReplaceNoCase
-syn keyword cfFunctionName contained BitMaskSet IsArray REReplace BitNot IsBinary REReplaceNoCase BitOr IsBoolean
-syn keyword cfFunctionName contained Reverse BitSHLN IsCustomFunction Right BitSHRN IsDate RJustify BitXor
-syn keyword cfFunctionName contained IsDebugMode Round Ceiling IsDefined RTrim CharsetDecode IsLeapYear Second
-syn keyword cfFunctionName contained CharsetEncode IsNumeric SendGatewayMessage Chr IsNumericDate SetEncoding
-syn keyword cfFunctionName contained CJustify IsObject SetLocale Compare IsQuery SetProfileString CompareNoCase
-syn keyword cfFunctionName contained IsSimpleValue SetVariable Cos IsSOAPRequest Sgn CreateDate IsStruct Sin
-syn keyword cfFunctionName contained CreateDateTime IsUserInRole SpanExcluding CreateObject IsValid SpanIncluding
-syn keyword cfFunctionName contained CreateODBCDate IsWDDX Sqr CreateODBCDateTime IsXML StripCR CreateODBCTime
-syn keyword cfFunctionName contained IsXmlAttribute StructAppend CreateTime IsXmlDoc StructClear CreateTimeSpan
-syn keyword cfFunctionName contained IsXmlElem StructCopy CreateUUID IsXmlNode StructCount DateAdd IsXmlRoot
-syn keyword cfFunctionName contained StructDelete DateCompare JavaCast StructFind DateConvert JSStringFormat
-syn keyword cfFunctionName contained StructFindKey DateDiff LCase StructFindValue DateFormat Left StructGet
-syn keyword cfFunctionName contained DatePart Len StructInsert Day ListAppend StructIsEmpty DayOfWeek
-syn keyword cfFunctionName contained ListChangeDelims StructKeyArray DayOfWeekAsString ListContains StructKeyExists
-syn keyword cfFunctionName contained DayOfYear ListContainsNoCase StructKeyList DaysInMonth ListDeleteAt StructNew
-syn keyword cfFunctionName contained DaysInYear ListFind StructSort DE ListFindNoCase StructUpdate DecimalFormat
-syn keyword cfFunctionName contained ListFirst Tan DecrementValue ListGetAt TimeFormat Decrypt ListInsertAt
-syn keyword cfFunctionName contained ToBase64 DeleteClientVariable ListLast ToBinary DirectoryExists ListLen
-syn keyword cfFunctionName contained ToScript DollarFormat ListPrepend ToString Duplicate ListQualify Trim Encrypt
-syn keyword cfFunctionName contained ListRest UCase Evaluate ListSetAt URLDecode Exp ListSort URLEncodedFormat
-syn keyword cfFunctionName contained ExpandPath ListToArray URLSessionFormat FileExists ListValueCount Val Find
-syn keyword cfFunctionName contained ListValueCountNoCase ValueList FindNoCase LJustify Week FindOneOf Log Wrap
-syn keyword cfFunctionName contained FirstDayOfMonth Log10 WriteOutput Fix LSCurrencyFormat XmlChildPos FormatBaseN
-syn keyword cfFunctionName contained LSDateFormat XmlElemNew GetTempDirectory LSEuroCurrencyFormat XmlFormat
-syn keyword cfFunctionName contained GetAuthUser LSIsCurrency XmlGetNodeType GetBaseTagData LSIsDate XmlNew
-syn keyword cfFunctionName contained GetBaseTagList LSIsNumeric XmlParse GetBaseTemplatePath LSNumberFormat
-syn keyword cfFunctionName contained XmlSearch GetClientVariablesList LSParseCurrency XmlTransform
-syn keyword cfFunctionName contained GetCurrentTemplatePath LSParseDateTime XmlValidate GetDirectoryFromPath
-syn keyword cfFunctionName contained LSParseEuroCurrency Year GetEncoding LSParseNumber YesNoFormat GetException
-syn keyword cfFunctionName contained LSTimeFormat GetFileFromPath LTrim
-
-syn cluster htmlTagNameCluster add=cfTagName
-syn cluster htmlArgCluster add=cfArg,cfFunctionName
-
-syn region cfFunctionRegion start='#' end='#' contains=cfFunctionName
-
-" Define the default highlighting.
-" For version 5.x and earlier, only when not done already.
-" For version 5.8 and later, only when an item doesn't have highlighting yet.
-if version >= 508 || !exists("did_cf_syn_inits")
- if version < 508
- let did_cf_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cfTagName Statement
- HiLink cfArg Type
- HiLink cfFunctionName Function
- HiLink cfFunctionRegion PreProc
-
- delcommand HiLink
-endif
-
-let b:current_syntax = "cf"
-
-" vim: ts=8 sw=2
+" Vim syntax file
+" Language: ColdFusion
+" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
+" Last Change: 2005-11-02
+" Filenames: *.cfc *.cfm
+" Version: Macromedia ColdFusion MX 7
+" Usage: Note that ColdFusion has its own comment syntax
+" i.e. <!--- --->
+
+" For version 5.x, clear all syntax items.
+" For version 6.x+, quit if a syntax file is already loaded.
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" Use all the stuff from the HTML syntax file.
+" TODO remove this; CFML is not a superset of HTML
+if version < 600
+ source <sfile>:p:h/html.vim
+else
+ runtime! syntax/html.vim
+endif
+
+syn sync fromstart
+syn sync maxlines=200
+syn case ignore
+
+" Scopes and keywords.
+syn keyword cfScope contained cgi cffile request caller this thistag cfcatch variables application server session client form url attributes arguments
+syn keyword cfBool contained yes no true false
+
+" Operator strings.
+" Not exhaustive, since there are longhand equivalents.
+syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte eq neq not is mod contains
+syn match cfOperatorMatch contained "[\+\-\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
+syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch
+
+" Tag names.
+syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate cfbreak cfcache
+syn keyword cfTagName contained cfcalendar cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection
+syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory cfdocument
+syn keyword cfTagName contained cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror cfexecute
+syn keyword cfTagName contained cfexit cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid
+syn keyword cfTagName contained cfgridcolumn cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif
+syn keyword cfTagName contained cfimport cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
+syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout cfloop cfmail
+syn keyword cfTagName contained cfmailparam cfmailpart cfmodule cfNTauthenticate cfobject cfobjectcache
+syn keyword cfTagName contained cfoutput cfparam cfpop cfprocessingdirective cfprocparam cfprocresult
+syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow
+syn keyword cfTagName contained cfreturn cfsavecontent cfschedule cfscript cfsearch cfselect cfset cfsetting
+syn keyword cfTagName contained cfsilent cfslider cfstoredproc cfswitch cftable cftextarea cfthrow cftimer
+syn keyword cfTagName contained cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx cfxml
+
+" Tag parameters.
+syn keyword cfArg contained abort accept access accessible action addnewline addtoken addtoken agentname
+syn keyword cfArg contained align appendkey appletsource application applicationtimeout applicationtoken
+syn keyword cfArg contained archive argumentcollection arguments asciiextensionlist attachmentpath
+syn keyword cfArg contained attributecollection attributes attributes autowidth backgroundcolor
+syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname blockfactor body bold
+syn keyword cfArg contained border branch cachedafter cachedwithin casesensitive categories category
+syn keyword cfArg contained categorytree cc cfsqltype charset chartheight chartwidth checked class
+syn keyword cfArg contained clientmanagement clientstorage codebase colheaderalign colheaderbold
+syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders colheadertextcolor
+syn keyword cfArg contained collection colorlist colspacing columns completepath component condition
+syn keyword cfArg contained connection contentid context contextbytes contexthighlightbegin
+syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria custom1 custom2
+syn keyword cfArg contained custom3 custom4 data dataalign databackgroundcolor datacollection
+syn keyword cfArg contained datalabelstyle datasource date daynames dbname dbserver dbtype dbvarname debug
+syn keyword cfArg contained default delete deletebutton deletefile delimiter delimiters description
+syn keyword cfArg contained destination detail directory disabled display displayname disposition dn domain
+syn keyword cfArg contained enablecab enablecfoutputonly enabled encoded encryption enctype enddate
+syn keyword cfArg contained endrange endrow endtime entry errorcode exception existing expand expires
+syn keyword cfArg contained expireurl expression extendedinfo extends extensions external failifexists
+syn keyword cfArg contained failto file filefield filename filter firstdayofweek firstrowasheaders font
+syn keyword cfArg contained fontbold fontembed fontitalic fontsize foregroundcolor format formfields
+syn keyword cfArg contained formula from generateuniquefilenames getasbinary grid griddataalign gridlines
+syn keyword cfArg contained groovecolor group groupcasesensitive header headeralign headerbold headerfont
+syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor height highlighthref
+syn keyword cfArg contained hint href hrefkey hscroll hspace htmltable id idletimeout img imgopen imgstyle
+syn keyword cfArg contained index inline input insert insertbutton interval isolation italic item
+syn keyword cfArg contained itemcolumn key keyonly label labelformat language list listgroups locale
+syn keyword cfArg contained localfile log loginstorage lookandfeel mailerid mailto marginbottom marginleft
+syn keyword cfArg contained marginright marginright margintop markersize markerstyle mask maxlength maxrows
+syn keyword cfArg contained message messagenumber method mimeattach mimetype mode modifytype monthnames
+syn keyword cfArg contained multipart multiple name namecomplict nameconflict namespace new newdirectory
+syn keyword cfArg contained notsupported null numberformat object omit onchange onclick onerror onkeydown
+syn keyword cfArg contained onkeyup onload onmousedown onmouseup onreset onsubmit onvalidate operation
+syn keyword cfArg contained orderby orientation output outputfile overwrite ownerpassword pageencoding
+syn keyword cfArg contained pageheight pagetype pagewidth paintstyle param_1 param_2 param_3 param_4
+syn keyword cfArg contained param_5 parent passive passthrough password path pattern permissions picturebar
+syn keyword cfArg contained pieslicestyle port porttypename prefix preloader preservedata previouscriteria
+syn keyword cfArg contained procedure protocol provider providerdsn proxybypass proxypassword proxyport
+syn keyword cfArg contained proxyserver proxyuser publish query queryasroot queryposition range rebind
+syn keyword cfArg contained recurse redirect referral refreshlabel remotefile replyto report requesttimeout
+syn keyword cfArg contained required reset resolveurl result resultset retrycount returnasbinary returncode
+syn keyword cfArg contained returntype returnvariable roles rowheaderalign rowheaderbold rowheaderfont
+syn keyword cfArg contained rowheaderfontsize rowheaderitalic rowheaders rowheadertextcolor rowheaderwidth
+syn keyword cfArg contained rowheight scale scalefrom scaleto scope scriptprotect scriptsrc secure
+syn keyword cfArg contained securitycontext select selectcolor selected selecteddate selectedindex
+syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement server serviceport
+syn keyword cfArg contained serviceportname sessionmanagement sessiontimeout setclientcookies setcookie
+syn keyword cfArg contained setdomaincookies show3d showborder showdebugoutput showerror showlegend
+syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort sortascendingbutton
+syn keyword cfArg contained sortcontrol sortdescendingbutton sortxaxis source spoolenable sql src start
+syn keyword cfArg contained startdate startrange startrow starttime status statuscode statustext step
+syn keyword cfArg contained stoponerror style subject suggestions suppresswhitespace tablename tableowner
+syn keyword cfArg contained tablequalifier taglib target task template text textcolor textqualifier
+syn keyword cfArg contained thread throwonerror throwonfailure throwontimeout time timeout timespan tipbgcolor tipstyle
+syn keyword cfArg contained title to tooltip top toplevelvariable transfermode type uid unit url urlpath
+syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate validateat value
+syn keyword cfArg contained valuecolumn values valuesdelimiter valuesdisplay var variable vertical visible
+syn keyword cfArg contained vscroll vspace webservice width wmode wraptext wsdlfile xaxistitle xaxistype
+syn keyword cfArg contained xoffset yaxistitle yaxistype yoffset
+
+" ColdFusion Functions.
+syn keyword cfFunctionName contained Abs GetFunctionList Max ACos GetGatewayHelper Mid AddSOAPRequestHeader
+syn keyword cfFunctionName contained GetHttpRequestData Min AddSOAPResponseHeader GetHttpTimeString Minute
+syn keyword cfFunctionName contained ArrayAppend GetLocale Month ArrayAvg GetLocaleDisplayName MonthAsString
+syn keyword cfFunctionName contained ArrayClear GetMetaData Now ArrayDeleteAt GetMetricData NumberFormat
+syn keyword cfFunctionName contained ArrayInsertAt GetPageContext ParagraphFormat ArrayIsEmpty GetProfileSections
+syn keyword cfFunctionName contained ParseDateTime ArrayLen GetProfileString Pi ArrayMax GetSOAPRequest
+syn keyword cfFunctionName contained PreserveSingleQuotes ArrayMin GetSOAPRequestHeader Quarter ArrayNew
+syn keyword cfFunctionName contained GetSOAPResponse QueryAddColumn ArrayPrepend GetSOAPResponseHeader QueryAddRow
+syn keyword cfFunctionName contained ArrayResize GetTempDirectory QueryNew ArraySet GetTempFile QuerySetCell
+syn keyword cfFunctionName contained ArraySort GetTickCount QuotedValueList ArraySum GetTimeZoneInfo Rand ArraySwap
+syn keyword cfFunctionName contained GetToken Randomize ArrayToList Hash RandRange Asc Hour REFind ASin
+syn keyword cfFunctionName contained HTMLCodeFormat REFindNoCase Atn HTMLEditFormat ReleaseComObject BinaryDecode
+syn keyword cfFunctionName contained IIf RemoveChars BinaryEncode IncrementValue RepeatString BitAnd InputBaseN
+syn keyword cfFunctionName contained Replace BitMaskClear Insert ReplaceList BitMaskRead Int ReplaceNoCase
+syn keyword cfFunctionName contained BitMaskSet IsArray REReplace BitNot IsBinary REReplaceNoCase BitOr IsBoolean
+syn keyword cfFunctionName contained Reverse BitSHLN IsCustomFunction Right BitSHRN IsDate RJustify BitXor
+syn keyword cfFunctionName contained IsDebugMode Round Ceiling IsDefined RTrim CharsetDecode IsLeapYear Second
+syn keyword cfFunctionName contained CharsetEncode IsNumeric SendGatewayMessage Chr IsNumericDate SetEncoding
+syn keyword cfFunctionName contained CJustify IsObject SetLocale Compare IsQuery SetProfileString CompareNoCase
+syn keyword cfFunctionName contained IsSimpleValue SetVariable Cos IsSOAPRequest Sgn CreateDate IsStruct Sin
+syn keyword cfFunctionName contained CreateDateTime IsUserInRole SpanExcluding CreateObject IsValid SpanIncluding
+syn keyword cfFunctionName contained CreateODBCDate IsWDDX Sqr CreateODBCDateTime IsXML StripCR CreateODBCTime
+syn keyword cfFunctionName contained IsXmlAttribute StructAppend CreateTime IsXmlDoc StructClear CreateTimeSpan
+syn keyword cfFunctionName contained IsXmlElem StructCopy CreateUUID IsXmlNode StructCount DateAdd IsXmlRoot
+syn keyword cfFunctionName contained StructDelete DateCompare JavaCast StructFind DateConvert JSStringFormat
+syn keyword cfFunctionName contained StructFindKey DateDiff LCase StructFindValue DateFormat Left StructGet
+syn keyword cfFunctionName contained DatePart Len StructInsert Day ListAppend StructIsEmpty DayOfWeek
+syn keyword cfFunctionName contained ListChangeDelims StructKeyArray DayOfWeekAsString ListContains StructKeyExists
+syn keyword cfFunctionName contained DayOfYear ListContainsNoCase StructKeyList DaysInMonth ListDeleteAt StructNew
+syn keyword cfFunctionName contained DaysInYear ListFind StructSort DE ListFindNoCase StructUpdate DecimalFormat
+syn keyword cfFunctionName contained ListFirst Tan DecrementValue ListGetAt TimeFormat Decrypt ListInsertAt
+syn keyword cfFunctionName contained ToBase64 DeleteClientVariable ListLast ToBinary DirectoryExists ListLen
+syn keyword cfFunctionName contained ToScript DollarFormat ListPrepend ToString Duplicate ListQualify Trim Encrypt
+syn keyword cfFunctionName contained ListRest UCase Evaluate ListSetAt URLDecode Exp ListSort URLEncodedFormat
+syn keyword cfFunctionName contained ExpandPath ListToArray URLSessionFormat FileExists ListValueCount Val Find
+syn keyword cfFunctionName contained ListValueCountNoCase ValueList FindNoCase LJustify Week FindOneOf Log Wrap
+syn keyword cfFunctionName contained FirstDayOfMonth Log10 WriteOutput Fix LSCurrencyFormat XmlChildPos FormatBaseN
+syn keyword cfFunctionName contained LSDateFormat XmlElemNew GetTempDirectory LSEuroCurrencyFormat XmlFormat
+syn keyword cfFunctionName contained GetAuthUser LSIsCurrency XmlGetNodeType GetBaseTagData LSIsDate XmlNew
+syn keyword cfFunctionName contained GetBaseTagList LSIsNumeric XmlParse GetBaseTemplatePath LSNumberFormat
+syn keyword cfFunctionName contained XmlSearch GetClientVariablesList LSParseCurrency XmlTransform
+syn keyword cfFunctionName contained GetCurrentTemplatePath LSParseDateTime XmlValidate GetDirectoryFromPath
+syn keyword cfFunctionName contained LSParseEuroCurrency Year GetEncoding LSParseNumber YesNoFormat GetException
+syn keyword cfFunctionName contained LSTimeFormat GetFileFromPath LTrim
+
+syn cluster htmlTagNameCluster add=cfTagName
+syn cluster htmlArgCluster add=cfArg,cfHashRegion,cfScope
+syn cluster htmlPreproc add=cfHashRegion
+
+syn cluster cfExpressionCluster contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool
+
+" Evaluation; skip strings ( this helps with cases like nested IIf() )
+syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contains=@cfExpressionCluster,cfScriptParenError
+
+" <cfset>, <cfif>, <cfelseif>, <cfreturn> are analogous to hashmarks (implicit evaluation) and has 'var'
+syn region cfSetRegion start="<cfset " start="<cfreturn " start="<cfelseif " start="<cfif " end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptType
+syn region cfSetLHSRegion contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end=" " keepend contains=cfTagName,htmlTag
+syn match cfSetTagEnd contained '>'
+
+" CF comments: similar to SGML comments
+syn region cfComment start='<!---' end='--->' keepend contains=cfCommentTodo
+syn keyword cfCommentTodo contained TODO FIXME XXX TBD WTF
+
+" CFscript
+syn match cfScriptLineComment contained "\/\/.*$" contains=cfCommentTodo
+syn region cfScriptComment contained start="/\*" end="\*/" contains=cfCommentTodo
+" in CF, quotes are escaped by doubling
+syn region cfScriptStringD contained start=+"+ skip=+\\\\\|""+ end=+"+ extend contains=@htmlPreproc,cfHashRegion
+syn region cfScriptStringS contained start=+'+ skip=+\\\\\|''+ end=+'+ extend contains=@htmlPreproc,cfHashRegion
+syn match cfScriptNumber contained "-\=\<\d\+L\=\>"
+syn keyword cfScriptConditional contained if else
+syn keyword cfScriptRepeat contained while for in
+syn keyword cfScriptBranch contained break switch case try catch continue
+syn keyword cfScriptFunction contained function
+syn keyword cfScriptType contained var
+syn match cfScriptBraces contained "[{}]"
+syn keyword cfScriptStatement contained return
+
+syn cluster cfScriptCluster contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,cfScriptType,@cfExpressionCluster,cfScriptStatement
+
+" Errors caused by wrong parenthesis; skip strings
+syn region cfScriptParen contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster
+syn match cfScrParenError contained +)+
+
+syn region cfscriptBlock matchgroup=NONE start="<cfscript>" end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError
+syn region cfscriptTag contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag
+
+" Define the default highlighting.
+if version >= 508 || !exists("did_cf_syn_inits")
+ if version < 508
+ let did_cf_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink cfTagName Statement
+ HiLink cfArg Type
+ HiLink cfFunctionName Function
+ HiLink cfHashRegion PreProc
+ HiLink cfComment Comment
+ HiLink cfCommentTodo Todo
+ HiLink cfOperator Operator
+ HiLink cfOperatorMatch Operator
+ HiLink cfScope Title
+ HiLink cfBool Constant
+
+ HiLink cfscriptBlock Special
+ HiLink cfscriptTag htmlTag
+ HiLink cfSetRegion PreProc
+ HiLink cfSetLHSRegion htmlTag
+ HiLink cfSetTagEnd htmlTag
+
+ HiLink cfScriptLineComment Comment
+ HiLink cfScriptComment Comment
+ HiLink cfScriptStringS String
+ HiLink cfScriptStringD String
+ HiLink cfScriptNumber cfScriptValue
+ HiLink cfScriptConditional Conditional
+ HiLink cfScriptRepeat Repeat
+ HiLink cfScriptBranch Conditional
+ HiLink cfScriptType Type
+ HiLink cfScriptStatement Statement
+ HiLink cfScriptBraces Function
+ HiLink cfScriptFunction Function
+ HiLink cfScriptError Error
+ HiLink cfScrParenError cfScriptError
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "cf"
+
+" vim: ts=8 sw=2
diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim
index c24b299..269a9f8 100644
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -2,7 +2,7 @@
" Language: Cascading Style Sheets
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/css.vim
-" Last Change: 2004 Mar 30
+" Last Change: 2005 Nov 23
" CSS2 by Nikolai Weibull
" Full CSS2, HTML4 support by Yeti
@@ -38,7 +38,12 @@
syn match cssSelectorOp2 "[~|]\?=" contained
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
+try
syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
+catch /^.*/
+syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
+endtry
+
syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
@@ -270,5 +275,6 @@
unlet main_syntax
endif
+
" vim: ts=8
diff --git a/runtime/syntax/d.vim b/runtime/syntax/d.vim
index 1b4995e..2ab9b25 100644
--- a/runtime/syntax/d.vim
+++ b/runtime/syntax/d.vim
@@ -1,9 +1,12 @@
-" Vim syntax file for the D programming language (version 0.116).
+" Vim syntax file for the D programming language (version 0.137).
"
" Language: D
" Maintainer: Jason Mills<jmills@cs.mun.ca>
-" Last Change: 2005 Mar 09
-" Version: 0.12
+" Last Change: 2005 Oct 29
+" Version: 0.14
+"
+" Please email me with bugs, comments, and suggestion. Put vim in the subject
+" to ensure the email will not be marked has spam.
"
" Options:
" d_comment_strings - set to highlight strings and numbers in comments
@@ -21,6 +24,8 @@
"
" - Mark contents of the asm statement body as special
"
+" - Highlight the string prefix r and and postfixes c,w,d
+"
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -30,7 +35,7 @@
" Keyword definitions
"
syn keyword dExternal import package module extern
-syn keyword dConditional if else switch
+syn keyword dConditional if else switch iftype
syn keyword dBranch goto break continue
syn keyword dRepeat while for do foreach
syn keyword dBoolean true false
@@ -41,7 +46,7 @@
syn keyword dOperator new delete typeof typeid cast align is
syn keyword dOperator this super
if exists("d_hl_operator_overload")
- syn keyword dOpOverload opNeg opCom opPostInc opPostDec opAdd opSub opSub_r
+ syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd opSub opSub_r
syn keyword dOpOverload opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor
syn keyword dOpOverload opShl opShl_r opShr opShr_r opUShr opUShr_r opCat
syn keyword dOpOverload opCat_r opEquals opEquals opCmp opCmp opCmp opCmp
@@ -49,7 +54,7 @@
syn keyword dOpOverload opModAssign opAndAssign opOrAssign opXorAssign
syn keyword dOpOverload opShlAssign opShrAssign opUShrAssign opCatAssign
syn keyword dOpOverload opIndex opIndexAssign opCall opSlice opPos
- syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r
+ syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r
endif
syn keyword dType ushort int uint long ulong float
syn keyword dType void byte ubyte double bit char wchar ucent cent
@@ -135,7 +140,7 @@
"
syn region dString start=+"+ end=+"+ contains=dEscSequence,@Spell
syn region dRawString start=+`+ skip=+\\`+ end=+`+ contains=@Spell
-syn region dRawString start=+r"+ skip=+\\"+ end=+"+ contains=@Spell
+"syn region dRawString start=+r"+ skip=+\\"+ end=+"+ contains=@Spell
syn region dHexString start=+x"+ skip=+\\"+ end=+"+
" Numbers
@@ -220,4 +225,4 @@
let b:current_syntax = "d"
-" vim: ts=8
+" vim: ts=8 noet
diff --git a/runtime/syntax/eruby.vim b/runtime/syntax/eruby.vim
index 59f042d..c3cc435 100644
--- a/runtime/syntax/eruby.vim
+++ b/runtime/syntax/eruby.vim
@@ -2,14 +2,9 @@
" Language: eRuby
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
" Info: $Id$
-" URL: http://vim-ruby.sourceforge.net
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
+" ----------------------------------------------------------------------------
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 030e9ec..c6363d9 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -2,7 +2,7 @@
" Language: Java
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/java.vim
-" Last Change: 2004 Nov 12
+" Last Change: 2005 Nov 04
" Please check :help java.vim for comments on some of the options available.
@@ -58,8 +58,11 @@
syn keyword javaClassDecl enum
syn match javaClassDecl "^class\>"
syn match javaClassDecl "[^.]\s*\<class\>"ms=s+1
+syn match javaAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
+syn match javaClassDecl "@interface\>"
syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite
syn match javaUserLabelRef "\k\+" contained
+syn match javaVarArg "\.\.\."
syn keyword javaScopeDecl public protected private abstract
if exists("java_highlight_java_lang_ids") || exists("java_highlight_java_lang") || exists("java_highlight_all")
@@ -130,7 +133,7 @@
endif
" The following cluster contains all java groups except the contained ones
-syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject
+syn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg
" Comments
@@ -283,6 +286,7 @@
let did_java_syn_inits = 1
endif
JavaHiLink javaFuncDef Function
+ JavaHiLink javaVarArg Function
JavaHiLink javaBraces Function
JavaHiLink javaBranch Conditional
JavaHiLink javaUserLabelRef javaUserLabel
@@ -314,6 +318,7 @@
JavaHiLink javaConstant Constant
JavaHiLink javaTypedef Typedef
JavaHiLink javaTodo Todo
+ JavaHiLink javaAnnotation PreProc
JavaHiLink javaCommentTitle SpecialComment
JavaHiLink javaDocTags Special
diff --git a/runtime/syntax/javascript.vim b/runtime/syntax/javascript.vim
index 10bf4db..9e959e1 100644
--- a/runtime/syntax/javascript.vim
+++ b/runtime/syntax/javascript.vim
@@ -1,8 +1,13 @@
" Vim syntax file
" Language: JavaScript
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
+" Updaters: Scott Shattuck (ss) <ss@technicalpursuit.com>
" URL: http://www.fleiner.com/vim/syntax/javascript.vim
-" Last Change: 2005 Jul 13
+" Changes: (ss) added keywords, reserved words, and other identifiers
+" (ss) repaired several quoting and grouping glitches
+" (ss) fixed regex parsing issue with multiple qualifiers [gi]
+" (ss) additional factoring of keywords, globals, and members
+" Last Change: 2005 Nov 12 (ss)
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -27,23 +32,33 @@
syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
-syn match javaScriptLineComment "\/\/.*$" contains=javaScriptCommentTodo
+syn match javaScriptLineComment "\/\/.*" contains=javaScriptCommentTodo
syn match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
syn region javaScriptComment start="/\*" end="\*/" contains=javaScriptCommentTodo
syn match javaScriptSpecial "\\\d\d\d\|\\."
-syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=javaScriptSpecial,@htmlPreproc
-syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=javaScriptSpecial,@htmlPreproc
+syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
+syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc
+
syn match javaScriptSpecialCharacter "'\\.'"
syn match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
-syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\?\s*$+ end=+/[gi]\?\s*[;.,)]+me=e-1 contains=@htmlPreproc oneline
-syn keyword javaScriptConditional if else
-syn keyword javaScriptRepeat while for
-syn keyword javaScriptBranch break continue switch case default
-syn keyword javaScriptOperator new in
-syn keyword javaScriptType this var const
+syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)]+me=e-1 contains=@htmlPreproc oneline
+
+syn keyword javaScriptConditional if else switch
+syn keyword javaScriptRepeat while for do in
+syn keyword javaScriptBranch break continue
+syn keyword javaScriptOperator new delete instanceof typeof
+syn keyword javaScriptType Array Boolean Date Function Number Object String RegExp
syn keyword javaScriptStatement return with
syn keyword javaScriptBoolean true false
-syn keyword javaScriptNull null
+syn keyword javaScriptNull null undefined
+syn keyword javaScriptIdentifier arguments this var
+syn keyword javaScriptLabel case default
+syn keyword javaScriptException try catch finally throw
+syn keyword javaScriptMessage alert confirm prompt status
+syn keyword javaScriptGlobal self window top parent
+syn keyword javaScriptMember document event location
+syn keyword javaScriptDeprecated escape unescape
+syn keyword javaScriptReserved abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile
if exists("javaScript_fold")
syn match javaScriptFunction "\<function\>"
@@ -56,17 +71,13 @@
setlocal foldtext=getline(v:foldstart)
else
syn keyword javaScriptFunction function
- syn match javaScriptBraces "[{}]"
+ syn match javaScriptBraces "[{}\[\]]"
+ syn match javaScriptParens "[()]"
endif
syn sync fromstart
syn sync maxlines=100
-" catch errors caused by wrong parenthesis
-syn region javaScriptParen transparent start="(" end=")" contains=javaScriptParen,javaScriptComment,javaScriptSpecial,javaScriptStringD,javaScriptStringS,javaScriptSpecialCharacter,javaScriptNumber,javaScriptRegexpString,javaScriptBoolean,javaScriptBraces,javaScriptFunction,javaScriptFunctionFold,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptBoolean,javaScriptConstant
-" syn region javaScriptParen transparent start="(" end=")" contains=javaScriptParen,javaScriptComment,javaScriptSpecial,javaScriptStringD,javaScriptStringS,javaScriptSpecialCharacter,javaScriptNumber,javaScriptRegexpString,javaScriptBoolean,javaScriptBraces
-syn match javaScrParenError ")"
-
if main_syntax == "javascript"
syn sync ccomment javaScriptComment
endif
@@ -103,6 +114,18 @@
HiLink javaScriptNull Keyword
HiLink javaScriptBoolean Boolean
HiLink javaScriptRegexpString String
+
+ HiLink javaScriptIdentifier Identifier
+ HiLink javaScriptLabel Label
+ HiLink javaScriptException Exception
+ HiLink javaScriptMessage Keyword
+ HiLink javaScriptGlobal Keyword
+ HiLink javaScriptMember Keyword
+ HiLink javaScriptDeprecated Exception
+ HiLink javaScriptReserved Keyword
+ HiLink javaScriptDebug Debug
+ HiLink javaScriptConstant Label
+
delcommand HiLink
endif
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index e47f0a1..61792d1 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -2,19 +2,13 @@
" Language: Lisp
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 12, 2005
-" Version: 16
+" Version: 17a
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
" taken from the HyperSpec
-"
-" Options:
-" g:lisp_instring : if it exists, then "(...") strings are highlighted
-" as if the contents were lisp. Useful for AutoLisp.
-" Put
-" let g:lisp_instring=1
-" into your <.vimrc> if you want this option.
+" ---------------------------------------------------------------------
" Load Once: {{{1
" For vim-version 5.x: Clear all syntax items
" For vim-version 6.x: Quit when a syntax file was already loaded
@@ -30,6 +24,7 @@
set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
endif
+" ---------------------------------------------------------------------
" Clusters: {{{1
syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
@@ -39,6 +34,7 @@
syn cluster lispListCluster contains=@lispBaseListCluster,lispString
endif
+" ---------------------------------------------------------------------
" Lists: {{{1
syn match lispSymbol contained ![^()'`,"; \t]\+!
syn match lispBarSymbol contained !|..\{-}|!
@@ -58,6 +54,7 @@
syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
endif
+" ---------------------------------------------------------------------
" Atoms: {{{1
syn match lispAtomMark "'"
syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
@@ -68,6 +65,7 @@
syn match lispAtomNmbr contained "\<\d\+"
syn match lispLeadWhite contained "^\s\+"
+" ---------------------------------------------------------------------
" Standard Lisp Functions and Macros: {{{1
syn keyword lispFunc * find-method pprint-indent
syn keyword lispFunc ** find-package pprint-linear
@@ -386,6 +384,7 @@
syn match lispFunc "\<c[ad]\+r\>"
+" ---------------------------------------------------------------------
" Lisp Keywords (modifiers): {{{1
syn keyword lispKey :abort :from-end :overwrite
syn keyword lispKey :adjustable :gensym :predicate
@@ -414,6 +413,7 @@
syn keyword lispKey :escape :output-file :version
syn keyword lispKey :external
+" ---------------------------------------------------------------------
" Standard Lisp Variables: {{{1
syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch*
syn keyword lispVar *break-on-signals* *load-print* *print-pprint-dispatch*
@@ -434,6 +434,7 @@
syn keyword lispVar *features* *print-miser-width* *terminal-io*
syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output*
+" ---------------------------------------------------------------------
" Strings: {{{1
syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+
if exists("g:lisp_instring")
@@ -441,6 +442,7 @@
syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained
endif
+" ---------------------------------------------------------------------
" Shared with Xlisp, Declarations, Macros, Functions: {{{1
syn keyword lispDecl defmacro do-all-symbols labels
syn keyword lispDecl defsetf do-external-symbols let
@@ -448,6 +450,7 @@
syn keyword lispDecl defun dotimes macrolet
syn keyword lispDecl do* flet multiple-value-bind
+" ---------------------------------------------------------------------
" Numbers: supporting integers and floating point numbers {{{1
syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
@@ -463,6 +466,7 @@
syn match lispConcat "\s\.\s"
syn match lispParenError ")"
+" ---------------------------------------------------------------------
" Comments: {{{1
syn cluster lispCommentGroup contains=lispTodo,@Spell
syn match lispComment ";.*$" contains=@lispCommentGroup
@@ -471,19 +475,16 @@
syn keyword lispTodo contained combak combak: todo todo:
syn case match
+" ---------------------------------------------------------------------
" Synchronization: {{{1
syn sync lines=100
+" ---------------------------------------------------------------------
" Define Highlighting: {{{1
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_lisp_syntax_inits")
- if version < 508
- let did_lisp_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+if version >= 508
+ command -nargs=+ HiLink hi def link <args>
HiLink lispCommentRegion lispComment
HiLink lispAtomNmbr lispNumber
@@ -508,27 +509,27 @@
if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
if &bg == "dark"
- hi hlLevel0 ctermfg=red guifg=red1
- hi hlLevel1 ctermfg=yellow guifg=orange1
- hi hlLevel2 ctermfg=green guifg=yellow1
- hi hlLevel3 ctermfg=cyan guifg=greenyellow
- hi hlLevel4 ctermfg=magenta guifg=green1
- hi hlLevel5 ctermfg=red guifg=springgreen1
- hi hlLevel6 ctermfg=yellow guifg=cyan1
- hi hlLevel7 ctermfg=green guifg=slateblue1
- hi hlLevel8 ctermfg=cyan guifg=magenta1
- hi hlLevel9 ctermfg=magenta guifg=purple1
+ hi def hlLevel0 ctermfg=red guifg=red1
+ hi def hlLevel1 ctermfg=yellow guifg=orange1
+ hi def hlLevel2 ctermfg=green guifg=yellow1
+ hi def hlLevel3 ctermfg=cyan guifg=greenyellow
+ hi def hlLevel4 ctermfg=magenta guifg=green1
+ hi def hlLevel5 ctermfg=red guifg=springgreen1
+ hi def hlLevel6 ctermfg=yellow guifg=cyan1
+ hi def hlLevel7 ctermfg=green guifg=slateblue1
+ hi def hlLevel8 ctermfg=cyan guifg=magenta1
+ hi def hlLevel9 ctermfg=magenta guifg=purple1
else
- hi hlLevel0 ctermfg=red guifg=red3
- hi hlLevel1 ctermfg=darkyellow guifg=orangered3
- hi hlLevel2 ctermfg=darkgreen guifg=orange2
- hi hlLevel3 ctermfg=blue guifg=yellow3
- hi hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
- hi hlLevel5 ctermfg=red guifg=green4
- hi hlLevel6 ctermfg=darkyellow guifg=paleturquoise3
- hi hlLevel7 ctermfg=darkgreen guifg=deepskyblue4
- hi hlLevel8 ctermfg=blue guifg=darkslateblue
- hi hlLevel9 ctermfg=darkmagenta guifg=darkviolet
+ hi def hlLevel0 ctermfg=red guifg=red3
+ hi def hlLevel1 ctermfg=darkyellow guifg=orangered3
+ hi def hlLevel2 ctermfg=darkgreen guifg=orange2
+ hi def hlLevel3 ctermfg=blue guifg=yellow3
+ hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
+ hi def hlLevel5 ctermfg=red guifg=green4
+ hi def hlLevel6 ctermfg=darkyellow guifg=paleturquoise3
+ hi def hlLevel7 ctermfg=darkgreen guifg=deepskyblue4
+ hi def hlLevel8 ctermfg=blue guifg=darkslateblue
+ hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
endif
endif
@@ -537,4 +538,5 @@
let b:current_syntax = "lisp"
+" ---------------------------------------------------------------------
" vim: ts=8 nowrap fdm=marker
diff --git a/runtime/syntax/mush.vim b/runtime/syntax/mush.vim
index 5565927..d43740b 100644
--- a/runtime/syntax/mush.vim
+++ b/runtime/syntax/mush.vim
@@ -1,7 +1,8 @@
" MUSHcode syntax file
-" Maintainer: Bek Oberin <gossamer@tertius.net.au>
-" Last updated by Rimnal on Mon Aug 20 08:28:56 MDT 2001
-
+" Maintainer: Rick Bird <nveid@nveid.com>
+" Based on vim Syntax file by: Bek Oberin <gossamer@tertius.net.au>
+" Last Updated: Fri Nov 04 20:28:15 2005
+"
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
@@ -12,57 +13,115 @@
" regular mush functions
-syntax keyword mushFunction contained abs acos add after and andflags aposs
-syntax keyword mushFunction contained asin atan before capstr cat ceil center
-syntax keyword mushFunction contained comp con conn controls convsecs convtime
-syntax keyword mushFunction contained cos default delete dist2d dist3d div e
-syntax keyword mushFunction contained edefault edit elements elock eq escape
-syntax keyword mushFunction contained exit exp extract fdiv filter first flags
-syntax keyword mushFunction contained floor fold foreach findable fullname get
-syntax keyword mushFunction contained get_eval grab gt gte hasattr hasflag
-syntax keyword mushFunction contained home idle index insert isdbref isnum
-syntax keyword mushFunction contained isword iter last lattr lcon lcstr
-syntax keyword mushFunction contained ldelete left lexits ljust ln lnum loc
-syntax keyword mushFunction contained locate lock log lpos lt lte lwho map
-syntax keyword mushFunction contained match matchall max member merge mid min
-syntax keyword mushFunction contained mix mod money mudname mul munge name
-syntax keyword mushFunction contained nearby neq next not num obj objeval
-syntax keyword mushFunction contained objmem or orflags owner parent parse pi
-syntax keyword mushFunction contained ports pos poss power r rand remove repeat
-syntax keyword mushFunction contained replace rest reverse revwords right
-syntax keyword mushFunction contained rjust rloc room round s scramble search
-syntax keyword mushFunction contained secs secure setdiff setinter setq
-syntax keyword mushFunction contained setunion shuffle sign sin sort sortby
-syntax keyword mushFunction contained space splice sqrt squish starttime stats
-syntax keyword mushFunction contained strlen strmatch sub subj switch tan time
-syntax keyword mushFunction contained trim trunc type u ucstr udefault ulocal
-syntax keyword mushFunction contained v version visible where wordpos words
-syntax keyword mushFunction contained xcon xor
-" only highligh functions when they have an in-bracket immediately after
-syntax match mushFunctionBrackets "\i\I*(" contains=mushFunction
+syntax keyword mushFunction contained @@ abs accent accname acos add after align
+syntax keyword mushFunction contained allof alphamax alphamin and andflags
+syntax keyword mushFunction contained andlflags andlpowers andpowers ansi aposs art
+syntax keyword mushFunction contained asin atan atan2 atrlock attrcnt band baseconv
+syntax keyword mushFunction contained beep before blank2tilde bnand bnot bor bound
+syntax keyword mushFunction contained brackets break bxor cand cansee capstr case
+syntax keyword mushFunction contained caseall cat ceil center checkpass children
+syntax keyword mushFunction contained chr clone cmds cnetpost comp con config conn
+syntax keyword mushFunction contained controls convsecs convtime convutcsecs cor
+syntax keyword mushFunction contained cos create ctime ctu dec decrypt default
+syntax keyword mushFunction contained delete die dig digest dist2d dist3d div
+syntax keyword mushFunction contained division divscope doing downdiv dynhelp e
+syntax keyword mushFunction contained edefault edit element elements elist elock
+syntax keyword mushFunction contained emit empire empower encrypt endtag entrances
+syntax keyword mushFunction contained eq escape etimefmt eval exit exp extract fdiv
+syntax keyword mushFunction contained filter filterbool findable first firstof
+syntax keyword mushFunction contained flags flip floor floordiv fmod fold
+syntax keyword mushFunction contained folderstats followers following foreach
+syntax keyword mushFunction contained fraction fullname functions get get_eval grab
+syntax keyword mushFunction contained graball grep grepi gt gte hasattr hasattrp
+syntax keyword mushFunction contained hasattrpval hasattrval hasdivpower hasflag
+syntax keyword mushFunction contained haspower haspowergroup hastype height hidden
+syntax keyword mushFunction contained home host hostname html idle idlesecs
+syntax keyword mushFunction contained idle_average idle_times idle_total if ifelse
+syntax keyword mushFunction contained ilev iname inc index indiv indivall insert
+syntax keyword mushFunction contained inum ipaddr isdaylight isdbref isint isnum
+syntax keyword mushFunction contained isword itemize items iter itext last lattr
+syntax keyword mushFunction contained lcon lcstr ldelete ldivisions left lemit
+syntax keyword mushFunction contained level lexits lflags link list lit ljust lmath
+syntax keyword mushFunction contained ln lnum loc localize locate lock loctree log
+syntax keyword mushFunction contained lparent lplayers lports lpos lsearch lsearchr
+syntax keyword mushFunction contained lstats lt lte lthings lvcon lvexits lvplayers
+syntax keyword mushFunction contained lvthings lwho mail maildstats mailfrom
+syntax keyword mushFunction contained mailfstats mailstats mailstatus mailsubject
+syntax keyword mushFunction contained mailtime map match matchall max mean median
+syntax keyword mushFunction contained member merge mid min mix mod modulo modulus
+syntax keyword mushFunction contained money mtime mudname mul munge mwho name nand
+syntax keyword mushFunction contained nattr ncon nearby neq nexits next nor not
+syntax keyword mushFunction contained nplayers nsemit nslemit nsoemit nspemit
+syntax keyword mushFunction contained nsremit nszemit nthings null num nvcon
+syntax keyword mushFunction contained nvexits nvplayers nvthings obj objeval objid
+syntax keyword mushFunction contained objmem oemit ooref open or ord orflags
+syntax keyword mushFunction contained orlflags orlpowers orpowers owner parent
+syntax keyword mushFunction contained parse pcreate pemit pi pickrand playermem
+syntax keyword mushFunction contained pmatch poll ports pos poss power powergroups
+syntax keyword mushFunction contained powers powover program prompt pueblo quitprog
+syntax keyword mushFunction contained quota r rand randword recv regedit regeditall
+syntax keyword mushFunction contained regeditalli regediti regmatch regmatchi
+syntax keyword mushFunction contained regrab regraball regraballi regrabi regrep
+syntax keyword mushFunction contained regrepi remainder remit remove repeat replace
+syntax keyword mushFunction contained rest restarts restarttime reswitch
+syntax keyword mushFunction contained reswitchall reswitchalli reswitchi reverse
+syntax keyword mushFunction contained revwords right rjust rloc rnum room root
+syntax keyword mushFunction contained round s scan scramble search secs secure sent
+syntax keyword mushFunction contained set setdiff setinter setq setr setunion sha0
+syntax keyword mushFunction contained shl shr shuffle sign signal sin sort sortby
+syntax keyword mushFunction contained soundex soundlike soundslike space spellnum
+syntax keyword mushFunction contained splice sql sqlescape sqrt squish ssl
+syntax keyword mushFunction contained starttime stats stddev step strcat strinsert
+syntax keyword mushFunction contained stripaccents stripansi strlen strmatch
+syntax keyword mushFunction contained strreplace sub subj switch switchall t table
+syntax keyword mushFunction contained tag tagwrap tan tel terminfo textfile
+syntax keyword mushFunction contained tilde2blank time timefmt timestring tr
+syntax keyword mushFunction contained trigger trim trimpenn trimtiny trunc type u
+syntax keyword mushFunction contained ucstr udefault ufun uldefault ulocal updiv
+syntax keyword mushFunction contained utctime v vadd val valid vcross vdim vdot
+syntax keyword mushFunction contained version visible vmag vmax vmin vmul vsub
+syntax keyword mushFunction contained vtattr vtcount vtcreate vtdestroy vtlcon
+syntax keyword mushFunction contained vtloc vtlocate vtmaster vtname vtref vttel
+syntax keyword mushFunction contained vunit wait where width wipe wordpos words
+syntax keyword mushFunction contained wrap xcon xexits xget xor xplayers xthings
+syntax keyword mushFunction contained xvcon xvexits xvplayers xvthings zemit zfun
+syntax keyword mushFunction contained zmwho zone zwho
+
+" only highligh functions when they have an in-bracket immediately after
+syntax match mushFunctionBrackets "\i*(" contains=mushFunction
+"
" regular mush commands
-syntax keyword mushAtCommandList contained @alias @chown @clone @create
-syntax keyword mushAtCommandList contained @decompile @destroy @doing @dolist
-syntax keyword mushAtCommandList contained @drain @edit @emit @entrances @femit
-syntax keyword mushAtCommandList contained @force @fpose @fsay @halt @last
-syntax keyword mushAtCommandList contained @link @list @listmotd @lock @mudwho
-syntax keyword mushAtCommandList contained @mvattr @name @notify @oemit @parent
-syntax keyword mushAtCommandList contained @password @pemit @ps @quota @robot
-syntax keyword mushAtCommandList contained @search @set @stats @sweep @switch
-syntax keyword mushAtCommandList contained @teleport @trigger @unlink @unlock
-syntax keyword mushAtCommandList contained @verb @wait @wipe
+syntax keyword mushAtCommandList contained @ALLHALT @ALLQUOTA @ASSERT @ATRCHOWN @ATRLOCK @ATTRIBUTE @BOOT
+syntax keyword mushAtCommandList contained @BREAK @CEMIT @CHANNEL @CHAT @CHOWN @CHOWNALL @CHZONE @CHZONEALL
+syntax keyword mushAtCommandList contained @CLOCK @CLONE @COBJ @COMMAND @CONFIG @CPATTR @CREATE @CRPLOG @DBCK
+syntax keyword mushAtCommandList contained @DECOMPILE @DESTROY @DIG @DISABLE @DIVISION @DOING @DOLIST @DRAIN
+syntax keyword mushAtCommandList contained @DUMP @EDIT @ELOCK @EMIT @EMPOWER @ENABLE @ENTRANCES @EUNLOCK @FIND
+syntax keyword mushAtCommandList contained @FIRSTEXIT @FLAG @FORCE @FUNCTION @EDIT @GREP @HALT @HIDE @HOOK @KICK
+syntax keyword mushAtCommandList contained @LEMIT @LEVEL @LINK @LIST @LISTMOTD @LOCK @LOG @LOGWIPE @LSET @MAIL @MALIAS
+syntax keyword mushAtCommandList contained @MAP @MOTD @MVATTR @NAME @NEWPASSWORD @NOTIFY @NSCEMIT @NSEMIT @NSLEMIT
+syntax keyword mushAtCommandList contained @NSOEMIT @NSPEMIT @NSPEMIT @NSREMIT @NSZEMIT @NUKE @OEMIT @OPEN @PARENT @PASSWORD
+syntax keyword mushAtCommandList contained @PCREATE @PEMIT @POLL @POOR @POWERLEVEL @PROGRAM @PROMPT @PS @PURGE @QUOTA
+syntax keyword mushAtCommandList contained @READCACHE @RECYCLE @REJECTMOTD @REMIT @RESTART @SCAN @SEARCH @SELECT @SET
+syntax keyword mushAtCommandList contained @SHUTDOWN @SITELOCK @SNOOP @SQL @SQUOTA @STATS @SWITCH @SWEEP @SWITCH @TELEPORT
+syntax keyword mushAtCommandList contained @TRIGGER @ULOCK @UNDESTROY @UNLINK @UNLOCK @UNRECYCLE @UPTIME @UUNLOCK @VERB
+syntax keyword mushAtCommandList contained @VERSION @WAIT @WALL @WARNINGS @WCHECK @WHEREIS @WIPE @ZCLONE @ZEMIT
syntax match mushCommand "@\i\I*" contains=mushAtCommandList
-syntax keyword mushCommand drop enter examine get give goto help inventory
-syntax keyword mushCommand kill leave look news page pose say score use
-syntax keyword mushCommand version whisper DOING LOGOUT OUTPUTPREFIX
-syntax keyword mushCommand OUTPUTSUFFIX QUIT SESSION WHO
+syntax keyword mushCommand AHELP ANEWS ATTRIB_SET BRIEF BRIEF BUY CHANGES DESERT
+syntax keyword mushCommand DISMISS DROP EMPTY ENTER EXAMINE FOLLOW GET GIVE GOTO
+syntax keyword mushCommand HELP HUH_COMMAND INVENTORY INVENTORY LOOK LEAVE LOOK
+syntax keyword mushCommand GOTO NEWS PAGE PAGE POSE RULES SAY SCORE SEMIPOSE
+syntax keyword mushCommand SPECIALNEWS TAKE TEACH THINK UNFOLLOW USE WHISPER WHISPER
+syntax keyword mushCommand WARN_ON_MISSING WHISPER WITH
syntax match mushSpecial "\*\|!\|=\|-\|\\\|+"
syntax match mushSpecial2 contained "\*"
+syn region mushString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=mushSpecial,mushSpecial2,@Spell
+
+
syntax match mushIdentifier "&[^ ]\+"
syntax match mushVariable "%r\|%t\|%cr\|%[A-Za-z0-9]\+\|%#\|##\|here"
@@ -73,9 +132,32 @@
" A comment line starts with a or # or " at the start of the line
" or an @@
syntax keyword mushTodo contained TODO FIXME XXX
-syntax match mushComment +^\s*@@.*$+ contains=mushTodo
-syntax match mushComment +^".*$+ contains=mushTodo
-syntax match mushComment +^#.*$+ contains=mushTodo
+syntax cluster mushCommentGroup contains=mushTodo
+syntax match mushComment "^\s*@@.*$" contains=mushTodo
+syntax match mushComment "^#[^define|^ifdef|^else|^pragma|^ifndef|^echo|^elif|^undef|^warning].*$" contains=mushTodo
+syntax match mushComment "^#$" contains=mushTodo
+syntax region mushComment matchgroup=mushCommentStart start="/@@" end="@@/" contains=@mushCommentGroup,mushCommentStartError,mushCommentString,@Spell
+syntax region mushCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+@@/+me=s-1 contains=mushCommentSkip
+syntax match mushCommentSkip contained "^\s*@@\($\|\s\+\)"
+
+
+syntax match mushCommentStartError display "/@@"me=e-1 contained
+
+" syntax match mushComment +^".*$+ contains=mushTodo
+" Work on this one
+" syntax match mushComment +^#.*$+ contains=mushTodo
+
+syn region mushPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=mushComment
+syn match mushPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
+
+syn cluster mushPreProcGroup contains=mushPreCondit,mushIncluded,mushInclude,mushDefine,mushSpecial,mushString,mushCommentSkip,mushCommentString,@mushCommentGroup,mushCommentStartError
+
+syn region mushIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match mushIncluded display contained "<[^>]*>"
+syn match mushInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=mushIncluded
+syn region mushDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@mushPreProcGroup,@Spell
+syn region mushPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@mushPreProcGroup
+
syntax region mushFuncBoundaries start="\[" end="\]" contains=mushFunction,mushFlag,mushAttributes,mushNumber,mushCommand,mushVariable,mushSpecial2
@@ -114,7 +196,6 @@
" The default methods for highlighting. Can be overridden later
HiLink mushAttribute Constant
HiLink mushCommand Function
- HiLink mushComment Comment
HiLink mushNumber Number
HiLink mushSetting PreProc
HiLink mushFunction Statement
@@ -123,6 +204,20 @@
HiLink mushTodo Todo
HiLink mushFlag Special
HiLink mushIdentifier Identifier
+ HiLink mushDefine Macro
+ HiLink mushPreProc PreProc
+ HiLink mushPreProcGroup PreProc
+ HiLink mushPreCondit PreCondit
+ HiLink mushIncluded cString
+ HiLink mushInclude Include
+
+
+
+" Comments
+ HiLink mushCommentStart mushComment
+ HiLink mushComment Comment
+ HiLink mushCommentString mushString
+
delcommand HiLink
endif
diff --git a/runtime/syntax/perl.vim b/runtime/syntax/perl.vim
index 8cd40b4..ff566e1 100644
--- a/runtime/syntax/perl.vim
+++ b/runtime/syntax/perl.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Perl
" Maintainer: Nick Hibma <n_hibma@van-laarhoven.org>
-" Last Change: 2005 Oct 06
+" Last Change: 2005 October 18
" Location: http://www.van-laarhoven.org/vim/syntax/perl.vim
"
" Please download most recent version first before mailing
@@ -47,18 +47,18 @@
syn include @Pod syntax/pod.vim
unlet b:current_syntax
if exists("perl_fold")
- syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend fold
+ syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold
else
- syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend
+ syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend
endif
else
" Use only the bare minimum of rules
if exists("perl_fold")
- syn region perlPOD start="^=[a-z]" end="^=cut" fold
+ syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Spell fold
else
- syn region perlPOD start="^=[a-z]" end="^=cut"
+ syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Spell
endif
endif
@@ -87,8 +87,8 @@
endif
syn keyword perlOperator defined undef and or not bless ref
if exists("perl_fold")
- " if BEGIN/END would be a keyword the perlBEGINENDFold does not work
- syn match perlControl "\<BEGIN\|CHECK\|INIT\|END\>" contained
+ " if BEGIN/END is a keyword the perlBEGINENDFold does not work
+ syn match perlControl "\<BEGIN\|END\|CHECK\|INIT\>" contained
else
syn keyword perlControl BEGIN END CHECK INIT
endif
@@ -108,8 +108,8 @@
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
syn keyword perlStatementFlow caller die dump eval exit wantarray
syn keyword perlStatementInclude require
-syn match perlStatementInclude "\(use\|no\)\s\+\(integer\>\|strict\>\|lib\>\|sigtrap\>\|subs\>\|vars\>\|warnings\>\|utf8\>\|byte\>\)\="
-syn keyword perlStatementScope import
+syn match perlStatementInclude "\<\(use\|no\)\s\+\(\(attributes\|autouse\|base\|big\(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\|fields\|filetest\|if\|integer\|less\|lib\|locale\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\(::shared\)\=\|utf8\|vars\|vmsish\|warnings\(::register\)\=\)\>\)\="
+
syn keyword perlStatementProc alarm exec fork getpgrp getppid getpriority kill pipe setpgrp setpriority sleep system times wait waitpid
syn keyword perlStatementSocket accept bind connect getpeername getsockname getsockopt listen recv send setsockopt shutdown socket socketpair
syn keyword perlStatementIPC msgctl msgget msgrcv msgsnd semctl semget semop shmctl shmget shmread shmwrite
@@ -118,8 +118,11 @@
syn keyword perlStatementTime gmtime localtime time times
syn keyword perlStatementMisc warn formline reset scalar delete prototype lock
-syn keyword perlStatementNew new
-
+if !exists("perl_no_semi_keywords")
+ syn keyword perlStatementScope import
+ syn keyword perlStatementNew new
+ syn keyword perlStatementCarp carp confess croak
+endif
syn keyword perlTodo TODO TBD FIXME XXX contained
" Perl Identifiers.
@@ -134,14 +137,16 @@
" Special variables first ($^A, ...) and ($|, $', ...)
syn match perlVarPlain "$^[ADEFHILMOPSTWX]\="
-syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@$<>(-]"
-syn match perlVarPlain "$\(0\|[1-9][0-9]*\)"
+syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~?@$<>(-]"
+syn match perlVarPlain "$\(0\|[1-9]\d*\)"
" Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
syn match perlVarPlain "$:[^:]"
" These variables are not recognized within matches.
syn match perlVarNotInMatches "$[|)]"
-" This variable is not recognized within matches delimited by m//.
+" This variable is not recognized within matches delimited by '/'.
syn match perlVarSlash "$/"
+" This variable is not recognized within matches delimited by '!'.
+syn match perlVarBang "$!"
" And plain identifiers
syn match perlPackageRef "\(\h\w*\)\=\(::\|'\)\I"me=e-1 contained
@@ -159,7 +164,7 @@
endif
if !exists("perl_no_extended_vars")
- syn cluster perlExpr contains=perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ
+ syn cluster perlExpr contains=perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBang,perlVarBlock,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ
syn region perlVarBlock matchgroup=perlVarPlain start="\($#\|[@%$]\)\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
syn region perlVarBlock matchgroup=perlVarPlain start="&\$*{" skip="\\}" end="}" contains=@perlExpr
syn match perlVarPlain "\\\=\(\$#\|[@%&$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember
@@ -174,17 +179,18 @@
syn match perlFiledescRead "[<]\h\w\+[>]"
syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement
-syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
+syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^,[:space:]]"me=e-1 transparent contained contains=perlFiledescStatement
syn match perlFiledescStatement "\u\w*" contained
" Special characters in strings and matches
syn match perlSpecialString "\\\(\d\+\|[xX]\x\+\|c\u\|.\)" contained
syn match perlSpecialStringU "\\['\\]" contained
-syn match perlSpecialMatch "{\d\+\(,\(\d\+\)\=\)\=}" contained
+syn match perlSpecialMatch "{\d\+\(,\d*\)\=}" contained
syn match perlSpecialMatch "\[\(\]\|-\)\=[^\[\]]*\(\[\|\-\)\=\]" contained
syn match perlSpecialMatch "[+*()?.]" contained
syn match perlSpecialMatch "(?[#:=!]" contained
+syn match perlSpecialMatch "(?<[=!]" contained
syn match perlSpecialMatch "(?[imsx]\+)" contained
" FIXME the line below does not work. It should mark end of line and
" begin of line as perlSpecial.
@@ -201,13 +207,13 @@
" Variable interpolation
"
" These items are interpolated inside "" strings and similar constructs.
-syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock
+syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBang,perlVarBlock
" These items are interpolated inside '' strings and similar constructs.
syn cluster perlInterpSQ contains=perlSpecialStringU
" These items are interpolated inside m// matches and s/// substitutions.
syn cluster perlInterpSlash contains=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock,perlSpecialBEOM
" These items are interpolated inside m## matches and s### substitutions.
-syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash
+syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash,perlVarBang
" Shell commands
syn region perlShellCommand matchgroup=perlMatchStartEnd start="`" end="`" contains=@perlInterpDQ
@@ -233,8 +239,7 @@
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones.
-"syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%]\<split /+lc=6 start=+^if /+lc=2 start=+[^$@%]if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^= \t0-9$@%]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
-syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%]\<split /+lc=6 start=+^while /+lc=5 start=+[^$@%]while /+lc=6 start=+^if /+lc=2 start=+[^$@%]if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^= \t0-9$@%]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
+syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%&]\<split /+lc=6 start=+^while /+lc=5 start=+[^$@%&]while /+lc=6 start=+^if /+lc=2 start=+[^$@%&]if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^=[:space:][:digit:]$@%&]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
" Substitutions
@@ -253,7 +258,7 @@
syn region perlSubstitutionBracket matchgroup=perlMatchStartEnd start=+\[+ end=+\][ecgimosx]*+ contained contains=@perlInterpDQ
syn region perlSubstitutionCurly matchgroup=perlMatchStartEnd start=+{+ end=+}[ecgimosx]*+ contained contains=@perlInterpDQ
-" A special case for m!!x which allows for comments and extra whitespace in the pattern
+" A special case for s!!!x which allows for comments and extra whitespace in the pattern
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s!+ end=+!+me=e-1 contains=@perlInterpSlash,perlComment nextgroup=perlSubstitutionPling
syn region perlSubstitutionPling matchgroup=perlMatchStartEnd start=+!+ end=+![ecgimosx]*+ contained contains=@perlInterpDQ
@@ -280,24 +285,24 @@
" Strings and q, qq, qw and qr expressions
-" Brackets in qq()
-syn region perlBrackets start=+(+ end=+)+ contained transparent contains=perlBrackets,@perlStringSQ
+" Parentheses in qq()
+syn region perlParens start=+(+ end=+)+ contained transparent contains=perlParens,@perlStringSQ
-syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ
-syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ
+syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@Spell,@perlInterpSQ
+syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@Spell,@perlInterpDQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q#+ end=+#+ contains=@perlInterpSQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q|+ end=+|+ contains=@perlInterpSQ
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlBrackets
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlParens
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q{+ end=+}+ contains=@perlInterpSQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q/+ end=+/+ contains=@perlInterpSQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]#+ end=+#+ contains=@perlInterpDQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]|+ end=+|+ contains=@perlInterpDQ
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlBrackets
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlParens
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]{+ end=+}+ contains=@perlInterpDQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]/+ end=+/+ contains=@perlInterpDQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw#+ end=+#+ contains=@perlInterpSQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw|+ end=+|+ contains=@perlInterpSQ
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlBrackets
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlParens
syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw{+ end=+}+ contains=@perlInterpSQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw/+ end=+/+ contains=@perlInterpSQ
syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr#+ end=+#[imosx]*+ contains=@perlInterpMatch
@@ -362,7 +367,7 @@
" All other # are comments, except ^#!
-syn match perlComment "#.*" contains=perlTodo
+syn match perlComment "#.*" contains=@Spell,perlTodo
syn match perlSharpBang "^#!.*"
" Formats
@@ -391,8 +396,8 @@
syn region perlBEGINENDFold start="^\z(\s*\)\<\(BEGIN\|END\|CHECK\|INIT\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
if exists("perl_fold_blocks")
- syn region perlIfFold start="^\z(\s*\)\(if\|unless\|for\|while\|until\)\s*(.*)\s*{\s*$" start="^\z(\s*\)foreach\s*\(\(my\|our\)\=\s*\S\+\s*\)\=(.*)\s*{\s*$" end="^\z1}\s*;\=$" transparent fold keepend
- syn region perlIfFold start="^\z(\s*\)do\s*{\s*$" end="^\z1}\s*while" end="^\z1}\s*;\=$" transparent fold keepend
+ syn region perlIfFold start="^\z(\s*\)\(if\|unless\|for\|while\|until\)\s*(.*)\(\s*{\)\=\s*$" start="^\z(\s*\)foreach\s*\(\(my\|our\)\=\s*\S\+\s*\)\=(.*)\(\s*{\)\=\s*$" start="\z(\s*\)else\s*{\s*$" end="^\z1}\s*;\=$" transparent fold keepend
+ syn region perlIfFold start="^\z(\s*\)do\(\s*{\)\=\s*$" end="^\z1}\s*while" end="^\z1}\s*;\=$" transparent fold keepend
endif
setlocal foldmethod=syntax
@@ -445,6 +450,7 @@
HiLink perlVarSimpleMemberName perlString
HiLink perlVarNotInMatches perlIdentifier
HiLink perlVarSlash perlIdentifier
+ HiLink perlVarBang perlIdentifier
HiLink perlQQ perlString
if version >= 600
HiLink perlHereDoc perlString
@@ -454,7 +460,7 @@
HiLink perlUntilEOFSQ perlString
HiLink perlUntilEmptyDQ perlString
HiLink perlUntilEmptySQ perlString
- HiLink perlUntilEOF perlString
+ HiLink perlUntilEOF perlString
endif
HiLink perlStringUnexpanded perlString
HiLink perlSubstitutionSQ perlString
@@ -490,7 +496,7 @@
HiLink perlStatementFiles perlStatement
HiLink perlStatementFlow perlStatement
HiLink perlStatementScope perlStatement
- HiLink perlStatementInclude perlStatement
+ HiLink perlStatementInclude perlInclude
HiLink perlStatementProc perlStatement
HiLink perlStatementSocket perlStatement
HiLink perlStatementIPC perlStatement
@@ -511,9 +517,9 @@
HiLink perlSpecialMatch perlSpecial
HiLink perlSpecialBEOM perlSpecial
HiLink perlDATA perlComment
-
- HiLink perlBrackets Error
-
+
+ HiLink perlParens Error
+
" Possible errors
HiLink perlNotEmptyLine Error
HiLink perlElseIfError Error
diff --git a/runtime/syntax/ruby.vim b/runtime/syntax/ruby.vim
index 23079e9..bdd6e2e 100644
--- a/runtime/syntax/ruby.vim
+++ b/runtime/syntax/ruby.vim
@@ -2,14 +2,8 @@
" Language: Ruby
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
" Info: $Id$
-" URL: http://vim-ruby.sourceforge.net
+" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
-" Licence: GPL (http://www.gnu.org)
-" Disclaimer:
-" This program is distributed in the hope that it will be useful,
-" but WITHOUT ANY WARRANTY; without even the implied warranty of
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-" GNU General Public License for more details.
" ----------------------------------------------------------------------------
"
" Previous Maintainer: Mirko Nasato
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index b979221..7615c59 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,21 +2,22 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change: Sep 06, 2005
-" Version: 77
+" Last Change: Oct 18, 2005
+" Version: 78
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Using the following VIM variables: {{{1
-" b:is_kornshell if defined, enhance with kornshell syntax
+" b:is_kornshell if defined, enhance with kornshell/POSIX syntax
" b:is_bash if defined, enhance with bash syntax
-" is_kornshell if neither b:is_kornshell or b:is_bash is
-" defined, then if is_kornshell is set
-" b:is_kornshell is default
-" is_bash if none of the previous three variables are
-" defined, then if is_bash is set b:is_bash is default
+" g:is_kornshell if neither b:is_kornshell or b:is_bash is
+" defined, then if g:is_kornshell is set
+" enhance with kornshell/POSIX syntax highlighting
+" g:is_bash if none of the previous three variables are
+" defined, then if g:is_bash is set enhance with
+" bash syntax highlighting
" g:sh_fold_enabled if non-zero, syntax folding is enabled
-" sh_minlines sets up syn sync minlines (default: 200)
-" sh_maxlines sets up syn sync maxlines (default: twice sh_minlines)
+" g:sh_minlines sets up syn sync minlines (dflt: 200)
+" g:sh_maxlines sets up syn sync maxlines (dflt: 2x sh_minlines)
"
" This file includes many ideas from Éric Brunet (eric.brunet@ens.fr)
@@ -385,7 +386,7 @@
" bash : ${parameter//pattern/string}
" bash : ${parameter//pattern}
syn match shDerefPPS contained '/\{1,2}' nextgroup=shDerefPPSleft
- syn region shDerefPPSleft contained start='.' skip=@\%(\\\)\/@ matchgroup=shDerefOp end='/' nextgroup=shDerefPPSright contains=@shCommandSubList
+ syn region shDerefPPSleft contained start='.' skip=@\%(\\\)\/@ matchgroup=shDerefOp end='/' end='\ze}' nextgroup=shDerefPPSright contains=@shCommandSubList
syn region shDerefPPSright contained start='.' end='\ze}' contains=@shCommandSubList
endif
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 9ab7646..4d14f86 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.0 script
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: October 12, 2005
-" Version: 7.0-17
+" Last Change: Nov 18, 2005
+" Version: 7.0-20
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -123,11 +123,11 @@
" Operators: {{{2
" =========
-syn cluster vimOperGroup contains=vimOper,vimOperParen,vimNumber,vimString,vimOperOk,vimRegister
+syn cluster vimOperGroup contains=vimOper,vimOperParen,vimNumber,vimString,vimOperOk,vimRegister,vimContinue
syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
syn region vimOperParen oneline matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
-syn region vimOperParen oneline matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar
+syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar
syn match vimOperOk "\<[aiAIrR][()]"
if !exists("g:vimsyntax_noerror")
syn match vimOperError ")"
@@ -217,7 +217,7 @@
syn match vimCollClass contained transparent "\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
syn match vimSubstSubstr contained "\\z\=\d"
syn match vimSubstTwoBS contained "\\\\"
-syn match vimSubstFlagErr contained "[^< \t\r]\+" contains=vimSubstFlags
+syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags
syn match vimSubstFlags contained "[&cegiIpr]\+"
" 'String': {{{2
diff --git a/runtime/tutor/tutor.sk.cp1250 b/runtime/tutor/tutor.sk.cp1250
new file mode 100644
index 0000000..dc13b26
--- /dev/null
+++ b/runtime/tutor/tutor.sk.cp1250
@@ -0,0 +1,821 @@
+===============================================================================
+= V i t a j t e v o V I M T u t o r i a l i - Verzia 1.5 =
+===============================================================================
+
+ Vim je ve¾mi výkonný editor, ktorý má príli ve¾a príkazov na to aby
+ mohli byt vetky popísané vo výuke akou je táto. Táto výuka
+ popisuje dostatoèné mnostvo príkazov nato aby bolo moné pouíva
+ Vim ako viacúèelový editor.
+
+ Pribliný èas potrebný na prebratie tejto výuky je 25-30 minút,
+ závisí na tom, ko¾ko je stráveného èasu s preskúavaním.
+
+ Príkazy v lekciách modifikujú text. Vytvor kópiu tohto súboru aby
+ sa mohlo precvièova na òom (pri tarte "vimtutor" je toto kópia).
+
+ Je dôleité zapamäta si, e táto výuka je vytvorená pre výuku
+ pouívaním. To znamená, e je potrebné si príkazy vyskúa, aby bolo
+ uèenie správne. Ak len èitas text, príkazy zabudne!
+
+ Presvedè sa, e Shift-Lock NIEJE stlaèený a stlaèt klávesu
+ j nieko¾ko krát, aby sa kurzor posunul nato¾ko, e lekcia 1.1
+ celkom zaplní obrazovku.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 1.1: POHYB KURZOROM
+
+
+ ** Pre pohyb kurzorum stlaè klávesy h,j,k,l ako je znázornené. **
+ ^
+ k Funkcia: Klávesa h je na¾avo a vykoná pohyb do¾ava.
+ < h l > Klávesa l je napravo a vykoná pohyb doprava.
+ j Klávesa j vyzerá ako ípka dole
+ v
+ 1. Pohybuj kurzorom po obrazovke, kým si na to nezvykne.
+
+ 2. Dr stlaèenú klávesu pre pohyb dole (j), kým sa jej funkcia nezopakuje.
+---> Teraz sa u vie pohybova na nasledujúcu lekciu.
+
+ 3. Pouitím klávesy pre pohyb dole prejdi na Lekciu 1.2.
+
+Poznámka: Ak si niesi istý tým èo si napísal, stlaè <ESC>
+ na prechod do normálneho módu.
+
+Poznámka: Kurzorové klávesy sú tie funkèné. Ale pouívaním hjkl sa bude
+ schopný pohybova rýchlejie, keï si zvykne ich pouíva.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 1.2: SPÚANIE A ZATVÁRANIE VIMU
+
+ !! POZNÁMKA: Pred vykonaním týchto krokov si preèítaj celú túto lekciu !!
+
+ 1. Stlaè klávesu <ESC> (aby si sa uèite nachádzal v normálnom móde)
+
+ 2. Napí: :q! <ENTER>.
+
+---> Tým ukonèí prácu s editorom BEZ uloenia zmien, ktoré si vykonal.
+ Ak chce uloi vykonané zmeny a ukonèi prácu s editorom napí:
+ :wq <ENTER>
+
+ 3. Keï sa dostane na príkazový riadok, napí príkaz, ktorým sa dostane
+ spe do tejto výuky. To môe by: vimtutor <ENTER>
+ Zvyèajne sa pouíva: vim tutor <ENTER>
+
+---> 'vim' znamená spustenie editora vim, 'tutor' je názov súboru, ktorý
+ chce editova.
+
+ 4. Ak si si tieto kroky spo¾ahlivo zapamätal, vykonaj kroky 1 a 3, pre
+ ukonèenie a znovu spustenie editora. Potom presuò kurzor dole na
+ lekciu 1.3.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 1.3: EDITÁCIA TEXTU - MAZANIE
+
+
+** Stlaèenie klávesy x v normálnom móde zmae znak na mieste kurzora. **
+
+ 1. Presuò kurzor niie na riadok oznaèený znaèkou --->.
+
+ 2. Aby si mohol odstráni chyby, pohybuj kurzorom kým neprejde na znak,
+ ktorý chce zmaza.
+
+ 3. Stlaè klávesu x aby sa zmazal nechcený znak.
+
+ 4. Zopakuj kroky 2 a 4 a kým veta nieje správna.
+
+---> Kraava skooèilla ccezz mesiiac.
+
+ 5. Ak je veta správna, prejdi na lekciu 1.4.
+
+POZNÁMKA: Neskúaj si zapametä obsah tejto výuky, ale sa uè pouívaním.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 1.4: EDITÁCIA TEXTU - VKLADANIE
+
+
+ ** Stlaèenie klávesy i v normálnom móde umoòuje vkladanie textu. **
+
+ 1. Presuò kurzor niie na prvý riadok za znaèku --->.
+
+ 2. Pre upravenie prvého riadku do rovnakého tvaru ako je druhý riadok,
+ presuò kurzor na prvý znak za misto, kde má by text vloený.
+
+ 3. Stlaè klávesu i a napí potrebný text.
+
+ 4. Po opravení kadej chyby, stlaè <ESC> pre návrat do normálneho módu.
+ Zopakuj kroky 2 a 4 kým nieje veta správna.
+
+---> Tu je text chýbajúci tejto.
+---> Tu je nejaký text chýbajúci od tejto èiary.
+
+ 5. Keï sa dostatoène nauèí vklada text, prejdi na nasledujúce zhrnutie.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ZHRNUTIE LEKCIE 1
+
+
+ 1. Kurzor sa pohybuje pouitím kláves so ípkami alebo klávesmi hjkl.
+ h (do lava) j (dole) k (hore) l (doprava)
+
+ 2. Pre spustenie Vimu (z príkazového riadku) napí: vim FILENAME <ENTER>
+
+ 3. Na ukonèenie Vimu napí: <ESC> :q! <ENTER> pre zruenie vetkých zmien
+ alebo napí: <ESC> :wq <ENTER> pre uloenie zmien.
+
+ 4. Na zmazanie znaku na mieste kurzora napí v normálnom móde: x
+
+ 5. Pre vloenie textu na mieste kurzora v normálnom móde napí:
+ i vkladaný text <ESC>
+
+POZNÁMKA: Stlaèenie <ESC> a premiestní do normálneho módu alebo zruí
+ nejaký nechcený a èiastoène dokonèený príkaz.
+
+Teraz pokraèuj lekciou 2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 2.1: Mazacie príkazy
+
+
+ ** Napísanie príkazu dw zmae znaky do konca slova. **
+
+1. Stlaè <ESC> aby si bol bezpeène v normálnom móde.
+
+2. Presuò kurzor niie na riadok oznaèený znaèkou --->.
+
+3. Presuò kurzor na zaèiatok slova, ktoré je potrebné zmaza.
+
+4. Napí dw aby slovo zmizlo.
+
+POZNÁMKA: Písmená dw sa zobrazia na poslednom riadku obrazovky tak ako ich
+ píe. Ak píe nieèo zle, stlaè <ESC> a zaèni znova.
+
+---> Tu je nieko¾ko slov zábava, ktoré nie patria list do tejto vety.
+
+5. Zopakuj kroky 3 a 4 kým veta nieje správna a prejdi na lekciu 2.2.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 2.2: VIAC MAZACÍCH PRÍKAZOV
+
+
+ ** Napísanie príkazu d$ zmae znaky do konca riadku **
+
+1. Stlaè <ESC> aby si bol bezpeène v normálnom móde.
+
+2. Presuò kurzor niie na riadok oznaèený znaèkou --->.
+
+3. Presuò kurzor na koniec správnej vety (ZA prvú bodku).
+
+4. Napí d$ aby sa zmazali znaky do konca riadku.
+
+---> Niekto napísal koniec tohto riadku dvakrát. koniec tohot riadku dvakrát.
+
+
+5. Prejdi na lekciu 2.3 pre pochopenie toho èo sa stalo.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 2.3: ROZIROVACIE PRÍKAZY A OBJEKTY
+
+
+ Formát mazacieho príkazu d je nasledovný:
+
+ [èíslo] d objekt ALEBO d [èíslo] objekt
+ Kde:
+ èíslo - udáva ko¾ko krát sa príkaz vykoná (volite¾né, implicitne=1)
+ d - je príkaz pre mazanie
+ objekt - udáva na èom sa príkaz vykonáva (vypísané niie)
+
+ Krátky výpis objektov:
+ w - od kurzora do konca slova, vrátanie medzier
+ e - od kurzora do konca slova, BEZ medzier
+ $ - od kurzora do konca riadku.
+
+POZNÁMKA: Ak stlaèí klávesu objektu v normálnom móde bez príkazu, kurzor
+ sa presunie na miesto pecifikované vo výpise objektov.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 2.4: VÝNIMKA V 'PRÍKAZOVOM OBJEKTE'
+
+
+ ** Napísanie príkazu dd zmae celý riadok. **
+
+Vzh¾adom na frekvenciu mazania celého riadku, sa autori Vimu rozhodli,
+e bude jednoduchie maza celý riadok napísaním dvoch písmen d.
+
+1. Presuò kurzor na druhý riadok v texte na spodu.
+2. Napí dd aby si zmazal riadok.
+3. Prejdi na tvrtý riadok.
+4. Napí 2dd (pametaj si èíslo-príkaz-objekt) aby si zmazal dva riadky.
+
+ 1) Rue sú èervené,
+ 2) Blato je zábavné,
+ 3) Fialky sú modré,
+ 4) Mám auto,
+ 5) Hodinky ukazujú èas,
+ 6) Cukor je sladký,
+ 7) A to si ty.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 2.5: PRÍKAZ UNDO
+
+
+** Stlaè u pre vrátenie posledného príkazu, U pre úpravu celého riadku. **
+
+1. Presuò kurzor niie na riadok oznaèený znaèkou ---> a premiestni ho na
+ prvú chybu.
+2. Napí x pre zmazanie prvého nechceného riadku.
+3. Teraz napí u èím vrátí spä posledne vykonaný príkaz.
+4. Teraz oprav vetky chyby na riadku pouitím príkazu x .
+5. Teraz napí ve¾ké U èím vrátí riadok do pôvodného stavu.
+6. Teraz napí u nieko¾ko krát, èím vrátí spä príkaz U.
+7. Teraz napí CTRL-R (dr klávesu CTRL stlaèenú kým stláèa R) nieko¾ko
+ krát, èím vrátí spä predtým vrátené príkazy (redo).
+
+---> Opprav chybby nna toomto riadku a zmeeò ich pommocou undo.
+
+ 8. Tieto príkazy sú èasto pouívané. Teraz prejdi na zhrnutie lekcie 2.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 2 ZHRNUTIE
+
+
+ 1. Pre zmazanie znakov od kurzora do konca slova napí: dw
+
+ 2. Pre zmazanie znakov od kurzora do konca riadku napí: d$
+
+ 3. Pre zmazanie celého riadku napí: dd
+
+ 4. Formát pre píkaz v norálnom móde je:
+
+ [èíslo] príkaz objekt ALEBO príkaz [èíslo] objekt
+ kde:
+ èíslo - udáva ko¾ko krát sa príkaz zopakuje
+ príkaz - udáva vykonávaný príkaz, ako napríklad d pre mazanie
+ objekt - udáva rozsah príkazu, ako napríklad w(slovo),
+ $ (do konca riadku), atï.
+
+ 5. Pre vrátenie spä predolej operácie napí: u (malé u)
+ Pre vrátenie vetkých úprav na riadku napí: U (ve¾ké U)
+ Pre vrátenie vrátených úprav napí: CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 3.1: PRÍKAZ VLOI
+
+
+ ** Napísanie príkazu p vloí psledný výmaz za kurzor. **
+
+ 1. Presuò kurzor niie na prvý riadok textu.
+
+ 2. Napí dd èím zmae riadok a uloí ho do buffera editora Vim.
+
+ 3. Presuò kurzor vyie tam, kam zmazaný riadok patrí.
+
+ 4. Ak napíe v normálnom móde p zmazaný riadk sa vloí.
+
+ 5. Zopakuj kroky 2 a 4, kým riadky niesú v správnom poradí.
+
+ d) Tie sa dokáe vzdeláva?
+ b) Fialky sú modré,
+ c) Inteligencia sa vzdeláva,
+ a) Rue sú èervené,
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 3.2: PRÍKAZ NAHRADENIA
+
+
+ ** Napísaním r a znaku sa nahradí znak na mieste kurzora. **
+
+ 1. Presuò kurzor niie na prví riadok textu oznaèeného znaèkou --->.
+
+ 2. Presuò kurzor na zaèiatok prvej chyby.
+
+ 3. napí r a potom znak, ktorý nahradí chybu.
+
+ 4. Zopakuj kroky 2 a 3, kým prvý riadok nieje správny.
+
+---> Kaï bol tento riasok píaaný, niekro stlail nesprábne klávesy!
+---> Keï bol tento riadok písaný, niekto stlaèil nesprávne klávesy!
+
+ 5. Teraz prejdi na lekciu 3.2.
+
+POZNÁMKA: Pamätaj si, e nauèi sa môe len pouívanim, nie pamätaním.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 3.3. PRÍKAZ ÚPRAVY
+
+
+ ** Ak chce zmeni èas slova alebo celé slovo, napí cw . **
+
+ 1. Presuò kurzor niie na prvý riadok oznaèený znaèkou --->.
+
+ 2. Umiestni kurzor na písmeno o v slove rosfpl.
+
+ 3. Napí cw a oprav slovo (v tomto prípade napí 'iadok'.)
+
+ 4. Stlaè <ESC> a prejdi na ïaliu chybu (prvý znak, ktorý treba zmeni.)
+
+ 5. Zopakuj kroky 3 a 4, kým prvá veta nieje rovnaká ako druhá.
+
+---> Tento rosfpl má nieko¾ko skic, ktoré je pirewvbí zmeni piyuèán príkazu.
+---> Tento riadok má nieko¾ko slov, ktoré je potrebné zmeni pouitím príkazu.
+
+Poznámka, e cw nielen nahrádza slovo, ale a aj premiestní do vkladania.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 3.4: VIAC ZMIEN POUITÍM c
+
+
+ ** Príkaz pre úpravy sa pouíva s rovnakými objektami ako pre mazanie **
+
+ 1. Príkaz pre úpravy pracuje rovnako ako pre mazanie. Formát je:
+
+ [èíslo] c objekt ALEBO c [èíslo] objekt
+
+ 2. Objekty sú rovnaké, ako napríklad w (slovo), $ (koniec riadku), atï.
+
+ 3. Presuò kurzor niie na prvý riadok oznaèený znaèkou --->.
+
+ 4. Presuò kurzor na prvú chybu.
+
+ 5. napí c$ aby si mohol upravi zvyok riadku pod¾a druhého
+ a stlaè <ESC>.
+
+---> Koniec tohto riadku potrebuje pomoc, aby bol ako druhy.
+---> Koniec tohto riadku potrebuje opravi pouitím príkazu c$ .
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 3 ZHRNUTIE
+
+
+ 1. Na vloenie textu, ktorý u bol zmazaný, napí p . To vloí zmazaný
+ text ZA kurzor (ak bol riadok zmazaný prejde na riadok pod kurzorom).
+
+ 2. Pre naradenie znaku na mieste kurzora, napí r a potom znak, ktorý
+ nahradí pôvodný znak.
+
+ 3. Príkaz na upravenie umoòuje zmeni pecifikovaný objekt od kurzora
+ a po koniec objektu. napr. Napí cw èím zmní text od pozície
+ kurzora do konca slova, c$ zmení text do konca riadku.
+
+ 4. Format pre nahradenie je:
+
+ [èíslo] c objekt ALEBO c [èíslo] objekt
+
+
+Teraz prejdi na nalsedujúcu lekciu.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 4.1: POZÍCIA A STATUS SÚBORU
+
+
+ ** Stlaè CTRL-g pre zobrazenie svojej pozície v súbore a statusu súboru.
+ Stlaè SHIFT-G pre prechod na riadok v súbore. **
+
+ Poznámka: Preèítaj si celú túto lekciu skôr ako zaène vykonáva kroky!!
+
+ 1. Dr stlaèenú klávesu Ctrl a stlaè g . Na spodu obrazovky sa zobrazí
+ stavový riadok s názvom súboru a riadkom na ktorom práve si. Zapamätaj
+ si si èíslo riadku pre krok 3.
+
+ 2. Stlaè Shift-G èím sa dostane na spodok súboru.
+
+ 3. Napí èíslo riadku na ktorom si sa nachádzal a stlaè Shift-G. To a
+ vráti na riadok, na ktorom si prvý krát stlaèil Ctrl-g.
+ (Keï píe èísla, tieto sa nezobrazujú na obrazovke.)
+
+ 4. Ak sa cítí schopný vykona teto kroky, vykonaj kroky 1 a 3.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 4.2: PRÍKAZ VYH¼ADÁVANIA
+
+
+ ** Napí / nasledované reazcom pre vyh¾adanie prísluného reazca. **
+
+ 1. Napí znak / v normálnom móde. Poznámka, e tento znak sa spolu
+ s kurzorom zobrazí v dolnej èasti obrazovky ako s : príkazom.
+
+ 2. Teraz napí 'errroor' <ENTER>. To je slovo, ktoré chce vyh¾ada.
+
+ 3. Pre vyh¾adanie ïalieho výskytu rovnakého reazca, stlaè jednoducho n.
+ Pre vyh¾adanie ïalieho výskytu rovnakého reazca opaèným smerom,
+ napí Shift-N.
+
+ 4. Ak chce vyh¾ada reazec v spätnom smere, pouí príkaz ? miesto
+ príkazu /.
+
+ ---> Keï vyh¾adávanie dosiahne koniec tohto súboru, bude pokraèova na
+ zaèiatku.
+
+ "errroor" nie je spôsob ako nahradi error; errroor je error.
+
+POZNÁMKA: Keï vyh¾adávanie dosiahne koniec súboru, bude pokraèova na jeho
+ zaèiatku.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 4.3: VYH¼ADÁVANIE ZODPOVEDAJÚCICH ZÁTAVORIEK
+
+
+ ** Napí % pre vyh¾adanie prísluného znaku ),], alebo } . **
+
+ 1. Premiestni kurzor na hocaký zo znakov (, [, alebo { v riadku niie
+ oznaèeného znaèkou --->.
+
+ 2. Teraz napí znak % .
+
+ 3. Kurzor sa premiestni na zodpovedajúcu zátvorku.
+
+ 4. Napí % pre presun kurzoru spä na otvárajúcu zátvorku.
+
+---> Toto ( je testovací riadok s ('s, ['s ] a {'s } v riadku. ))
+
+Poznámka: Toto je ve¾mi výhodné pouí pri ladení programu s chýbajúcimi
+ uzatvárajúcimi zátvorkami.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 4.4: SPOSOB AKO ZMENI CHYBY
+
+
+ ** Napí :s/starý/nový/g pre nahradenie slova 'starý' za slovo 'nový'. **
+
+ 1. Presuò kurzor niie na riadok oznaèený znaèkou --->.
+
+ 2. Napí :s/thee/the <ENTER> . Poznamka, e tento príkaz zmení len prvý
+ výskyt v riadku.
+
+ 3. Teraz napí :s/thee/the/g èo znamená celkové nahradenie v riadku.
+ Toto nahradí vetky výskyty v riadku.
+
+---> Thee best time to see thee flowers in thee spring.
+
+ 4. Pre zmenu vetkých výskytov daného reazca medzi dvomi ridakami,
+ napí :#,#s/starý/nový/g kde #,# sú èísla dvoch riadkov.
+ napí :%s/starý/nový/g pre zmenu vetkých výskytov v celom riadku
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 4 ZHRNUTIE
+
+
+ 1. Ctrl-g vypíe tvoju pozíciu v súbore a status súboru.
+ Shift-g a premiestni na koniec riadku. Èíslo riadku nasledované
+ Shift-g a presunie na dané èíslo riadku.
+
+ 2. Napísanie / nasledované reazcom vyh¾adá reazec smerom DOPREDU.
+ Napísanie ? nasledované reazcom vyh¾ada reazec smerom DOZADU.
+ Napísanie n po vyh¾adávaní, vyh¾adá nasledujúci výskyt reazca
+ v rovnakom smere, prièom Shift-N vyh¾adá v opaènom smere.
+
+ 3. Napísanie % keï kurzor je na (,),[,],{, alebo } nájde zodpovdajúcu
+ párú zátvorku.
+
+ 4. Pre nahradenie nového za prvý starý v riadku napí :s/nový/starý
+ Pre nahradenie nového za vetky staré v riadku napí :s/nový/starý/g
+ Pre nahradenie reazcov medzi dvoma riadkami 3 napí :#,#/nový/starý/g
+ Pre nahradenie vetkých výskytov v súbore napí :%s/starý/nový/g
+ Pre potvrdenie kadého nahradenia pridaj 'c' :%s/nový/starý/gc
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 5.1 AKO SPUSTI VONKAJÍ PRÍKAZ
+
+
+ ** Napí príkaz :! nasledovaný vonkajím príkazom pre spustenie príkazu **
+
+ 1. Napí obvyklý píkaz : ktorý nastaví kurzor na spodok obrazovky.
+ To umoní napísa príkaz.
+
+ 2. Teraz napí ! (výkrièník). To umoní spusti hociaký vonkají príkaz
+ z príkazového riadku.
+
+ 3. Ako príklad napí ls za ! a stlaè <ENTER>. Tento príkaz
+ zobrazí obsah tvojho adresára rovnako ako na príkazovom riadku.
+ Alebo poui :!dir ak ls nefunguje.
+
+Poznámka: Takto je moné spusti hociaký vonkají príkaz.
+Poznámka: Vetky príkazy : musia by dokonèené stlaèením <ENTER>
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 5.2: VIAC O UKLADANÍ SÚBOROV
+
+
+ ** Pre uloenie zmien v súbore, napí :w FILENAME. **
+
+ 1. Napí :!dir alebo :!ls pre výpis aktuálneho adresára.
+ U vie, e musí za týmto stlaèi <ENTER> .
+
+ 2. Vyber názov súboru, ktorý ETE neexistuje.
+
+ 3. Teraz napí: :w TEST (kde TEST je názov vybratého súboru.)
+
+ 4. To uloí celý súbor (Vim Tutor) pod názovm TEST.
+ Pre overenie napí :!dir , èím zobrazí obsah adresára.
+
+Poznámka: e ak ukonèí prácu s editorom Vim a znovu ho spustí s názvom
+ súboru TEST, súbor bude kópia výuky, keï si ho uloil.
+
+ 5. Teraz odstráò súbor napísaním (MS-DOS): :!del TEST
+ alebo (Unix): :!rm TEST
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 5.3 VÝBEROVÝ PRÍKAZ PRE ULOENIE
+
+
+ ** Pre uloenie èasti súboru, napí :#,# w FILENAME **
+
+ 1. Znovu napí :!dir alebo :!ls pre zobrazenie obsahu aktuálneho
+ adresára a vyber vhodný súbor ako TEST.
+
+ 2. Presuò kurzor na vrch tejto strany a napí Ctrl-g pre vyh¾adanie èísla
+ tohto riadku. PAMETAJ SI TOTO ÈÍSLO!
+
+ 3. Teraz prejdi na spodok strany a napí Ctrl-g znovu. ZAPAMETAJ SI ÈÍSLO
+ AJ TOHTO RIADKU!
+
+ 4. Pre uloenie LEN èasti súboru, napí :#,# w TEST kde #,# sú dve èísla
+ zapamätaných riadkov (vrch, spodok) a TEST je názov súboru.
+
+ 5. Znova sa pozri, èi tam ten súbor je pomocou príkazu :!dir ale
+ NEODSTRAÒUJ ho.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 5.4: VÝBER A ZLUÈOVANIE SÚBOROV
+
+
+ ** Pre vloenie obsahu súboru, napí :r FILENAME **
+
+ 1. Napí :!dir aby si sa presvedèil, e súbor TEST stále existuje.
+
+ 2. Presuò kurzor na vrch tejto strany.
+
+POZNÁMKA: Po vykonaní kroku 3 uvidí Lekciu 5.3. Potom sa presuò dole
+ na túto lekciu.
+
+ 3. Teraz vlo súbor TEST pouitím príkazu :r TEST kde TEST je názov
+ súboru.
+
+POZNÁMKA: Súbor, ktorý si vloil sa vloí od miesta, kde sa nachádza kurzor.
+
+ 4. Pre kontrolu vloenia súboru, presuò kurzor spä a vimni si, e teraz
+ má dve kópie lekcie 5.3, originál a súborovú verziu.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 5 ZHRNUTIE
+
+
+ 1. :!príkaz spustí vonkají príkaz.
+
+ Niektoré vyuite¾né príklady sú:
+ (MS_DOS) (UNIX)
+ :!dir :!ls - zobrazí obsah adresára
+ :!del FILENAME :!rm FILENAME - odstráni súbor FILENAME
+
+ 2. :w FILENAME uloí aktuálny súbor na disk pod menom FILENAME.
+
+ 3. :#,#w FILENAME uloí riadky od # do # do súboru FILENAME.
+
+ 4. :r FILENAME vyberie z disku súbor FILENAME a vloí ho do aktuálneho
+ súboru za pozíciou kurzora.
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 6.1: PRÍKAZ OTVORI
+
+
+** Napí o pre vloenie riadku pod kurzor a prepnutie do vkladacieho módu **
+
+ 1. Presuò kurzor niie na riadok oznaèený znaèkou --->.
+
+ 2. Napí o (malé písmeno) pre vloenie èistého riadku pod kurzorm
+ a prepnutie do vkladacieho módu.
+
+ 3. Teraz skopíruj riadok oznaèený ---> a stlaè <ESC> pre ukonèenie
+ vkladacieho módu.
+
+---> Po napísaní o sa kurzor premiestní na vloený riadok do vkladacieho
+ módu.
+
+ 4. Pre otvorenie riadku nad kurzorom, jednotucho napí ve¾ké O , namiesto
+ malého o. Vyskúaj si to na nasledujúcom riadku.
+Vlo riadok nad týmto napísaním Shift-O, keï kurzor je na tomto riadku.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 6.2: PRÍKAZ PRIDA
+
+
+ ** Napí a pre vloenie textu ZA kurzor. **
+
+ 1. Presuò kurzor niie na koniec prvého riadku oznaèeného znaèkou --->
+ napísaním $ v normálnom móde.
+
+ 2. Napí a (malé písmeno) pre pridanie textu ZA znakom na mieste
+ kurzora. (Ve¾ké A pridá na koniec riadku.)
+
+Poznámka: Toto obchádza písanie i , posledný znak, text na vloenie, <ESC>,
+ kurzor doprava, a nakoniec, x , na pridávanie na koniec riadku!
+
+ 3. Teraz dokonèi prvý riadok. Poznámka, e pridávanie je vlastne rovnaké
+ ako vkladací mód, okrem miesta, kde sa text vkladá.
+
+---> Tento riadok ti dovo¾uje nácvik
+---> Tento riadok ti dovo¾uje nácvik pridávania textu na koniec riadku.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 6.3: INÝ SPOSOB NAHRADZOVANIA
+
+
+ ** Napí ve¾ké R pre nahradenie viac ako jedného znaku. **
+
+ 1. Presuò kurzor niie na prvý riadok oznaèený znaèkou --->.
+
+ 2. Premiestni kurzor na zaèiatok prvého slova, ktoré je odliné od druhého
+ riadku oznaèeného ---> (slovo 'posledná').
+
+ 3. Teraz napí R a nahraï zvyok textu na prvom riadku písaním cez starý
+ text tak, aby prvý riadok bol rovnaký ako druhý.
+
+---> Na úpravu prvého riadku do tvaru ako je posledný na strane poui klávesy.
+---> Na úpravu prvého riadku do tavru ako je druhý, napí R a nový text.
+
+ 4. Poznámka, e ak stlaèí <ESC> pre ukonèenie, vetok nezmenený text
+ zostane.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lekcia 6.4: NASTAVENIE MONOSTÍ
+
+
+** Nastav monosti, take vyh¾adávanie alebo nahradzovanie ignoruje
+ rozliovanie **
+
+
+ 1. Vyh¾adaj reazec 'ignore' napísaním:
+ /ignore
+ Zopakuj vyh¾adávanie nieko¾ko krát stlaèením klávesy n
+
+ 2. Nastav monos 'ic' (Ignore case) napísaním príkazu:
+ :set ic
+
+ 3. Teraz vyh¾adaj reazec 'ingore' znova stlaèením klávesy: n
+ Zopakuj vyh¾adávanie nieko¾ko krát stlaèením klávesy n
+
+ 4. Nastav monosi 'hlsearch' a 'incsearch':
+ :set hls is
+
+ 5. Teraz spusti vyh¾adávací príkaz znovu, a pozri èo sa stalo:
+ /ignore
+
+ 6. Na odstránenie zvýraznenia výrazov napí:
+ :nohlsearch
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 6 ZHRNUTIE
+
+
+ 1. Napísaním o sa otvorí nový riadok pod kurzorom a premiestni sa kurzor
+ na vloený riadok do vkladacieho módu.
+ napísaním ve¾kého O sa otvorí riadok nad aktuálnym riadkom s kurzorom.
+
+ 2. Napí a pre vkladanie textu ZA znak na pozícii kurzoru.
+ Napísaním ve¾kého A sa text automatický pridáva na koniec riadku.
+
+ 3. Napísanie ve¾kého R prepne do nahradzovacieho módu, kým nieje
+ stlaèené <ESC> pre ukonèenie nahradzovacieho módu.
+
+ 4. Napísanie ":set xxx" nastaví monos "xxx".
+
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 7: PRÍKAZY ON-LINE NÁPOVEDY
+
+
+ ** Pouívaj on-line systém nápovedy **
+
+ Vim má obsiahly on-line systém nápovedy. Pre odtartovanie, vyskúaj jeden
+ z týchto troch:
+ - stlaè klávesu <HELP> (ak nejakú má)
+ - stlaè klávesu <F1> (ak nejakú má)
+ - napí :help <ENTER>
+
+ Napí :q <ENTER> èím zatvorí okno nápovedy.
+
+ Môe nájs help ku hociakej téme pridaním argumentu ku príkazu ":help".
+ Vyskúaj tieto (nezabudni stlaèi <ENTER>):
+
+ :help w
+ :help c_<T
+ :help insert-index
+ :help user-manual
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ LEKCIA 8: VYTVORENIE TARTOVACIEHO SKRIPTU
+
+ ** Zapni funkcie editora Vim **
+
+ Vim má omnoho viac funkcii ne Vi, ale veèina z nich je implicitne
+ vypnutá. Pre pouívanie viac Vim funkcii vytvor "vimrc" súbor.
+
+ 1. Zaèni editova "vimrc" súbor, to závisí na pouitom systéme:
+ :edit ~/.vimrc pre Unix
+ :edit $VIM/_vimrc pre MS-Windows
+
+ 2. Teraz si preèítaj text príkladu "vimrc" súboru:
+
+ :read $VIMRUNTIME/vimrc_example.vim
+
+ 3. Ulo súbor:
+
+ :write
+
+ Pri nasledujúcom tarte editora Vim sa pouije zvýrazòovanie syntaxe.
+ Do "vimrc" súboru môe prida vetky svoje uprednostòované nastavenia.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Toto vymedzuje výuku Vimu. Toto je urèené pre strucný preh¾ad o editore
+ Vim, úplne postaèujúce pre ¾ahké a obstojné pouívanie tohto editora.
+ Táto výuka je ïaleko od kompletnosti, pretoe Vim má omnoho viacej príkazov.
+ Ako ïalie si preèítaj uívat¾ský manuál: ":help user-manual".
+
+ Pre ïalie èítanie a túdium je odporúèaná kniha:
+ Vim - Vi Improved - od Steve Oualline
+ Vydavate¾: New Riders
+ Prvá kniha urèená pre Vim. peciálne vhodná pre zaèiatoèníkov.
+ Obsahuje mnostvo príkladov a obrázkov.
+ Pozri na http://iccf-holland.org/click5.html
+
+ Táto kniha je staria a je viac o Vi ako o Vim, ale je tie odporúèaná:
+ Learning the Vi Editor - od Linda Lamb
+ Vydavate¾: O'Reilly & Associates Inc.
+ Je to dobrá kniha pre získanie vedomostí o práci s editorom Vi.
+ ieste vydanie obsahuje tie informácie o editore Vim.
+
+ Táto výuka bola napísaná autormi Michael C. Pierce a Robert K. Ware,
+ Colorado School of Mines s pouitím mylienok dodanými od Charles Smith,
+ Colorado State University. E-mail: bware@mines.colorado.edu.
+
+ Modifikované pre Vim od Bram Moolenaar.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Preklad do Slovenèiny: ¼ubo Èelko
+ e-mail: celbos@inmail.sk
+ Last Change: 2004 Apr 29
+ encoding: cp1250
diff --git a/runtime/tutor/tutor.vim b/runtime/tutor/tutor.vim
index 8621ae2..29eda4c 100644
--- a/runtime/tutor/tutor.vim
+++ b/runtime/tutor/tutor.vim
@@ -1,6 +1,6 @@
" Vim tutor support file
" Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
-" Last Change: 2005 Mar 15
+" Last Change: 2005 Oct 16
" This small source file is used for detecting if a translation of the
" tutor file exist, i.e., a tutor.xx file, where xx is the language.
@@ -83,6 +83,15 @@
endif
endif
+" The Turkish tutor is available in two encodings, guess which one to use
+if s:ext =~? '\.tr'
+ if &enc == "utf-8"
+ let s:ext = ".tr.utf-8"
+ elseif &enc == "iso-8859-9"
+ let s:ext = ".tr.iso9"
+ endif
+endif
+
" The Greek tutor is available in two encodings, guess which one to use
if s:ext =~? '\.gr' && &enc =~ 737
let s:ext = ".gr.cp737"