runtime/filetype.vim \
runtime/scripts.vim \
runtime/menu.vim \
+ runtime/macmap.vim \
runtime/delmenu.vim \
runtime/synmenu.vim \
runtime/makemenu.vim \
" netrw.vim: Handles file transfer and remote directory listing across a network
" AUTOLOAD PORTION
-" Date: Jan 30, 2006
-" Version: 78
+" Date: Mar 09, 2006
+" Version: 79
" 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
if &cp || exists("g:loaded_netrw")
finish
endif
-let g:loaded_netrw = "v78"
+let g:loaded_netrw = "v79"
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
let g:netrw_ssh_cmd= "ssh"
endif
-if has("win32") || has("win95") || has("win64") || has("win16")
+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')
else
let g:netrw_silentxfer= ""
endif
+if !exists("g:netrw_fastbrowse")
+ let g:netrw_fastbrowse= 1
+endif
if !exists("g:netrw_sort_by")
" alternatives: date size
let g:netrw_sort_by= "name"
let s:netrw_cd_escape="[]#*$%'\" ?`!&();<>\\"
endif
endif
+if !exists("g:netrw_fname_escape")
+ let g:netrw_fname_escape= ' ?&;'
+endif
+if !exists("g:netrw_tmpfile_escape")
+ let g:netrw_tmpfile_escape= ' ?&;'
+endif
if !exists("s:netrw_glob_escape")
if has("win32") || has("win95") || has("win64") || has("win16")
let s:netrw_glob_escape= ""
" ------------------------------------------------------------------------
" NetRead: responsible for reading a file over the net {{{2
-fun! netrw#NetRead(...)
-" call Dfunc("NetRead(a:1<".a:1.">)")
-
+fun! netrw#NetRead(mode,...)
+" call Dfunc("NetRead(mode=".a:mode.",...) a:0=".a:0)
+
" save options
call s:NetOptionSave()
-
- " Special Exception: if a file is named "0r", then {{{3
- " "0r" will be used to read the
- " following files instead of "r"
- if a:0 == 0
- let readcmd= "r"
- let ichoice= 0
- elseif a:1 == "0r"
+
+ if a:mode == 0 " read remote file before current line
let readcmd = "0r"
- let ichoice = 2
+ elseif a:mode == 1 " read file after current line
+ let readcmd = "r"
+ elseif a:mode == 2 " replace with remote file
+ let readcmd = "%r"
else
+ exe a:mode
let readcmd = "r"
- let ichoice = 1
endif
-
+ let ichoice = (a:0 == 0)? 0 : 1
+" call Decho("readcmd<".readcmd."> ichoice=".ichoice)
+
" get name of a temporary file and set up shell-quoting character {{{3
let tmpfile= tempname()
- let tmpfile= substitute(tmpfile,'\','/','ge')
+ let tmpfile= escape(substitute(tmpfile,'\','/','ge'),g:netrw_tmpfile_escape)
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
echohl Error | echo "***netrw*** your <".substitute(tmpfile,'[^/]\+$','','e')."> directory is missing!" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetRead")
return
endif
-
-" call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
+" call Decho("tmpfile<".tmpfile.">")
+
while ichoice <= a:0
-
+
" attempt to repeat with previous host-file-etc
if exists("b:netrw_lastfile") && a:0 == 0
" call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
let choice = b:netrw_lastfile
let ichoice= ichoice + 1
-
+
else
exe "let choice= a:" . ichoice
" call Decho("no lastfile: choice<" . choice . ">")
-
+
if match(choice,"?") == 0
" give help
echomsg 'NetRead Usage:'
" case "... ... ..."
let choice = strpart(choice,1,strlen(choice)-1)
let wholechoice = ""
-
+
while match(choice,"\"$") == -1
let wholechoice = wholechoice . " " . choice
let ichoice = ichoice + 1
" call Decho("choice<" . choice . ">")
let ichoice= ichoice + 1
-
+
" fix up windows urls
if has("win32") || has("win95") || has("win64") || has("win16")
let choice = substitute(choice,'\\','/','ge')
exe 'lcd ' . fnamemodify(tmpfile,':h')
let tmpfile = fnamemodify(tmpfile,':t')
endif
-
+
" Determine method of read (ftp, rcp, etc) {{{3
call s:NetMethod(choice)
-
+
" Check if NetBrowse() should be handling this request
" call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
if choice =~ "^.*[\/]$"
let tmpfile= substitute(tmpfile,"$",suffix,'e')
" call Decho("chgd tmpfile<".tmpfile."> (added ".suffix." suffix) netrw_fname<".b:netrw_fname.">")
endif
-
+
" ============
" Perform Protocol-Based Read {{{3
" ===========================
if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
echo "(netrw) Processing your read request..."
endif
-
+
".........................................
" rcp: NetRead Method #1 {{{3
if b:netrw_method == 1 " read with rcp
let uid_machine = g:netrw_machine
endif
endif
-" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&;')." ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&;')." ".tmpfile
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + <.netrc>: NetRead Method #2 {{{3
elseif b:netrw_method == 2 " read with ftp + <.netrc>
" call Decho("read via ftp+.netrc (method #2)")
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
bd!
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + machine,id,passwd,filename: NetRead Method #3 {{{3
elseif b:netrw_method == 3 " read with ftp + machine, id, passwd, and fname
" Construct execution string (four lines) which will be passed through filter
" call Decho("read via ftp+mipf (method #3)")
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
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 ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
" call Decho("filter input: ".getline("."))
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("."))
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
bd!
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" scp: NetRead Method #4 {{{3
elseif b:netrw_method == 4 " read with scp
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.":".escape(b:netrw_fname,' ?&')."' ".cygtmpfile)
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".cygtmpfile
+" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".cygtmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".cygtmpfile
else
-" 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
+" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,g:netrw_fname_escape)."' ".tmpfile
endif
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" http: NetRead Method #5 (wget) {{{3
elseif b:netrw_method == 5
" call Dret("NetRead")
return
endif
-
+
if match(b:netrw_fname,"#") == -1
" simple wget
-" call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
+" call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_fname
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-
+
else
" wget plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
- let netrw_html= substitute(b:netrw_fname,"#.*$","","")
- let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
+ let netrw_html= substitute(netrw_fname,"#.*$","","")
+ let netrw_tag = substitute(netrw_fname,"^.*#","","")
" call Decho("netrw_html<".netrw_html.">")
" call Decho("netrw_tag <".netrw_tag.">")
" call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
exe 'norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
endif
let b:netrw_lastfile = choice
-
+
".........................................
" cadaver: NetRead Method #6 {{{3
elseif b:netrw_method == 6
" call Decho("read via cadaver (method #6)")
-
+
" Construct execution string (four lines) which will be passed through filter
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
put ='open '.g:netrw_machine
endif
put ='user '.g:netrw_uid.' '.g:netrw_passwd
-
+
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
put ='get '.netrw_fname.' '.cygtmpfile
put ='get '.netrw_fname.' '.tmpfile
endif
put ='quit'
-
+
" perform cadaver operation:
norm! 1Gdd
" call Decho("executing: %!".g:netrw_dav_cmd)
bd!
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" rsync: NetRead Method #7 {{{3
elseif b:netrw_method == 7
" call Decho("read via rsync (method #7)")
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile
else
-" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile
endif
let result = s:NetGetFile(readcmd,tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" fetch: NetRead Method #8 {{{3
" fetch://[user@]host[:http]/path
elseif b:netrw_method == 8
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_fetch_cmd == ""
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** fetch command not available" | echohl None
let netrw_option= "ftp"
endif
" call Decho("read via fetch for ".netrw_option)
-
+
if exists("g:netrw_uid") && g:netrw_uid != "" && exists("g:netrw_passwd") && g:netrw_passwd != ""
-" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".netrw_fname
else
-" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".netrw_fname
endif
-
+
let result = s:NetGetFile(readcmd,tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" sftp: NetRead Method #9 {{{3
elseif b:netrw_method == 9
" call Decho("read via sftp (method #4)")
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
- exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+" call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile)
+" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile)
+ exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".cygtmpfile
else
-" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".netrw_fname." ".tmpfile
endif
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
-
+
".........................................
" Complain {{{3
else
echo "***warning*** unable to comply with your request<" . choice . ">"
endif
endwhile
-
+
" cleanup {{{3
" call Decho("cleanup")
if exists("b:netrw_method")
" ------------------------------------------------------------------------
" NetGetFile: Function to read temporary file "tfile" with command "readcmd". {{{2
+" readcmd == %r : replace buffer with newly read file
+" == 0r : read file at top of buffer
+" == r : read file after current line
fun! s:NetGetFile(readcmd, tfile, method)
-" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
+" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
" get name of remote filename (ie. url and all)
let rfile= bufname("%")
" call Decho("rfile<".rfile.">")
-
+
if exists("*NetReadFixup")
" for the use of NetReadFixup (not otherwise used internally)
let line2= line("$")
endif
-
+
" transform paths from / to \ for Windows (except for cygwin)
if &term == "win32"
if g:netrw_cygwin
let tfile= a:tfile
" call Decho("tfile=a:tfile<".tfile.">")
endif
-
- if a:readcmd[0] == '0'
+
+ if a:readcmd[0] == '%'
" get file into buffer
" call Dredir("ls!","starting buffer list")
let lastline= line("$")
" call Decho("exe<".a:readcmd." ".v:cmdarg." ".tfile."> line#".curline)
exe a:readcmd." ".v:cmdarg." ".tfile
- let line1 = curline + 1
- let line2 = line("$") - lastline + 1
+ let line1= curline + 1
+ let line2= line("$") - lastline + 1
else
" not readable
-" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
echohl WarningMsg | echo "***netrw*** file <".tfile."> not readable"| echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetGetFile : tfile<".tfile."> not readable")
return
endif
-
+
" User-provided (ie. optional) fix-it-up command
if exists("*NetReadFixup")
" call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
if has("gui") && has("gui_running")
silent! emenu Buffers.Refresh\ menu
endif
-
+
" call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> tfile<".a:tfile."> readable=".filereadable(a:tfile))
-
+
" make sure file is being displayed
redraw!
" call Dret("NetGetFile")
" NetWrite: responsible for writing a file over the net {{{2
fun! netrw#NetWrite(...) range
" call Dfunc("NetWrite(a:0=".a:0.")")
-
+
" option handling
let mod= 0
call s:NetOptionSave()
-
+
" Get Temporary Filename {{{3
- let tmpfile= tempname()
+ let tmpfile= escape(tempname(),g:netrw_tmpfile_escape)
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")
return
endif
-
+
if a:0 == 0
let ichoice = 0
else
let ichoice = 1
endif
-
+
if &binary
" for binary writes, write entire file. Line numbers don't really make sense.
" Supports the writing of tar and zip files.
" call Decho("silent exe ".a:firstline."," . a:lastline . "w! ".v:cmdarg." ".tmpfile)
silent exe a:firstline."," . a:lastline . "w! ".v:cmdarg." ".tmpfile
endif
-
+
while ichoice <= a:0
-
+
" Process arguments: {{{3
" attempt to repeat with previous host-file-etc
if exists("b:netrw_lastfile") && a:0 == 0
let ichoice= ichoice + 1
else
exe "let choice= a:" . ichoice
-
+
" Reconstruct Choice if choice starts with '"'
if match(choice,"?") == 0
echomsg 'NetWrite Usage:"'
echomsg ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
echomsg ':Nwrite sftp://[user@]machine/path uses sftp'
break
-
+
elseif match(choice,"^\"") != -1
if match(choice,"\"$") != -1
" case "..."
" case "... ... ..."
let choice = strpart(choice,1,strlen(choice)-1)
let wholechoice = ""
-
+
while match(choice,"\"$") == -1
let wholechoice= wholechoice . " " . choice
let ichoice = ichoice + 1
endif
" call Decho("choice<" . choice . ">")
let ichoice= ichoice + 1
-
+
" fix up windows urls
if has("win32") || has("win95") || has("win64") || has("win16")
let choice= substitute(choice,'\\','/','ge')
exe 'lcd ' . fnamemodify(tmpfile,':h')
let tmpfile = fnamemodify(tmpfile,':t')
endif
-
+
" Determine method of read (ftp, rcp, etc) {{{3
call s:NetMethod(choice)
-
+
" =============
" Perform Protocol-Based Write {{{3
" ============================
if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
echo "(netrw) Processing your write request..."
endif
-
+
".........................................
" rcp: NetWrite Method #1 {{{3
if b:netrw_method == 1
let uid_machine = g:netrw_machine
endif
endif
-" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&')
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
+" call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".netrw_fname
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + <.netrc>: NetWrite Method #2 {{{3
elseif b:netrw_method == 2
- let netrw_fname = b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
endif
bd!
let b:netrw_lastfile = choice
-
+
".........................................
" ftp + machine, id, passwd, filename: NetWrite Method #3 {{{3
elseif b:netrw_method == 3
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("filter input: ".getline("."))
" save choice/id/password for future use
let b:netrw_lastfile = choice
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
let mod=1
endif
bd!
-
+
".........................................
" scp: NetWrite Method #4 {{{3
elseif b:netrw_method == 4
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if exists("g:netrw_port") && g:netrw_port != ""
let useport= " -P ".g:netrw_port
else
endif
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'")
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'"
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".netrw_fname."'")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".netrw_fname."'"
else
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'")
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'"
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".netrw_fname."'")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".netrw_fname."'"
endif
let b:netrw_lastfile = choice
-
+
".........................................
" http: NetWrite Method #5 {{{3
elseif b:netrw_method == 5
echohl Error | echo "***netrw*** currently <netrw.vim> does not support writing using http:" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
-
+
".........................................
" dav: NetWrite Method #6 (cadaver) {{{3
elseif b:netrw_method == 6
" call Decho("write via cadaver (method #6)")
-
+
" Construct execution string (four lines) which will be passed through filter
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
new
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
put ='open '.g:netrw_machine
endif
put ='user '.g:netrw_uid.' '.g:netrw_passwd
-
+
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
put ='put '.cygtmpfile.' '.netrw_fname
else
put ='put '.tmpfile.' '.netrw_fname
endif
-
+
" perform cadaver operation:
norm! 1Gdd
" call Decho("executing: %!".g:netrw_dav_cmd)
exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
bd!
let b:netrw_lastfile = choice
-
+
".........................................
" rsync: NetWrite Method #7 {{{3
elseif b:netrw_method == 7
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".netrw_fname
else
-" call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".netrw_fname)
+ exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".netrw_fname
endif
let b:netrw_lastfile = choice
-
+
".........................................
" sftp: NetWrite Method #9 {{{3
elseif b:netrw_method == 9
- let netrw_fname= b:netrw_fname
+ let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape)
if exists("g:netrw_uid") && ( g:netrw_uid != "" )
let uid_machine = g:netrw_uid .'@'. g:netrw_machine
else
exe g:netrw_silentxfer."%!".g:netrw_sftp_cmd.' '.uid_machine
bd!
let b:netrw_lastfile= choice
-
+
".........................................
" Complain {{{3
else
echo "***warning*** unable to comply with your request<" . choice . ">"
endif
endwhile
-
+
" cleanup {{{3
" call Decho("cleanup")
let result=delete(tmpfile)
call s:NetOptionRestore()
-
+
if a:firstline == 1 && a:lastline == line("$")
let &mod= mod " usually equivalent to set nomod
endif
-
+
" call Dret("NetWrite")
endfun
" use buffer-oriented WinVars if buffer ones exist but window ones don't
call s:UseBufWinVars()
+ " set up menus
+ let b:netrw_browser_active= 1
+ call s:NetMenu()
+
" make this buffer modifiable
setlocal ma nonu nowrap
" 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)
+ silent call netrw#NetRead(2,method."://".user.machine."/".path)
exe "silent doau BufReadPost ".fname
keepjumps 1d
" save certain window-oriented variables into buffer-oriented variables
call s:SetBufWinVars()
call s:NetOptionRestore()
- setlocal nomod
+ setlocal nomod nowrap
" call Dret("NetBrowse : file<".fname.">")
return
" call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
exe 'file '.escape(bufname,s:netrw_cd_escape)
" call Decho("renaming file to bufname<".bufname.">")
- setlocal bh=hide bt=nofile nobl nonu noswf
+ setlocal bt=nofile nobl nonu noswf
+ if g:netrw_fastbrowse >= 1
+ setlocal bh=hide
+ endif
" save current directory on directory history list
call s:NetBookmarkDir(3,expand("%"))
nnoremap <buffer> <silent> <c-h> :call <SID>NetHideEdit(0)<cr>
nnoremap <buffer> <silent> i :call <SID>NetLongList(0)<cr>
nnoremap <buffer> <silent> o :call <SID>NetSplit(0)<cr>
- nnoremap <buffer> <silent> O :call <SID>NetObtain()<cr>
+ nnoremap <buffer> <silent> O :call netrw#NetObtain()<cr>
nnoremap <buffer> <silent> P :call <SID>NetPrevWinOpen(0)<cr>
nnoremap <buffer> <silent> q :<c-u>call <SID>NetBookmarkDir(2,expand("%"))<cr>
nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
rightb vert new
wincmd |
endif
+ call s:NetMenu()
" call Decho("handling a file: dirname<".dirname.">")
elseif newdir == './'
" refresh the directory list
" call Decho("refresh directory listing")
- setlocal ma nobl bh=hide
+ setlocal ma nobl
+ if g:netrw_fastbrowse >= 1
+ setlocal bh=hide
+ endif
%d
elseif newdir == '../'
elseif ok =~ 'q\%[uit]'
break
endif
-
+
else
" attempt to remove directory
if !all
" call Decho("2nd attempt to remove dir: system(".netrw_rmf_cmd.")")
let ret= system(netrw_rmf_cmd)
" call Decho("returned=".ret." errcode=".v:shell_error)
-
+
if v:shell_error != 0 && !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** unable to remove directory<".rmfile."> -- is it empty?" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" seems kde systems often have gnome-open due to dependencies, even though
" gnome-open's subsidiary display tools are largely absent. Kde systems
- " usually have "kicker" running, though... (tnx Mikolaj Machowski)
- if !exists("s:haskicker")
+ " usually have "kdeinit" running, though... (tnx Mikolaj Machowski)
+ if !exists("s:haskdeinit")
if has("unix")
- let v:shell_error=0
- silent! let s:haskicker= system('ps -e') =~ 'kicker'
+ silent! let s:haskdeinit= system('ps -e') =~ 'kdeinit'
if v:shell_error
- let s:haskicker = 0
- let v:shell_error = 0
+ let s:haskdeinit = 0
endif
else
- let s:haskicker= 0
+ let s:haskdeinit= 0
endif
-" call Decho("setting s:haskicker=".s:haskicker)
+" call Decho("setting s:haskdeinit=".s:haskdeinit)
endif
if a:remote == 1
" create a local copy
let fname= tempname().".".exten
-" call Decho("create a local copy of <".a:fname."> as <".fname.">")
+" call Decho("a:remote==1: create a local copy of <".a:fname."> as <".fname.">")
exe "silent keepjumps bot 1new ".a:fname
set bh=delete
exe "w! ".fname
else
let redir= &srr . "/dev/null"
endif
-" call Decho("redir:".redir.":")
+" call Decho("redir{".redir."} srr{".&srr."}")
if exists("g:netrw_browsex_viewer") && executable(g:netrw_browsex_viewer)
+" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">")
if g:netrw_browsex_viewer == '-'
- 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
+ let ret= netrwFileHandlers#Invoke(exten,fname)
else
" call Decho("exe silent !".g:netrw_browsex_viewer." '".escape(fname,'%#')."' ".redir)
exe "silent !".g:netrw_browsex_viewer." '".escape(fname,'%#')."'".redir
exe 'silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"'
let ret= v:shell_error
- elseif has("unix") && executable("gnome-open") && !s:haskicker
+ elseif has("unix") && executable("gnome-open") && !s:haskdeinit
" 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") && s:haskicker
+ elseif has("unix") && executable("kfmclient") && s:haskdeinit
" 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
+ " netrwFileHandlers#Invoke() always returns 0
+ let ret= netrwFileHandlers#Invoke(exten,fname)
+ endif
+
+ " if unsuccessful, attempt netrwFileHandlers#Invoke()
+ if ret
+ let ret= netrwFileHandlers#Invoke(exten,fname)
endif
+
redraw!
" cleanup: remove temporary file,
else
put ='open '.g:netrw_machine
endif
-
+
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
put ='\"'.g:netrw_passwd.'\"'
else
put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
endif
-
+
if a:path != ""
put ='cd \"'.a:path.'\"'
endif
exe "put ='".a:cmd."'"
-
+
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
" determine qty files per line (fpl)
let w:netrw_fpl= winwidth(0)/b:netrw_cpf
+ if w:netrw_fpl <= 0
+ let w:netrw_fpl= 1
+ endif
" call Decho("fpl= ".winwidth(0)."/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl)
" make wide display
endif
redraw!
endif
-
+
" call Dret("NetMakeDir")
endfun
" ---------------------------------------------------------------------
" NetObtain: obtain file under cursor (for remote browsing support) {{{2
-fun! s:NetObtain()
- let fname= expand("<cWORD>")
+fun! netrw#NetObtain(...)
+" call Dfunc("NetObtain() a:0=".a:0)
+
+ if a:0==0
+ " no arguments -- use word under cursor
+ let fname= expand("<cWORD>")
+" call Decho("no arguments, use <".fname.">")
+ elseif a:0 > 1
+ " more than one argument, recurse with each argument separately
+" call Decho("more than 1 argument, use recursion")
+ let i=1
+ while i <= a:0
+ call netrw#NetObtain(a:{i})
+ let i=i+1
+ endwhile
+ return
+ else
+ " one argument provided
+ let fname = a:1
+ let keep_netrw_choice = exists("b:netrw_choice")? b:netrw_choice : ""
+ let keep_netrw_fname = exists("b:netrw_fname")? b:netrw_fname : ""
+ let keep_netrw_wmethod = exists("w:netrw_method")? w:netrw_method : ""
+ call s:NetMethod(fname)
+ let w:netrw_method= b:netrw_method
+ let fname = b:netrw_fname
+" call Decho("g:netrw_scp_cmd<".g:netrw_scp_cmd.">")
+" call Decho("g:netrw_machine<".g:netrw_machine.">")
+" call Decho("fname<".fname.">")
+ endif
" NetrwStatusLine support - for obtaining support
call s:SetupNetrwStatusLine('%f %h%m%r%=%9*Obtaining '.fname)
-" call Dfunc("NetObtain() method=".w:netrw_method)
+" call Decho("method=".w:netrw_method)
if exists("w:netrw_method") && w:netrw_method =~ '[235]'
if executable("ftp")
let curdir = expand("%")
" call Decho('ftp: open '.g:netrw_machine.' '.g:netrw_port)
else
put ='open '.g:netrw_machine
-" call Decho('ftp: open '.g:netrw_machine
+" call Decho('ftp: open '.g:netrw_machine)
endif
-
+
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
put ='\"'.g:netrw_passwd.'\"'
put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
" call Decho('user '.g:netrw_uid.' '.g:netrw_passwd)
endif
-
+
if a:path != ""
put ='cd '.a:path
" call Decho('cd '.a:path)
endif
exe "put ='".a:cmd."'"
" call Decho("ftp: ".a:cmd)
-
+
" 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("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i -n")
exe g:netrw_silentxfer.endline.",$!".g:netrw_ftp_cmd." -i -n"
-
+
".........................................
else
echo "***warning*** unable to comply with your request<" . choice . ">"
echohl Error | echo "***netrw*** this system doesn't support ftp" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
+ " restore status line
let &stl = s:netrw_users_stl
let &laststatus = s:netrw_users_ls
+ " restore NetMethod
+ if exists("keep_netrw_method")
+ call s:NetMethod(keep_netrw_choice)
+ let w:netrw_method = keep_netrw_wmethod
+ endif
" call Dret("NetObtain")
return
endif
" scp: Method#4
let curdir = expand("%")
let path = substitute(curdir,'scp://[^/]\+/','','e')
+" call Decho("path<".path.">")
if exists("g:netrw_port") && g:netrw_port != ""
let useport= " -P ".g:netrw_port
else
let &laststatus = s:netrw_users_ls
redraw!
+ " restore NetMethod
+ if exists("keep_netrw_method")
+ call s:NetMethod(keep_netrw_choice)
+ let w:netrw_method = keep_netrw_wmethod
+ endif
+
" call Dret("NetObtain")
endfun
" call Dret("NetPrevWinOpen")
endfun
+" ---------------------------------------------------------------------
+" NetMenu: generates the menu for gvim and netrw {{{2
+fun! s:NetMenu()
+
+ if has("menu") && has("gui_running") && &go =~ 'm'
+" call Dfunc("NetMenu()")
+ if !exists("s:netrw_menu_enabled")
+ let s:netrw_menu_enabled= 1
+ if !exists("g:DrChipTopLvlMenu")
+ let g:DrChipTopLvlMenu= "DrChip."
+ endif
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Help<tab>? ?'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Apply\ Special\ Viewer<tab>x x'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Bookmark\ Current\ Directory<tab>b Nb'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Go\ Up\ Directory<tab>- -'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Goto\ Bookmarked\ Directory<tab>B NB'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Recently\ Used\ Directory<tab>u u'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Subsequently\ Used\ Directory<tab>U U'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Delete\ File/Directory<tab>D D'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File\ Hiding\ List<tab>'."<ctrl-h> \<c-h>"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File/Directory<tab><cr> '."\<cr>"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File/Directory,\ New\ Window<tab>o o'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File/Directory,\ New\ Vertical\ Window\ <tab>v v'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.List\ Bookmarks\ and\ History<tab>q q'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Listing\ Style\ (thin-long-wide)<tab>i i'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Make\ Subdirectory<tab>d d'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Normal-Hide-Show<tab>a a'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Obtain\ File<tab>O O'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Preview\ File/Directory<tab>p p'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Previous\ Window\ Browser<tab>P P'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Rename\ File/Directory<tab>R R'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Reverse\ Sorting\ Order<tab>'."r r"
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Select\ Sorting\ Style<tab>s s'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Sorting\ Sequence\ Edit<tab>S S'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Set\ Current\ Directory<tab>c c'
+ exe 'silent! menu '.g:DrChipTopLvlMenu.'Netrw.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>"
+ else
+" call Decho("clear menus")
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Help'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Apply\ Special\ Viewer'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Bookmark\ Current\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Go\ Up\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Goto\ Bookmarked\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Recently\ Used\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Change\ To\ Subsequently\ Used\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Delete\ File/Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File\ Hiding\ List'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Edit\ File'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Enter\ File/Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Enter\ File/Directory\ (vertical\ split)'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.List\ Bookmarks\ and\ History'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Listing\ Style\ (thin-long-wide)'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Make\ Subdirectory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Normal-Hide-Show'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Obtain\ File'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Preview\ File'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Previous\ Window\ Browser'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Refresh\ Listing'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Rename\ File/Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Reverse\ Sorting\ Order'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Select\ Sorting\ Style'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Sorting\ Sequence\ Edit'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Set\ Current\ Directory'
+ exe 'silent! unmenu '.g:DrChipTopLvlMenu.'Netrw.Settings/Options'
+ endif
+" call Dret("NetMenu")
+ endif
+
+endfun
+
" ==========================================
" Local Directory Browsing Support: {{{1
" ==========================================
" call Dret("DirBrowse")
return
endif
+ if &fo =~ '[ta]'
+ set fo-=t
+ set fo-=a
+ echohl Warning
+ echo '***warning*** directory browsing and formatoptions "ta" are incompatible'
+ echohl None
+ endif
call s:NetOptionSave()
" use buffer-oriented WinVars if buffer ones exist but window ones don't
call s:UseBufWinVars()
+ " set up menus
+ let b:netrw_browser_active= 1
+ call s:NetMenu()
+
" find buffer number of buffer named precisely the same as a:dirname
let bufnum= bufnr(escape(a:dirname,'\'))
" call Decho("findbuf: bufnum=".bufnum)
exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape)
" make this buffer not-a-file, modifiable, not line-numbered, etc
- setlocal bh=hide bt=nofile nobl ma nonu noswf
+ setlocal bt=nofile nobl ma nonu noswf nowrap
+ if g:netrw_fastbrowse >= 2
+ setlocal bh=hide
+ endif
keepalt silent! %d
" ---------------------------
" save certain window-oriented variables into buffer-oriented variables
call s:SetBufWinVars()
call s:NetOptionRestore()
- setlocal noma nomod nonu bh=hide nobl
+ setlocal noma nomod nonu nobl nowrap
+ if g:netrw_fastbrowse >= 2
+ setlocal bh=hide
+ endif
" call Dret("DirBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
endfun
keepjumps silent! put=pfile
endif
endwhile
-
+
" cleanup any windows mess at end-of-line
silent! keepjumps %s/\r$//e
setlocal ts=32
wincmd |
endif
exe "e! ".escape(dirname,s:netrw_cd_escape)
+ call s:NetMenu()
set ma nomod
endif
elseif ok =~ 'q\%[uit]'
break
endif
-
+
else
" attempt to remove directory
if !all
" 9: sftp
fun! s:NetMethod(choice) " globals: method machine id passwd fname
" call Dfunc("NetMethod(a:choice<".a:choice.">)")
-
+
" initialization
let b:netrw_method = 0
let g:netrw_machine = ""
let b:netrw_fname = ""
let g:netrw_port = ""
-
+ let g:netrw_choice = a:choice
+
" Patterns:
" mipf : a:machine a:id password filename Use ftp
" mf : a:machine filename Use ftp + <.netrc> or g:netrw_uid g:netrw_passwd
let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
let fetchurm = '^fetch://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
let sftpurm = '^sftp://\([^/]\{-}\)/\(.*\)\=$'
-
+
" call Decho("determine method:")
" Determine Method
" rcp://user@hostname/...path-to-file
if userid != ""
let g:netrw_uid= userid
endif
-
+
" scp://user@hostname/...path-to-file
elseif match(a:choice,scpurm) == 0
" call Decho("scp://...")
let g:netrw_machine = substitute(a:choice,scpurm,'\1',"")
let g:netrw_port = substitute(a:choice,scpurm,'\2',"")
let b:netrw_fname = substitute(a:choice,scpurm,'\3',"")
-
+
" http://user@hostname/...path-to-file
elseif match(a:choice,httpurm) == 0
" call Decho("http://...")
let b:netrw_method = 5
let g:netrw_machine= substitute(a:choice,httpurm,'\1',"")
let b:netrw_fname = substitute(a:choice,httpurm,'\2',"")
-
+
" dav://hostname[:port]/..path-to-file..
elseif match(a:choice,davurm) == 0
" call Decho("dav://...")
let g:netrw_machine= 'http://'.substitute(a:choice,davurm,'\1/\2',"")
endif
let b:netrw_fname = substitute(a:choice,davurm,'\3',"")
-
+
" rsync://user@hostname/...path-to-file
elseif match(a:choice,rsyncurm) == 0
" call Decho("rsync://...")
let b:netrw_method = 7
let g:netrw_machine= substitute(a:choice,rsyncurm,'\1',"")
let b:netrw_fname = substitute(a:choice,rsyncurm,'\2',"")
-
+
" ftp://[user@]hostname[[:#]port]/...path-to-file
elseif match(a:choice,ftpurm) == 0
" call Decho("ftp://...")
let b:netrw_method= 3
endif
endif
-
+
elseif match(a:choice,fetchurm) == 0
" call Decho("fetch://...")
let b:netrw_method = 8
let g:netrw_machine= substitute(a:choice,fetchurm,'\3',"")
let b:netrw_option = substitute(a:choice,fetchurm,'\4',"")
let b:netrw_fname = substitute(a:choice,fetchurm,'\5',"")
-
+
" Issue an ftp : "machine id password [path/]filename"
elseif match(a:choice,mipf) == 0
" call Decho("(ftp) host id pass file")
let g:netrw_uid = substitute(a:choice,mipf,'\2',"")
let g:netrw_passwd = substitute(a:choice,mipf,'\3',"")
let b:netrw_fname = substitute(a:choice,mipf,'\4',"")
-
+
" Issue an ftp: "hostname [path/]filename"
elseif match(a:choice,mf) == 0
" call Decho("(ftp) host file")
let b:netrw_method = 3
let g:netrw_machine = substitute(a:choice,mf,'\1',"")
let b:netrw_fname = substitute(a:choice,mf,'\2',"")
-
+
elseif filereadable(expand("$HOME/.netrc"))
let b:netrw_method = 2
let g:netrw_machine = substitute(a:choice,mf,'\1',"")
let b:netrw_fname = substitute(a:choice,mf,'\2',"")
endif
-
+
" sftp://user@hostname/...path-to-file
elseif match(a:choice,sftpurm) == 0
" call Decho("sftp://...")
let b:netrw_method = 9
let g:netrw_machine= substitute(a:choice,sftpurm,'\1',"")
let b:netrw_fname = substitute(a:choice,sftpurm,'\2',"")
-
+
" Issue an rcp: hostname:filename" (this one should be last)
elseif match(a:choice,rcphf) == 0
" call Decho("(rcp) [user@]host:file) rcphf<".rcphf.">")
" don't let PCs try <.netrc>
let b:netrw_method = 3
endif
-
+
else
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** cannot determine method" | echohl None
if g:netrw_port != ""
let g:netrw_port = substitute(g:netrw_port,'[#:]\+','','')
endif
-
+
" call Decho("a:choice <".a:choice.">")
" call Decho("b:netrw_method <".b:netrw_method.">")
" call Decho("g:netrw_machine<".g:netrw_machine.">")
" call Decho("g:netrw_passwd <".g:netrw_passwd.">")
" endif "Decho
" call Decho("b:netrw_fname <".b:netrw_fname.">")
-" call Dret("NetMethod")
+" call Dret("NetMethod : b:netrw_method=".b:netrw_method)
endfun
" ------------------------------------------------------------------------
" Get Temporary Filename
let w:aikeep = &ai
" record autochdir setting and then insure its unset (tnx to David Fishburn)
- if has("netbeans_intg") || has("sun_workshop")
- let w:acdkeep = &autochdir
- set noautochdir
+ if &acd && (has("netbeans_intg") || has("sun_workshop"))
+ set noacd
+ echohl Warning | echomsg "***warning*** directory browsing and the acd setting are incompatible" |echohl None
endif
+ let w:fokeep = &fo
+ let w:aikeep = &ai
+ let w:cikeep = &ci
let w:cinkeep = &cin
let w:cinokeep = &cino
let w:comkeep = &com
let w:cpokeep = &cpo
+ let w:magickeep = &magic
if !g:netrw_keepdir
let w:dirkeep = getcwd()
endif
setlocal cino =
setlocal com =
setlocal cpo -=aA
- setlocal nocin noai nospell
+ setlocal nocin noai noci magic nospell fo=nroql2
setlocal tw =0
setlocal report=10000
if has("win32") && !has("win95")
return
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
- endif
+ if exists("w:aikeep") |let &ai = w:aikeep |unlet w:aikeep |endif
+ if exists("w:cikeep") |let &ci = w:cikeep |unlet w:cikeep |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:fokeep") |let &fo = w:fokeep |unlet w:fokeep |endif
if exists("w:gdkeep") |let &gd = w:gdkeep |unlet w:gdkeep |endif
+ if exists("w:magic") |let &magic = w:magic |unlet w:magic |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
endif
unlet w:swfkeep
endif
-
+
" call Dret("NetOptionRestore")
endfun
if v:version < 700
fun! s:NetSort() range
" " call Dfunc("NetSort()")
-
+
let i = a:firstline + 1
while i <= a:lastline
" find insertion point via binary search
endif
let i = i + 1
endwhile
-
+
" " call Dret("NetSort")
endfun
endif
put = 'let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
+ put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
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
-*os_mac.txt* For Vim version 7.0aa. Last change: 2005 Mar 29
+*os_mac.txt* For Vim version 7.0aa. Last change: 2006 Mar 09
VIM REFERENCE MANUAL by Bram Moolenaar et al.
==============================================================================
1. Filename Convention *mac-filename*
-You can use either the unix or mac path separator or a mix of both. In order
-to determine if the specified filename is relative to the current folder or
-absolute (i.e. relative to the "Desktop"), the following algorithm is used:
+Starting with Vim version 7 you can just use the unix path separators with
+Vim. In order to determine if the specified filename is relative to the
+current folder or absolute (i.e. relative to the "Desktop"), the following
+algorithm is used:
If the path start by a "/", the path is absolute
If the path start by a ":", the path is relative
==============================================================================
2. .vimrc and .vim files *mac-vimfile*
-On the Mac files starting with a dot "." are discouraged, thus the rc files
-are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc". These files can be in
-any format (mac, dos or unix). Vim can handle any file format when the
-|'nocompatible'| option is set, otherwise it will only handle mac format
+It is recommended to use Unix style line separators for Vim scripts, thus a
+single newline character.
+
+When starting up Vim will load the $VIMRUNTIME/macmap.vim script to define
+default command-key mappings.
+
+On older systems files starting with a dot "." are discouraged, thus the rc
+files are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc". These files
+can be in any format (mac, dos or unix). Vim can handle any file format when
+the |'nocompatible'| option is set, otherwise it will only handle mac format
files.
==============================================================================
==============================================================================
4. Mac Lack *mac-lack*
-The filenames containing both ":" and "/" are sometimes misinterpreted. (just
-re-execute the command)
-
-Scrollbar are not scrolling live, and when only the arrow or scroll area, a
-limit of 32 line or page is scrolled.
-
-Syntax highlighting works on 68k Macs but is _really_ slow.
-
In a terminal CTRL-^ needs to be entered as Shift-Control-6. CTRL-@ as
Shift-Control-2.
-*pi_netrw.txt* For Vim version 7.0. Last change: Jan 27, 2006
+*pi_netrw.txt* For Vim version 7.0. Last change: Mar 09, 2006
VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
1. Starting With Netrw.................................|netrw-start|
2. Netrw Reference......................................|netrw-ref|
- CONTROLLING EXTERNAL APPLICTIONS...................|netrw-externapp|
+ CONTROLLING EXTERNAL APPLICATIONS..................|netrw-externapp|
READING............................................|netrw-read|
WRITING............................................|netrw-write|
DIRECTORY LISTING..................................|netrw-dirlist|
Quick Reference Commands Table.....................|netrw-browse-cmds|
Netrw Browser Variables............................|netrw-browse-var|
Introduction To Directory Browsing.................|netrw-browse-intro|
+ Netrw Browsing And Option Incompatibilities........|netrw-incompatible|
Directory Exploring Commands.......................|netrw-explore|
Refreshing The Listing.............................|netrw-ctrl-l|
Going Up...........................................|netrw--|
Obtaining A File...................................|netrw-O|
Thin, Long, and Wide Listings......................|netrw-i|
Making A New Directory.............................|netrw-d|
- Deleting Files Or Directories......................|netrw-delete|
+ Deleting Files Or Directories......................|netrw-D|
Renaming Files Or Directories......................|netrw-move|
Hiding Files Or Directories........................|netrw-a|
Edit File Or Directory Hiding List.................|netrw-ctrl-h|
==============================================================================
2. Netrw Reference *netrw-ref*
-CONTROLLING EXTERNAL APPLICTIONS *netrw-externapp*
+CONTROLLING EXTERNAL APPLICATIONS *netrw-externapp*
Protocol Variable Default Value
-------- ---------------- -------------
=0: re-using the same window
=1: horizontally splitting the window first
=2: vertically splitting the window first
+
*g:netrw_browsex_viewer* specify user's preference for a viewer: >
"kfmclient exec"
"gnome-open"
< is used, then netrwFileHandler() will look for
a script/function to handle the given
extension. (see |netrw_filehandler|).
-<
+
+ *g:netrw_fastbrowse* =0: slow speed browsing, never re-use
+ directory listings; always obtain
+ directory listings.
+ =1: medium speed browsing, re-use directory
+ listings only when remote browsing.
+ (default value)
+ =2: fast browsing, only obtains directory
+ listings when the directory hasn't been
+ seen before (or |netrw-ctrl-l| is used).
+ Fast browsing retains old directory listing
+ buffers so that they don't need to be
+ re-acquired. This feature is especially
+ important for remote browsing. However, if
+ a file is introduced or deleted into or from
+ such directories, the old directory buffer
+ becomes out-of-date. One may always refresh
+ such a directory listing with |netrw-ctrl-l|.
+ This option gives the choice of the trade-off
+ between accuracy and speed to the user.
+
*g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
that can show up as "directories" and "files"
in the listing. This pattern is used to
*g:netrw_winsize* specify initial size of new o/v windows
default: ""
+ *g:DrChipTopLvlMenu* This variable specifies the top level
+ submenu name; by default, its "DrChip.".
+ If you wish to change this, do so in your
+ .vimrc. It affects all of my plugins which
+ have menus.
+
INTRODUCTION TO DIRECTORY BROWSING *netrw-browse-intro*
Netrw supports the browsing of directories on the local system and on remote
If you'd like to avoid entering the password in for remote directory listings
with ssh or scp, see |netrw-listhack|.
+
+NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible*
+
+Netrw will not work properly with >
+
+ :set acd
+ :set fo=...ta...
+<
+If either of these options are present when browsing is attempted, netrw
+will change them by using noacd and removing the ta suboptions from the
+|formatoptions|.
+
*netrw-explore* *netrw-pexplore*
*netrw-hexplore* *netrw-sexplore*
DIRECTORY EXPLORING COMMANDS *netrw-nexplore* *netrw-vexplore*
PREVIOUS WINDOW *netrw-P* *netrw-prvwin*
-To edit a file or directory in the previously used window (see :he |CTRL-W_P|),
+To edit a file or directory in the previously used window (see :he |ctrl-w_p|),
press a "P". If there's only one window, then the one window will be
-horizontally split (above/below splitting is controlled by |g:netrw_alto|,
+horizontally split (above/below splitting is controlled by |g:netrw-alto|,
and its initial size is controlled by |g:netrw_winsize|).
If there's more than one window, the previous window will be re-used on
==============================================================================
11. History *netrw-history* {{{1
+ v79: * directories are now displayed with nowrap
+ * (bugfix) if the column width was smaller than the largest
+ file's name, then netrw would hang when using wide-listing
+ mode - fixed
+ * g:netrw_fastbrowse introduced
v78: * progress has been made on allowing spaces inside directory
names for remote work (reading, writing, browsing). (scp)
v77: * Mikolaj Machowski fixed a bug in a substitute command
Russian russian.txt /*Russian*
S change.txt /*S*
SHELL starting.txt /*SHELL*
+SQLSetType sql.txt /*SQLSetType*
Select visual.txt /*Select*
Select-mode visual.txt /*Select-mode*
Select-mode-mapping visual.txt /*Select-mode-mapping*
T motion.txt /*T*
TCL if_tcl.txt /*TCL*
TERM starting.txt /*TERM*
+TSQL sql.txt /*TSQL*
TTpro-telnet syntax.txt /*TTpro-telnet*
Tab intro.txt /*Tab*
TabEnter autocmd.txt /*TabEnter*
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
+Transact-SQL sql.txt /*Transact-SQL*
U undo.txt /*U*
UTF-8 mbyte.txt /*UTF-8*
UTF8-xterm mbyte.txt /*UTF8-xterm*
ft-sh-syntax syntax.txt /*ft-sh-syntax*
ft-spec-plugin filetype.txt /*ft-spec-plugin*
ft-spup-syntax syntax.txt /*ft-spup-syntax*
+ft-sql filetype.txt /*ft-sql*
ft-sql-syntax syntax.txt /*ft-sql-syntax*
+ft-sqlanywhere-syntax syntax.txt /*ft-sqlanywhere-syntax*
ft-sqlinformix-syntax syntax.txt /*ft-sqlinformix-syntax*
ft-syntax-omni insert.txt /*ft-syntax-omni*
ft-tcsh-syntax syntax.txt /*ft-tcsh-syntax*
g, motion.txt /*g,*
g0 motion.txt /*g0*
g8 various.txt /*g8*
+g:DrChipTopLvlMenu pi_netrw.txt /*g:DrChipTopLvlMenu*
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
g:netrw_cygwin pi_netrw.txt /*g:netrw_cygwin*
g:netrw_dav_cmd pi_netrw.txt /*g:netrw_dav_cmd*
+g:netrw_fastbrowse pi_netrw.txt /*g:netrw_fastbrowse*
g:netrw_fetch_cmd pi_netrw.txt /*g:netrw_fetch_cmd*
g:netrw_ftp pi_netrw.txt /*g:netrw_ftp*
g:netrw_ftp_browse_reject pi_netrw.txt /*g:netrw_ftp_browse_reject*
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*
index.txt index.txt /*index.txt*
info-message starting.txt /*info-message*
inform.vim syntax.txt /*inform.vim*
+informix sql.txt /*informix*
initialization starting.txt /*initialization*
input() eval.txt /*input()*
inputdialog() eval.txt /*inputdialog()*
multilang-scripts mlang.txt /*multilang-scripts*
myfiletypefile syntax.txt /*myfiletypefile*
myscriptsfile syntax.txt /*myscriptsfile*
+mysql sql.txt /*mysql*
mysyntaxfile syntax.txt /*mysyntaxfile*
mysyntaxfile-add syntax.txt /*mysyntaxfile-add*
mysyntaxfile-replace syntax.txt /*mysyntaxfile-replace*
netrw-history pi_netrw.txt /*netrw-history*
netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
+netrw-incompatible pi_netrw.txt /*netrw-incompatible*
netrw-list pi_netrw.txt /*netrw-list*
netrw-listbookmark pi_netrw.txt /*netrw-listbookmark*
netrw-listhack pi_netrw.txt /*netrw-listhack*
options options.txt /*options*
options-changed version5.txt /*options-changed*
options.txt options.txt /*options.txt*
+oracle sql.txt /*oracle*
os2 os_os2.txt /*os2*
os2ansi os_os2.txt /*os2ansi*
os390 os_390.txt /*os390*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
+plsql sql.txt /*plsql*
plugin usr_05.txt /*plugin*
plugin-details filetype.txt /*plugin-details*
plugin-filetype usr_41.txt /*plugin-filetype*
posix vi_diff.txt /*posix*
posix-compliance vi_diff.txt /*posix-compliance*
posix-screen-size vi_diff.txt /*posix-screen-size*
+postgress sql.txt /*postgress*
postscr.vim syntax.txt /*postscr.vim*
postscript-cjk-printing print.txt /*postscript-cjk-printing*
postscript-print-encoding print.txt /*postscript-print-encoding*
profiling-variable eval.txt /*profiling-variable*
progname-variable eval.txt /*progname-variable*
progress.vim syntax.txt /*progress.vim*
+psql sql.txt /*psql*
ptcap.vim syntax.txt /*ptcap.vim*
pterm-mouse options.txt /*pterm-mouse*
pumvisible() eval.txt /*pumvisible()*
sponsor.txt sponsor.txt /*sponsor.txt*
spoon os_unix.txt /*spoon*
spup.vim syntax.txt /*spup.vim*
+sql-adding-dialects sql.txt /*sql-adding-dialects*
+sql-dialects sql.txt /*sql-dialects*
+sql-macros sql.txt /*sql-macros*
+sql-matchit sql.txt /*sql-matchit*
+sql-navigation sql.txt /*sql-navigation*
+sql-object-motions sql.txt /*sql-object-motions*
+sql-predefined-objects sql.txt /*sql-predefined-objects*
+sql-type-default sql.txt /*sql-type-default*
+sql-types sql.txt /*sql-types*
+sql.txt sql.txt /*sql.txt*
sql.vim syntax.txt /*sql.vim*
+sqlanywhere sql.txt /*sqlanywhere*
+sqlanywhere.vim syntax.txt /*sqlanywhere.vim*
sqlinformix.vim syntax.txt /*sqlinformix.vim*
+sqlj sql.txt /*sqlj*
+sqlserver sql.txt /*sqlserver*
+sqlsettype sql.txt /*sqlsettype*
sscanf eval.txt /*sscanf*
standard-plugin usr_05.txt /*standard-plugin*
standard-plugin-list help.txt /*standard-plugin-list*
swapcommand-variable eval.txt /*swapcommand-variable*
swapfile-changed version4.txt /*swapfile-changed*
swapname-variable eval.txt /*swapname-variable*
+sybase sql.txt /*sybase*
syn-sync-grouphere syntax.txt /*syn-sync-grouphere*
syn-sync-groupthere syntax.txt /*syn-sync-groupthere*
syn-sync-linecont syntax.txt /*syn-sync-linecont*
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Mar 05
+" Last Change: 2006 Mar 09
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
an 10.610 &File.Sa&ve-Exit<Tab>:wqa :confirm wqa<CR>
an 10.620 &File.E&xit<Tab>:qa :confirm qa<CR>
-" Pasting blockwise and linewise selections is not possible in Insert and
-" Visual mode without the +virtualedit feature. They are pasted as if they
-" were characterwise instead. Add to that some tricks to leave the cursor in
-" the right position, also for "gi".
-" Note: the same stuff appears in mswin.vim.
-if has("virtualedit")
- let s:paste_cmd = ":call <SID>Paste()<CR>"
- func! <SID>Paste()
- let ove = &ve
- set ve=all
- normal! `^
- if @+ != ''
- normal! "+gP
- endif
- let c = col(".")
- normal! i\e
- if col(".") < c " compensate for i<ESC> moving the cursor left
- normal! l
- endif
- let &ve = ove
- endfunc
-else
- let s:paste_cmd = "\"=@+.'xy'<CR>gPFx\"_2x"
-endif
-
-" Define the string to use for items that are present both in Edit, Popup and
-" Toolbar menu.
-if has("virtualedit")
- let s:paste_v_cmd = '"-c<Esc>' . s:paste_cmd
- let s:paste_i_cmd = '<Esc>' . s:paste_cmd . 'gi'
-else
- let s:paste_v_cmd = '"-c<Esc>gix<Esc>' . s:paste_cmd . '"_x'
- let s:paste_i_cmd = 'x<Esc>' . s:paste_cmd . '"_s'
-endif
-
func! <SID>SelectAll()
exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G")
endfunc
cnoremenu 20.350 &Edit.&Copy<Tab>"+y <C-Y>
nnoremenu 20.360 &Edit.&Paste<Tab>"+gP "+gP
cnoremenu &Edit.&Paste<Tab>"+gP <C-R>+
-exe 'vnoremenu <script> &Edit.&Paste<Tab>"+gP ' . s:paste_v_cmd
-exe 'inoremenu <script> &Edit.&Paste<Tab>"+gP ' . s:paste_i_cmd
+exe 'vnoremenu <script> &Edit.&Paste<Tab>"+gP ' . paste#paste_cmd['v']
+exe 'inoremenu <script> &Edit.&Paste<Tab>"+gP ' . paste#paste_cmd['i']
nnoremenu 20.370 &Edit.Put\ &Before<Tab>[p [p
inoremenu &Edit.Put\ &Before<Tab>[p <C-O>[p
nnoremenu 20.380 &Edit.Put\ &After<Tab>]p ]p
if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
an 20.410 &Edit.&Find\.\.\. :promptfind<CR>
vunmenu &Edit.&Find\.\.\.
- vnoremenu <silent> &Edit.&Find\.\.\. y:call <SID>FixFText()<CR>:promptfind <C-R>"<CR>
+ vnoremenu <silent> &Edit.&Find\.\.\. y:promptfind <C-R>=<SID>FixFText()<CR><CR>
an 20.420 &Edit.Find\ and\ Rep&lace\.\.\. :promptrepl<CR>
vunmenu &Edit.Find\ and\ Rep&lace\.\.\.
- vnoremenu <silent> &Edit.Find\ and\ Rep&lace\.\.\. y:call <SID>FixFText()<CR>:promptrepl <C-R>"<CR>
+ vnoremenu <silent> &Edit.Find\ and\ Rep&lace\.\.\. y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
else
an 20.410 &Edit.&Find<Tab>/ /
an 20.420 &Edit.Find\ and\ Rep&lace<Tab>:%s :%s/
fun! s:FixFText()
" Fix text in nameless register to be used with :promptfind.
- let @" = substitute(@", "[\r\n]", '\\n', 'g')
+ return substitute(@", "[\r\n]", '\\n', 'g')
endfun
" Edit/Global Settings
cnoremenu 1.30 PopUp.&Copy <C-Y>
nnoremenu 1.40 PopUp.&Paste "+gP
cnoremenu 1.40 PopUp.&Paste <C-R>+
-exe 'vnoremenu <script> 1.40 PopUp.&Paste ' . s:paste_v_cmd
-exe 'inoremenu <script> 1.40 PopUp.&Paste ' . s:paste_i_cmd
+exe 'vnoremenu <script> 1.40 PopUp.&Paste ' . paste#paste_cmd['v']
+exe 'inoremenu <script> 1.40 PopUp.&Paste ' . paste#paste_cmd['i']
vnoremenu 1.50 PopUp.&Delete x
an 1.55 PopUp.-SEP2- <Nop>
vnoremenu 1.60 PopUp.Select\ Blockwise <C-V>
cnoremenu 1.80 ToolBar.Copy <C-Y>
nnoremenu 1.90 ToolBar.Paste "+gP
cnoremenu ToolBar.Paste <C-R>+
- exe 'vnoremenu <script> ToolBar.Paste ' . s:paste_v_cmd
- exe 'inoremenu <script> ToolBar.Paste ' . s:paste_i_cmd
+ exe 'vnoremenu <script> ToolBar.Paste ' . paste#paste_cmd['v']
+ exe 'inoremenu <script> ToolBar.Paste ' . paste#paste_cmd['i']
if !has("gui_athena")
an 1.95 ToolBar.-sep3- <Nop>
an 1.100 ToolBar.Replace :promptrepl<CR>
vunmenu ToolBar.Replace
- vnoremenu ToolBar.Replace y:promptrepl <C-R>"<CR>
+ vnoremenu ToolBar.Replace y:promptrepl <C-R>=<SID>FixFText()<CR><CR>
an 1.110 ToolBar.FindNext n
an 1.120 ToolBar.FindPrev N
endif
endif " !exists("did_install_syntax_menu")
-unlet! s:paste_i_cmd s:paste_v_cmd s:paste_cmd
-
" Restore the previous value of 'cpoptions'.
let &cpo = s:cpo_save
unlet s:cpo_save
--- /dev/null
+" Vim syntax file
+" Language: SQL, Adaptive Server Anywhere
+" Maintainer: David Fishburn <fishburn at ianywhere dot com>
+" Last Change: Thu Sep 15 2005 10:30:09 AM
+" Version: 9.0.2
+
+" Description: Updated to Adaptive Server Anywhere 9.0.2
+" Updated to Adaptive Server Anywhere 9.0.1
+" Updated to Adaptive Server Anywhere 9.0.0
+"
+" 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
+
+syn case ignore
+
+" The SQL reserved words, defined as keywords.
+
+syn keyword sqlSpecial false null true
+
+" common functions
+syn keyword sqlFunction count sum avg min max debug_eng isnull
+syn keyword sqlFunction greater lesser argn string ymd todate
+syn keyword sqlFunction totimestamp date today now utc_now
+syn keyword sqlFunction number identity years months weeks days
+syn keyword sqlFunction hours minutes seconds second minute hour
+syn keyword sqlFunction day month year dow date_format substr
+syn keyword sqlFunction substring byte_substr length byte_length
+syn keyword sqlFunction datalength ifnull evaluate list
+syn keyword sqlFunction soundex similar difference like_start
+syn keyword sqlFunction like_end regexp_compile
+syn keyword sqlFunction regexp_compile_patindex remainder abs
+syn keyword sqlFunction graphical_plan plan explanation ulplan
+syn keyword sqlFunction graphical_ulplan long_ulplan
+syn keyword sqlFunction short_ulplan rewrite watcomsql
+syn keyword sqlFunction transactsql dialect estimate
+syn keyword sqlFunction estimate_source index_estimate
+syn keyword sqlFunction experience_estimate traceback wsql_state
+syn keyword sqlFunction lang_message dateadd datediff datepart
+syn keyword sqlFunction datename dayname monthname quarter
+syn keyword sqlFunction tsequal hextoint inttohex rand textptr
+syn keyword sqlFunction rowid grouping stddev variance rank
+syn keyword sqlFunction dense_rank density percent_rank user_name
+syn keyword sqlFunction user_id str stuff char_length nullif
+syn keyword sqlFunction sortkey compare ts_index_statistics
+syn keyword sqlFunction ts_table_statistics isdate isnumeric
+syn keyword sqlFunction get_identity lookup newid uuidtostr
+syn keyword sqlFunction strtouuid varexists
+
+" 9.0.1 functions
+syn keyword sqlFunction acos asin atan atn2 cast ceiling convert cos cot
+syn keyword sqlFunction char_length coalesce dateformat datetime degrees exp
+syn keyword sqlFunction floor getdate insertstr
+syn keyword sqlFunction log log10 lower mod pi power
+syn keyword sqlFunction property radians replicate round sign sin
+syn keyword sqlFunction sqldialect tan truncate truncnum
+syn keyword sqlFunction base64_encode base64_decode
+syn keyword sqlFunction hash compress decompress encrypt decrypt
+
+" string functions
+syn keyword sqlFunction ascii char left ltrim repeat
+syn keyword sqlFunction space right rtrim trim lcase ucase
+syn keyword sqlFunction locate charindex patindex replace
+syn keyword sqlFunction errormsg csconvert
+
+" property functions
+syn keyword sqlFunction db_id db_name property_name
+syn keyword sqlFunction property_description property_number
+syn keyword sqlFunction next_connection next_database property
+syn keyword sqlFunction connection_property db_property db_extended_property
+syn keyword sqlFunction event_parmeter event_condition event_condition_name
+
+" sa_ procedures
+syn keyword sqlFunction sa_add_index_consultant_analysis
+syn keyword sqlFunction sa_add_workload_query
+syn keyword sqlFunction sa_app_deregister
+syn keyword sqlFunction sa_app_get_infoStr
+syn keyword sqlFunction sa_app_get_status
+syn keyword sqlFunction sa_app_register
+syn keyword sqlFunction sa_app_registration_unlock
+syn keyword sqlFunction sa_app_set_infoStr
+syn keyword sqlFunction sa_audit_string
+syn keyword sqlFunction sa_check_commit
+syn keyword sqlFunction sa_checkpoint_execute
+syn keyword sqlFunction sa_conn_activity
+syn keyword sqlFunction sa_conn_compression_info
+syn keyword sqlFunction sa_conn_deregister
+syn keyword sqlFunction sa_conn_info
+syn keyword sqlFunction sa_conn_properties
+syn keyword sqlFunction sa_conn_properties_by_conn
+syn keyword sqlFunction sa_conn_properties_by_name
+syn keyword sqlFunction sa_conn_register
+syn keyword sqlFunction sa_conn_set_status
+syn keyword sqlFunction sa_create_analysis_from_query
+syn keyword sqlFunction sa_db_info
+syn keyword sqlFunction sa_db_properties
+syn keyword sqlFunction sa_disable_auditing_type
+syn keyword sqlFunction sa_disable_index
+syn keyword sqlFunction sa_disk_free_space
+syn keyword sqlFunction sa_enable_auditing_type
+syn keyword sqlFunction sa_enable_index
+syn keyword sqlFunction sa_end_forward_to
+syn keyword sqlFunction sa_eng_properties
+syn keyword sqlFunction sa_event_schedules
+syn keyword sqlFunction sa_exec_script
+syn keyword sqlFunction sa_flush_cache
+syn keyword sqlFunction sa_flush_statistics
+syn keyword sqlFunction sa_forward_to
+syn keyword sqlFunction sa_get_dtt
+syn keyword sqlFunction sa_get_histogram
+syn keyword sqlFunction sa_get_request_profile
+syn keyword sqlFunction sa_get_request_profile_sub
+syn keyword sqlFunction sa_get_request_times
+syn keyword sqlFunction sa_get_server_messages
+syn keyword sqlFunction sa_get_simulated_scale_factors
+syn keyword sqlFunction sa_get_workload_capture_status
+syn keyword sqlFunction sa_index_density
+syn keyword sqlFunction sa_index_levels
+syn keyword sqlFunction sa_index_statistics
+syn keyword sqlFunction sa_internal_alter_index_ability
+syn keyword sqlFunction sa_internal_create_analysis_from_query
+syn keyword sqlFunction sa_internal_disk_free_space
+syn keyword sqlFunction sa_internal_get_dtt
+syn keyword sqlFunction sa_internal_get_histogram
+syn keyword sqlFunction sa_internal_get_request_times
+syn keyword sqlFunction sa_internal_get_simulated_scale_factors
+syn keyword sqlFunction sa_internal_get_workload_capture_status
+syn keyword sqlFunction sa_internal_index_density
+syn keyword sqlFunction sa_internal_index_levels
+syn keyword sqlFunction sa_internal_index_statistics
+syn keyword sqlFunction sa_internal_java_loaded_classes
+syn keyword sqlFunction sa_internal_locks
+syn keyword sqlFunction sa_internal_pause_workload_capture
+syn keyword sqlFunction sa_internal_procedure_profile
+syn keyword sqlFunction sa_internal_procedure_profile_summary
+syn keyword sqlFunction sa_internal_read_backup_history
+syn keyword sqlFunction sa_internal_recommend_indexes
+syn keyword sqlFunction sa_internal_reset_identity
+syn keyword sqlFunction sa_internal_resume_workload_capture
+syn keyword sqlFunction sa_internal_start_workload_capture
+syn keyword sqlFunction sa_internal_stop_index_consultant
+syn keyword sqlFunction sa_internal_stop_workload_capture
+syn keyword sqlFunction sa_internal_table_fragmentation
+syn keyword sqlFunction sa_internal_table_page_usage
+syn keyword sqlFunction sa_internal_table_stats
+syn keyword sqlFunction sa_internal_virtual_sysindex
+syn keyword sqlFunction sa_internal_virtual_sysixcol
+syn keyword sqlFunction sa_java_loaded_classes
+syn keyword sqlFunction sa_jdk_version
+syn keyword sqlFunction sa_locks
+syn keyword sqlFunction sa_make_object
+syn keyword sqlFunction sa_pause_workload_capture
+syn keyword sqlFunction sa_proc_debug_attach_to_connection
+syn keyword sqlFunction sa_proc_debug_connect
+syn keyword sqlFunction sa_proc_debug_detach_from_connection
+syn keyword sqlFunction sa_proc_debug_disconnect
+syn keyword sqlFunction sa_proc_debug_get_connection_name
+syn keyword sqlFunction sa_proc_debug_release_connection
+syn keyword sqlFunction sa_proc_debug_request
+syn keyword sqlFunction sa_proc_debug_version
+syn keyword sqlFunction sa_proc_debug_wait_for_connection
+syn keyword sqlFunction sa_procedure_profile
+syn keyword sqlFunction sa_procedure_profile_summary
+syn keyword sqlFunction sa_read_backup_history
+syn keyword sqlFunction sa_recommend_indexes
+syn keyword sqlFunction sa_recompile_views
+syn keyword sqlFunction sa_remove_index_consultant_analysis
+syn keyword sqlFunction sa_remove_index_consultant_workload
+syn keyword sqlFunction sa_reset_identity
+syn keyword sqlFunction sa_resume_workload_capture
+syn keyword sqlFunction sa_server_option
+syn keyword sqlFunction sa_set_simulated_scale_factor
+syn keyword sqlFunction sa_setremoteuser
+syn keyword sqlFunction sa_setsubscription
+syn keyword sqlFunction sa_start_recording_commits
+syn keyword sqlFunction sa_start_workload_capture
+syn keyword sqlFunction sa_statement_text
+syn keyword sqlFunction sa_stop_index_consultant
+syn keyword sqlFunction sa_stop_recording_commits
+syn keyword sqlFunction sa_stop_workload_capture
+syn keyword sqlFunction sa_sync
+syn keyword sqlFunction sa_sync_sub
+syn keyword sqlFunction sa_table_fragmentation
+syn keyword sqlFunction sa_table_page_usage
+syn keyword sqlFunction sa_table_stats
+syn keyword sqlFunction sa_update_index_consultant_workload
+syn keyword sqlFunction sa_validate
+syn keyword sqlFunction sa_virtual_sysindex
+syn keyword sqlFunction sa_virtual_sysixcol
+
+" sp_ procedures
+syn keyword sqlFunction sp_addalias
+syn keyword sqlFunction sp_addauditrecord
+syn keyword sqlFunction sp_adddumpdevice
+syn keyword sqlFunction sp_addgroup
+syn keyword sqlFunction sp_addlanguage
+syn keyword sqlFunction sp_addlogin
+syn keyword sqlFunction sp_addmessage
+syn keyword sqlFunction sp_addremotelogin
+syn keyword sqlFunction sp_addsegment
+syn keyword sqlFunction sp_addserver
+syn keyword sqlFunction sp_addthreshold
+syn keyword sqlFunction sp_addtype
+syn keyword sqlFunction sp_adduser
+syn keyword sqlFunction sp_auditdatabase
+syn keyword sqlFunction sp_auditlogin
+syn keyword sqlFunction sp_auditobject
+syn keyword sqlFunction sp_auditoption
+syn keyword sqlFunction sp_auditsproc
+syn keyword sqlFunction sp_bindefault
+syn keyword sqlFunction sp_bindmsg
+syn keyword sqlFunction sp_bindrule
+syn keyword sqlFunction sp_changedbowner
+syn keyword sqlFunction sp_changegroup
+syn keyword sqlFunction sp_checknames
+syn keyword sqlFunction sp_checkperms
+syn keyword sqlFunction sp_checkreswords
+syn keyword sqlFunction sp_clearstats
+syn keyword sqlFunction sp_column_privileges
+syn keyword sqlFunction sp_columns
+syn keyword sqlFunction sp_commonkey
+syn keyword sqlFunction sp_configure
+syn keyword sqlFunction sp_cursorinfo
+syn keyword sqlFunction sp_databases
+syn keyword sqlFunction sp_datatype_info
+syn keyword sqlFunction sp_dboption
+syn keyword sqlFunction sp_dbremap
+syn keyword sqlFunction sp_depends
+syn keyword sqlFunction sp_diskdefault
+syn keyword sqlFunction sp_displaylogin
+syn keyword sqlFunction sp_dropalias
+syn keyword sqlFunction sp_dropdevice
+syn keyword sqlFunction sp_dropgroup
+syn keyword sqlFunction sp_dropkey
+syn keyword sqlFunction sp_droplanguage
+syn keyword sqlFunction sp_droplogin
+syn keyword sqlFunction sp_dropmessage
+syn keyword sqlFunction sp_dropremotelogin
+syn keyword sqlFunction sp_dropsegment
+syn keyword sqlFunction sp_dropserver
+syn keyword sqlFunction sp_dropthreshold
+syn keyword sqlFunction sp_droptype
+syn keyword sqlFunction sp_dropuser
+syn keyword sqlFunction sp_estspace
+syn keyword sqlFunction sp_extendsegment
+syn keyword sqlFunction sp_fkeys
+syn keyword sqlFunction sp_foreignkey
+syn keyword sqlFunction sp_getmessage
+syn keyword sqlFunction sp_help
+syn keyword sqlFunction sp_helpconstraint
+syn keyword sqlFunction sp_helpdb
+syn keyword sqlFunction sp_helpdevice
+syn keyword sqlFunction sp_helpgroup
+syn keyword sqlFunction sp_helpindex
+syn keyword sqlFunction sp_helpjoins
+syn keyword sqlFunction sp_helpkey
+syn keyword sqlFunction sp_helplanguage
+syn keyword sqlFunction sp_helplog
+syn keyword sqlFunction sp_helpprotect
+syn keyword sqlFunction sp_helpremotelogin
+syn keyword sqlFunction sp_helpsegment
+syn keyword sqlFunction sp_helpserver
+syn keyword sqlFunction sp_helpsort
+syn keyword sqlFunction sp_helptext
+syn keyword sqlFunction sp_helpthreshold
+syn keyword sqlFunction sp_helpuser
+syn keyword sqlFunction sp_indsuspect
+syn keyword sqlFunction sp_lock
+syn keyword sqlFunction sp_locklogin
+syn keyword sqlFunction sp_logdevice
+syn keyword sqlFunction sp_login_environment
+syn keyword sqlFunction sp_modifylogin
+syn keyword sqlFunction sp_modifythreshold
+syn keyword sqlFunction sp_monitor
+syn keyword sqlFunction sp_password
+syn keyword sqlFunction sp_pkeys
+syn keyword sqlFunction sp_placeobject
+syn keyword sqlFunction sp_primarykey
+syn keyword sqlFunction sp_procxmode
+syn keyword sqlFunction sp_recompile
+syn keyword sqlFunction sp_remap
+syn keyword sqlFunction sp_remote_columns
+syn keyword sqlFunction sp_remote_exported_keys
+syn keyword sqlFunction sp_remote_imported_keys
+syn keyword sqlFunction sp_remote_pcols
+syn keyword sqlFunction sp_remote_primary_keys
+syn keyword sqlFunction sp_remote_procedures
+syn keyword sqlFunction sp_remote_tables
+syn keyword sqlFunction sp_remoteoption
+syn keyword sqlFunction sp_rename
+syn keyword sqlFunction sp_renamedb
+syn keyword sqlFunction sp_reportstats
+syn keyword sqlFunction sp_reset_tsql_environment
+syn keyword sqlFunction sp_role
+syn keyword sqlFunction sp_server_info
+syn keyword sqlFunction sp_servercaps
+syn keyword sqlFunction sp_serverinfo
+syn keyword sqlFunction sp_serveroption
+syn keyword sqlFunction sp_setlangalias
+syn keyword sqlFunction sp_setreplicate
+syn keyword sqlFunction sp_setrepproc
+syn keyword sqlFunction sp_setreptable
+syn keyword sqlFunction sp_spaceused
+syn keyword sqlFunction sp_special_columns
+syn keyword sqlFunction sp_sproc_columns
+syn keyword sqlFunction sp_statistics
+syn keyword sqlFunction sp_stored_procedures
+syn keyword sqlFunction sp_syntax
+syn keyword sqlFunction sp_table_privileges
+syn keyword sqlFunction sp_tables
+syn keyword sqlFunction sp_tsql_environment
+syn keyword sqlFunction sp_tsql_feature_not_supported
+syn keyword sqlFunction sp_unbindefault
+syn keyword sqlFunction sp_unbindmsg
+syn keyword sqlFunction sp_unbindrule
+syn keyword sqlFunction sp_volchanged
+syn keyword sqlFunction sp_who
+syn keyword sqlFunction xp_scanf
+syn keyword sqlFunction xp_sprintf
+
+" server functions
+syn keyword sqlFunction col_length
+syn keyword sqlFunction col_name
+syn keyword sqlFunction index_col
+syn keyword sqlFunction object_id
+syn keyword sqlFunction object_name
+syn keyword sqlFunction proc_role
+syn keyword sqlFunction show_role
+syn keyword sqlFunction xp_cmdshell
+syn keyword sqlFunction xp_msver
+syn keyword sqlFunction xp_read_file
+syn keyword sqlFunction xp_real_cmdshell
+syn keyword sqlFunction xp_real_read_file
+syn keyword sqlFunction xp_real_sendmail
+syn keyword sqlFunction xp_real_startmail
+syn keyword sqlFunction xp_real_startsmtp
+syn keyword sqlFunction xp_real_stopmail
+syn keyword sqlFunction xp_real_stopsmtp
+syn keyword sqlFunction xp_real_write_file
+syn keyword sqlFunction xp_scanf
+syn keyword sqlFunction xp_sendmail
+syn keyword sqlFunction xp_sprintf
+syn keyword sqlFunction xp_startmail
+syn keyword sqlFunction xp_startsmtp
+syn keyword sqlFunction xp_stopmail
+syn keyword sqlFunction xp_stopsmtp
+syn keyword sqlFunction xp_write_file
+
+" http functions
+syn keyword sqlFunction http_header http_variable
+syn keyword sqlFunction next_http_header next_http_variable
+syn keyword sqlFunction sa_set_http_header sa_set_http_option
+syn keyword sqlFunction sa_http_variable_info sa_http_header_info
+
+" http functions 9.0.1
+syn keyword sqlFunction http_encode http_decode
+syn keyword sqlFunction html_encode html_decode
+
+" keywords
+syn keyword sqlKeyword absolute action activ add address after
+syn keyword sqlKeyword algorithm allow_dup_row
+syn keyword sqlKeyword alter and any as asc ascii ase at atomic
+syn keyword sqlKeyword attended audit authorization
+syn keyword sqlKeyword autoincrement autostop bcp before
+syn keyword sqlKeyword between blank
+syn keyword sqlKeyword blanks block bottom unbounded break bufferpool
+syn keyword sqlKeyword bulk by byte cache calibrate calibration
+syn keyword sqlKeyword capability cascade cast
+syn keyword sqlKeyword catalog changes char char_convert check
+syn keyword sqlKeyword class classes client
+syn keyword sqlKeyword cluster clustered collation column
+syn keyword sqlKeyword command comment comparisons
+syn keyword sqlKeyword compatible component compressed compute
+syn keyword sqlKeyword concat confirm connection
+syn keyword sqlKeyword console consolidate consolidated
+syn keyword sqlKeyword constraint constraints continue
+syn keyword sqlKeyword convert count crc cross cube
+syn keyword sqlKeyword current cursor data data database
+syn keyword sqlKeyword current_timestamp current_user
+syn keyword sqlKeyword datatype dba dbfile
+syn keyword sqlKeyword dbspace debug
+syn keyword sqlKeyword decrypted default defaults definition
+syn keyword sqlKeyword delay deleting delimited desc
+syn keyword sqlKeyword description deterministic directory
+syn keyword sqlKeyword disable distinct do domain
+syn keyword sqlKeyword dsetpass dttm dynamic each editproc ejb
+syn keyword sqlKeyword else elseif enable encrypted end endif
+syn keyword sqlKeyword engine erase error escape escapes event
+syn keyword sqlKeyword every exception exclusive exec
+syn keyword sqlKeyword existing exists expanded express
+syn keyword sqlKeyword external externlogin factor false
+syn keyword sqlKeyword fastfirstrow fieldproc file filler
+syn keyword sqlKeyword fillfactor finish first first_keyword
+syn keyword sqlKeyword following force foreign format
+syn keyword sqlKeyword freepage full function go global
+syn keyword sqlKeyword group handler hash having hexadecimal
+syn keyword sqlKeyword hidden high hng hold holdlock
+syn keyword sqlKeyword hours id identified identity ignore
+syn keyword sqlKeyword ignore_dup_key ignore_dup_row immediate
+syn keyword sqlKeyword in inactive incremental index info inner
+syn keyword sqlKeyword inout insensitive inserting
+syn keyword sqlKeyword instead integrated
+syn keyword sqlKeyword internal into iq is isolation jar java
+syn keyword sqlKeyword jconnect jdk join kb key language last
+syn keyword sqlKeyword last_keyword lateral left level like
+syn keyword sqlKeyword limit local location log
+syn keyword sqlKeyword logging login long low main
+syn keyword sqlKeyword match max maximum membership
+syn keyword sqlKeyword minutes mirror mode modify monitor
+syn keyword sqlKeyword name named native natural new next no
+syn keyword sqlKeyword noholdlock nolock nonclustered none not
+syn keyword sqlKeyword notify null nulls of off old on
+syn keyword sqlKeyword only optimization optimizer option
+syn keyword sqlKeyword or order others out outer over
+syn keyword sqlKeyword package packetsize padding page pages
+syn keyword sqlKeyword paglock parallel part partition path
+syn keyword sqlKeyword pctfree plan preceding precision prefetch prefix
+syn keyword sqlKeyword preserve preview primary
+syn keyword sqlKeyword prior priqty private privileges
+syn keyword sqlKeyword procedure public publication publish publisher
+syn keyword sqlKeyword quotes range readcommitted
+syn keyword sqlKeyword readpast readuncommitted
+syn keyword sqlKeyword received recompile recursive references
+syn keyword sqlKeyword referencing relative
+syn keyword sqlKeyword rename repeatableread
+syn keyword sqlKeyword replicate rereceive resend reset
+syn keyword sqlKeyword resolve resource respect
+syn keyword sqlKeyword restrict result retain
+syn keyword sqlKeyword returns right
+syn keyword sqlKeyword rollup row rowlock rows save
+syn keyword sqlKeyword schedule schema scroll seconds secqty
+syn keyword sqlKeyword send sensitive sent serializable
+syn keyword sqlKeyword server server session sets
+syn keyword sqlKeyword share since site size skip
+syn keyword sqlKeyword some sorted_data sqlcode sqlid
+syn keyword sqlKeyword sqlstate stacker statement
+syn keyword sqlKeyword statistics status stogroup store
+syn keyword sqlKeyword strip subpages subscribe subscription
+syn keyword sqlKeyword subtransaction synchronization
+syn keyword sqlKeyword syntax_error table tablock
+syn keyword sqlKeyword tablockx tb temp template temporary then
+syn keyword sqlKeyword timezone to top
+syn keyword sqlKeyword transaction transactional tries true
+syn keyword sqlKeyword tsequal type unconditionally unenforced
+syn keyword sqlKeyword unique union unknown unload
+syn keyword sqlKeyword updating updlock upgrade use user
+syn keyword sqlKeyword using utc utilities validproc
+syn keyword sqlKeyword value values varchar variable
+syn keyword sqlKeyword varying vcat verify view virtual wait
+syn keyword sqlKeyword warning wd when where window with within
+syn keyword sqlKeyword with_lparen work writefile
+syn keyword sqlKeyword xlock zeros
+" XML function support
+syn keyword sqlFunction openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+syn keyword sqlFunction xmlattributes
+syn keyword sqlKeyword raw auto elements explicit
+" HTTP support
+syn keyword sqlKeyword authorization secure url service
+" HTTP 9.0.2 new procedure keywords
+syn keyword sqlKeyword namespace certificate clientport proxy
+" OLAP support 9.0.0
+syn keyword sqlKeyword covar_pop covar_samp corr regr_slope regr_intercept
+syn keyword sqlKeyword regr_count regr_r2 regr_avgx regr_avgy
+syn keyword sqlKeyword regr_sxx regr_syy regr_sxy
+
+" Alternate keywords
+syn keyword sqlKeyword character dec options proc reference
+syn keyword sqlKeyword subtrans tran syn keyword
+
+
+syn keyword sqlOperator in any some all between exists
+syn keyword sqlOperator like escape not is and or
+syn keyword sqlOperator intersect minus
+syn keyword sqlOperator prior distinct
+
+syn keyword sqlStatement allocate alter backup begin call case
+syn keyword sqlStatement checkpoint clear close commit configure connect
+syn keyword sqlStatement create deallocate declare delete describe
+syn keyword sqlStatement disconnect drop execute exit explain fetch
+syn keyword sqlStatement for forward from get goto grant help if include
+syn keyword sqlStatement input insert install leave load lock loop
+syn keyword sqlStatement message open output parameter parameters passthrough
+syn keyword sqlStatement prepare print put raiserror read readtext release
+syn keyword sqlStatement remote remove reorganize resignal restore resume
+syn keyword sqlStatement return revoke rollback savepoint select
+syn keyword sqlStatement set setuser signal start stop synchronize
+syn keyword sqlStatement system trigger truncate unload update
+syn keyword sqlStatement validate waitfor whenever while writetext
+
+
+syn keyword sqlType char long varchar text
+syn keyword sqlType bigint decimal double float int integer numeric
+syn keyword sqlType smallint tinyint real
+syn keyword sqlType money smallmoney
+syn keyword sqlType bit
+syn keyword sqlType date datetime smalldate time timestamp
+syn keyword sqlType binary image varbinary uniqueidentifier
+syn keyword sqlType xml unsigned
+
+syn keyword sqlOption Allow_nulls_by_default
+syn keyword sqlOption Ansi_blanks
+syn keyword sqlOption Ansi_close_cursors_on_rollback
+syn keyword sqlOption Ansi_integer_overflow
+syn keyword sqlOption Ansi_permissions
+syn keyword sqlOption Ansi_update_constraints
+syn keyword sqlOption Ansinull
+syn keyword sqlOption Assume_distinct_servers
+syn keyword sqlOption Auditing
+syn keyword sqlOption Auditing_options
+syn keyword sqlOption Auto_commit
+syn keyword sqlOption Auto_refetch
+syn keyword sqlOption Automatic_timestamp
+syn keyword sqlOption Background_priority
+syn keyword sqlOption Bell
+syn keyword sqlOption Blob_threshold
+syn keyword sqlOption Blocking
+syn keyword sqlOption Blocking_timeout
+syn keyword sqlOption Chained
+syn keyword sqlOption Char_OEM_Translation
+syn keyword sqlOption Checkpoint_time
+syn keyword sqlOption Cis_option
+syn keyword sqlOption Cis_rowset_size
+syn keyword sqlOption Close_on_endtrans
+syn keyword sqlOption Command_delimiter
+syn keyword sqlOption Commit_on_exit
+syn keyword sqlOption Compression
+syn keyword sqlOption Connection_authentication
+syn keyword sqlOption Continue_after_raiserror
+syn keyword sqlOption Conversion_error
+syn keyword sqlOption Cooperative_commit_timeout
+syn keyword sqlOption Cooperative_commits
+syn keyword sqlOption Database_authentication
+syn keyword sqlOption Date_format
+syn keyword sqlOption Date_order
+syn keyword sqlOption Debug_messages
+syn keyword sqlOption Dedicated_task
+syn keyword sqlOption Default_timestamp_increment
+syn keyword sqlOption Delayed_commit_timeout
+syn keyword sqlOption Delayed_commits
+syn keyword sqlOption Delete_old_logs
+syn keyword sqlOption Describe_Java_Format
+syn keyword sqlOption Divide_by_zero_error
+syn keyword sqlOption Echo
+syn keyword sqlOption Escape_character
+syn keyword sqlOption Exclude_operators
+syn keyword sqlOption Extended_join_syntax
+syn keyword sqlOption External_remote_options
+syn keyword sqlOption Fire_triggers
+syn keyword sqlOption First_day_of_week
+syn keyword sqlOption Float_as_double
+syn keyword sqlOption For_xml_null_treatment
+syn keyword sqlOption Force_view_creation
+syn keyword sqlOption Global_database_id
+syn keyword sqlOption Headings
+syn keyword sqlOption Input_format
+syn keyword sqlOption Integrated_server_name
+syn keyword sqlOption Isolation_level
+syn keyword sqlOption ISQL_command_timing
+syn keyword sqlOption ISQL_escape_character
+syn keyword sqlOption ISQL_field_separator
+syn keyword sqlOption ISQL_log
+syn keyword sqlOption ISQL_plan
+syn keyword sqlOption ISQL_plan_cursor_sensitivity
+syn keyword sqlOption ISQL_plan_cursor_writability
+syn keyword sqlOption ISQL_quote
+syn keyword sqlOption Java_heap_size
+syn keyword sqlOption Java_input_output
+syn keyword sqlOption Java_namespace_size
+syn keyword sqlOption Java_page_buffer_size
+syn keyword sqlOption Lock_rejected_rows
+syn keyword sqlOption Log_deadlocks
+syn keyword sqlOption Log_detailed_plans
+syn keyword sqlOption Log_max_requests
+syn keyword sqlOption Login_mode
+syn keyword sqlOption Login_procedure
+syn keyword sqlOption Max_cursor_count
+syn keyword sqlOption Max_hash_size
+syn keyword sqlOption Max_plans_cached
+syn keyword sqlOption Max_recursive_iterations
+syn keyword sqlOption Max_statement_count
+syn keyword sqlOption Max_work_table_hash_size
+syn keyword sqlOption Min_password_length
+syn keyword sqlOption Nearest_century
+syn keyword sqlOption Non_keywords
+syn keyword sqlOption NULLS
+syn keyword sqlOption ODBC_describe_binary_as_varbinary
+syn keyword sqlOption ODBC_distinguish_char_and_varchar
+syn keyword sqlOption On_Charset_conversion_failure
+syn keyword sqlOption On_error
+syn keyword sqlOption On_tsql_error
+syn keyword sqlOption Optimistic_wait_for_commit
+syn keyword sqlOption Optimization_goal
+syn keyword sqlOption Optimization_level
+syn keyword sqlOption Optimization_logging
+syn keyword sqlOption Optimization_workload
+syn keyword sqlOption Output_format
+syn keyword sqlOption Output_length
+syn keyword sqlOption Output_nulls
+syn keyword sqlOption Percent_as_comment
+syn keyword sqlOption Pinned_cursor_percent_of_cache
+syn keyword sqlOption Precision
+syn keyword sqlOption Prefetch
+syn keyword sqlOption Preserve_source_format
+syn keyword sqlOption Prevent_article_pkey_update
+syn keyword sqlOption Qualify_owners
+syn keyword sqlOption Query_plan_on_open
+syn keyword sqlOption Quiet
+syn keyword sqlOption Quote_all_identifiers
+syn keyword sqlOption Quoted_identifier
+syn keyword sqlOption Read_past_deleted
+syn keyword sqlOption Recovery_time
+syn keyword sqlOption Remote_idle_timeout
+syn keyword sqlOption Replicate_all
+syn keyword sqlOption Replication_error
+syn keyword sqlOption Replication_error_piece
+syn keyword sqlOption Return_date_time_as_string
+syn keyword sqlOption Return_java_as_string
+syn keyword sqlOption RI_Trigger_time
+syn keyword sqlOption Rollback_on_deadlock
+syn keyword sqlOption Row_counts
+syn keyword sqlOption Save_remote_passwords
+syn keyword sqlOption Scale
+syn keyword sqlOption Screen_format
+syn keyword sqlOption Sort_Collation
+syn keyword sqlOption SQL_flagger_error_level
+syn keyword sqlOption SQL_flagger_warning_level
+syn keyword sqlOption SQLConnect
+syn keyword sqlOption SQLStart
+syn keyword sqlOption SR_Date_Format
+syn keyword sqlOption SR_Time_Format
+syn keyword sqlOption SR_TimeStamp_Format
+syn keyword sqlOption Statistics
+syn keyword sqlOption String_rtruncation
+syn keyword sqlOption Subscribe_by_remote
+syn keyword sqlOption Subsume_row_locks
+syn keyword sqlOption Suppress_TDS_debugging
+syn keyword sqlOption TDS_Empty_string_is_null
+syn keyword sqlOption Temp_space_limit_check
+syn keyword sqlOption Thread_count
+syn keyword sqlOption Thread_stack
+syn keyword sqlOption Thread_swaps
+syn keyword sqlOption Time_format
+syn keyword sqlOption Time_zone_adjustment
+syn keyword sqlOption Timestamp_format
+syn keyword sqlOption Truncate_date_values
+syn keyword sqlOption Truncate_timestamp_values
+syn keyword sqlOption Truncate_with_auto_commit
+syn keyword sqlOption Truncation_length
+syn keyword sqlOption Tsql_hex_constant
+syn keyword sqlOption Tsql_variables
+syn keyword sqlOption Update_statistics
+syn keyword sqlOption User_estimates
+syn keyword sqlOption Verify_all_columns
+syn keyword sqlOption Verify_threshold
+syn keyword sqlOption Wait_for_commit
+
+" Strings and characters:
+syn region sqlString start=+"+ end=+"+ contains=@Spell
+syn region sqlString start=+'+ end=+'+ contains=@Spell
+
+" Numbers:
+syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
+
+" Comments:
+syn region sqlDashComment start=/--/ end=/$/ contains=@Spell
+syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell
+syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell
+syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell
+syn sync ccomment sqlComment
+syn sync ccomment sqlDashComment
+syn sync ccomment sqlSlashComment
+
+" Define the default highlighting.
+" 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_sql_syn_inits")
+ if version < 508
+ let did_sql_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi link <args>
+ endif
+
+ HiLink sqlDashComment Comment
+ HiLink sqlSlashComment Comment
+ HiLink sqlMultiComment Comment
+ HiLink sqlNumber Number
+ HiLink sqlOperator Operator
+ HiLink sqlSpecial Special
+ HiLink sqlKeyword Keyword
+ HiLink sqlStatement Statement
+ HiLink sqlString String
+ HiLink sqlType Type
+ HiLink sqlFunction Function
+ HiLink sqlOption PreProc
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "sqlanywhere"
+
+" vim:sw=4:ff=unix:
int j;
int newlen = 0;
int mb_l;
- int pc, pc1;
+ int pc, pc1 = 0;
int prev_c = 0;
int prev_c1 = 0;
int u8c;
{
vim_free(files[i]);
files[i] = p;
-#if defined(BACKSLASH_IN_FILENAME) || defined(COLON_AS_PATHSEP)
+#if defined(BACKSLASH_IN_FILENAME)
p = vim_strsave_escaped(files[i], (char_u *)" ");
if (p != NULL)
{
char line[LINE_LEN];
char_u *fname;
-#ifdef COLON_AS_PATHSEP
- fname = expand_env_save((char_u *)"$VIMRUNTIME:rgb.txt");
-#else
fname = expand_env_save((char_u *)"$VIMRUNTIME/rgb.txt");
-#endif
if (fname == NULL)
return INVALCOLOR;
#define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
+/* 'isprint' for latin1 is also used for MS-Windows, where 0x80 is used for
+ * the currency sign. Thus this isn't really latin1... */
+#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+# define ISP_LATIN1 (char_u *)"@,128,161-255"
+#else
+# define ISP_LATIN1 (char_u *)"@,161-255"
+#endif
+
/*
* options[] is initialized here.
* The order of the options MUST be alphabetic for ":set all" and findoption().
/* all chars above 63 are printable */
(char_u *)"63-255",
# else
- (char_u *)"@,161-255",
+ ISP_LATIN1,
# endif
#endif
(char_u *)0L}},
* latin1. Also set the defaults for when 'nocompatible' is
* set. */
set_string_option_direct((char_u *)"isp", -1,
- (char_u *)"@,161-255", OPT_FREE, SID_NONE);
+ ISP_LATIN1, OPT_FREE, SID_NONE);
set_string_option_direct((char_u *)"isk", -1,
ISK_LATIN1, OPT_FREE, SID_NONE);
opt_idx = findoption((char_u *)"isp");
- options[opt_idx].def_val[VIM_DEFAULT] = (char_u *)"@,161-255";
+ options[opt_idx].def_val[VIM_DEFAULT] = ISP_LATIN1;
opt_idx = findoption((char_u *)"isk");
options[opt_idx].def_val[VIM_DEFAULT] = ISK_LATIN1;
(void)init_chartab();
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 8)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 8, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 9)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 9, compiled "