cf9f5ab
" netrwSettings.vim: makes netrw settings simpler
cf9f5ab
" Date:		Sep 03, 2008
cf9f5ab
" Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
cf9f5ab
" Version:	13
cf9f5ab
" Copyright:    Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
cf9f5ab
"               Permission is hereby granted to use and distribute this code,
cf9f5ab
"               with or without modifications, provided that this copyright
cf9f5ab
"               notice is copied with it. Like anything else that's free,
cf9f5ab
"               netrwSettings.vim is provided *as is* and comes with no
cf9f5ab
"               warranty of any kind, either expressed or implied. By using
cf9f5ab
"               this plugin, you agree that in no event will the copyright
cf9f5ab
"               holder be liable for any damages resulting from the use
cf9f5ab
"               of this software.
cf9f5ab
"
cf9f5ab
" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
cf9f5ab
"                synagogues, preaching the gospel of the kingdom, and healing
cf9f5ab
"                every disease and every sickness among the people.
cf9f5ab
" Load Once: {{{1
cf9f5ab
if exists("g:loaded_netrwSettings") || &cp
cf9f5ab
  finish
cf9f5ab
endif
cf9f5ab
let g:loaded_netrwSettings = "v13"
cf9f5ab
if v:version < 700
cf9f5ab
 echohl WarningMsg
cf9f5ab
 echo "***warning*** this version of netrwSettings needs vim 7.0"
cf9f5ab
 echohl Normal
cf9f5ab
 finish
cf9f5ab
endif
cf9f5ab
cf9f5ab
" ---------------------------------------------------------------------
cf9f5ab
" NetrwSettings: {{{1
cf9f5ab
fun! netrwSettings#NetrwSettings()
cf9f5ab
  " this call is here largely just to insure that netrw has been loaded
cf9f5ab
  call netrw#NetrwSavePosn()
cf9f5ab
  if !exists("g:loaded_netrw")
cf9f5ab
   echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
cf9f5ab
   return
cf9f5ab
  endif
cf9f5ab
cf9f5ab
  above wincmd s
cf9f5ab
  enew
cf9f5ab
  setlocal noswapfile bh=wipe
cf9f5ab
  set ft=vim
cf9f5ab
  file Netrw\ Settings
cf9f5ab
cf9f5ab
  " these variables have the following default effects when they don't
cf9f5ab
  " exist (ie. have not been set by the user in his/her .vimrc)
cf9f5ab
  if !exists("g:netrw_liststyle")
cf9f5ab
   let g:netrw_liststyle= 0
cf9f5ab
   let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
cf9f5ab
  endif
cf9f5ab
  if !exists("g:netrw_silent")
cf9f5ab
   let g:netrw_silent= 0
cf9f5ab
  endif
cf9f5ab
  if !exists("g:netrw_use_nt_rcp")
cf9f5ab
   let g:netrw_use_nt_rcp= 0
cf9f5ab
  endif
cf9f5ab
  if !exists("g:netrw_ftp")
cf9f5ab
   let g:netrw_ftp= 0
cf9f5ab
  endif
cf9f5ab
  if !exists("g:netrw_ignorenetrc")
cf9f5ab
   let g:netrw_ignorenetrc= 0
cf9f5ab
  endif
cf9f5ab
cf9f5ab
  put ='+ ---------------------------------------------'
cf9f5ab
  put ='+  NetrwSettings:  by Charles E. Campbell, Jr.'
cf9f5ab
  put ='+ Press <F1> with cursor atop any line for help'
cf9f5ab
  put ='+ ---------------------------------------------'
cf9f5ab
  let s:netrw_settings_stop= line(".")
cf9f5ab
cf9f5ab
  put =''
cf9f5ab
  put ='+ Netrw Protocol Commands'
cf9f5ab
  put = 'let g:netrw_dav_cmd           = '.g:netrw_dav_cmd
cf9f5ab
  put = 'let g:netrw_fetch_cmd         = '.g:netrw_fetch_cmd
cf9f5ab
  put = 'let g:netrw_ftp_cmd           = '.g:netrw_ftp_cmd
cf9f5ab
  put = 'let g:netrw_http_cmd          = '.g:netrw_http_cmd
cf9f5ab
  put = 'let g:netrw_rcp_cmd           = '.g:netrw_rcp_cmd
cf9f5ab
  put = 'let g:netrw_rsync_cmd         = '.g:netrw_rsync_cmd
cf9f5ab
  put = 'let g:netrw_scp_cmd           = '.g:netrw_scp_cmd
cf9f5ab
  put = 'let g:netrw_sftp_cmd          = '.g:netrw_sftp_cmd
cf9f5ab
  put = 'let g:netrw_ssh_cmd           = '.g:netrw_ssh_cmd
cf9f5ab
  let s:netrw_protocol_stop= line(".")
cf9f5ab
  put = ''
cf9f5ab
cf9f5ab
  put ='+Netrw Transfer Control'
cf9f5ab
  put = 'let g:netrw_cygwin            = '.g:netrw_cygwin
cf9f5ab
  put = 'let g:netrw_ftp               = '.g:netrw_ftp
cf9f5ab
  put = 'let g:netrw_ftpmode           = '.g:netrw_ftpmode
cf9f5ab
  put = 'let g:netrw_ignorenetrc       = '.g:netrw_ignorenetrc
cf9f5ab
  put = 'let g:netrw_sshport           = '.g:netrw_sshport
cf9f5ab
  put = 'let g:netrw_use_nt_rcp        = '.g:netrw_use_nt_rcp
cf9f5ab
  put = 'let g:netrw_win95ftp          = '.g:netrw_win95ftp
cf9f5ab
  let s:netrw_xfer_stop= line(".")
cf9f5ab
  put =''
cf9f5ab
  put ='+ Netrw Messages'
cf9f5ab
  put ='let g:netrw_use_errorwindow    = '.g:netrw_use_errorwindow
cf9f5ab
cf9f5ab
  put = ''
cf9f5ab
  put ='+ Netrw Browser Control'
cf9f5ab
  put = 'let g:netrw_alto              = '.g:netrw_alto
cf9f5ab
  put = 'let g:netrw_altv              = '.g:netrw_altv
cf9f5ab
  put = 'let g:netrw_browse_split      = '.g:netrw_browse_split
cf9f5ab
  if exists("g:netrw_browsex_viewer")
cf9f5ab
   put = 'let g:netrw_browsex_viewer    = '.g:netrw_browsex_viewer
cf9f5ab
  else
cf9f5ab
   put = 'let g:netrw_browsex_viewer    = (not defined)'
cf9f5ab
  endif
cf9f5ab
  put = 'let g:netrw_compress          = '.g:netrw_compress
cf9f5ab
  put = 'let g:netrw_cursorline        = '.g:netrw_cursorline
cf9f5ab
  let decompressline= line("$")
cf9f5ab
  put ='let g:netrw_decompress...'
cf9f5ab
  put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
cf9f5ab
  put = 'let g:netrw_fastbrowse        = '.g:netrw_fastbrowse
cf9f5ab
  let fnameescline= line("$")
cf9f5ab
  put = 'let g:netrw_fname_escape...'
cf9f5ab
  put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
cf9f5ab
  put = 'let g:netrw_ftp_list_cmd      = '.g:netrw_ftp_list_cmd
cf9f5ab
  put = 'let g:netrw_ftp_sizelist_cmd  = '.g:netrw_ftp_sizelist_cmd
cf9f5ab
  put = 'let g:netrw_ftp_timelist_cmd  = '.g:netrw_ftp_timelist_cmd
cf9f5ab
  let globescline= line("$")
cf9f5ab
  put ='let g:netrw_glob_escape...'
cf9f5ab
  put = 'let g:netrw_hide              = '.g:netrw_hide
cf9f5ab
  put = 'let g:netrw_keepdir           = '.g:netrw_keepdir
cf9f5ab
  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
cf9f5ab
  put = 'let g:netrw_list_hide         = '.g:netrw_list_hide
cf9f5ab
  put = 'let g:netrw_liststyle         = '.g:netrw_liststyle
cf9f5ab
  put = 'let g:netrw_localcopycmd      = '.g:netrw_localcopycmd
cf9f5ab
  put = 'let g:netrw_local_mkdir       = '.g:netrw_local_mkdir
cf9f5ab
  put = 'let g:netrw_localmovecmd      = '.g:netrw_localmovecmd
cf9f5ab
  put = 'let g:netrw_local_rmdir       = '.g:netrw_local_rmdir
cf9f5ab
  put = 'let g:netrw_maxfilenamelen    = '.g:netrw_maxfilenamelen
cf9f5ab
  put = 'let g:netrw_menu              = '.g:netrw_menu
cf9f5ab
  put = 'let g:netrw_mkdir_cmd         = '.g:netrw_mkdir_cmd
cf9f5ab
  put = 'let g:netrw_preview           = '.g:netrw_preview
cf9f5ab
  put = 'let g:netrw_rename_cmd        = '.g:netrw_rename_cmd
cf9f5ab
  put = 'let g:netrw_retmap            = '.g:netrw_retmap
cf9f5ab
  put = 'let g:netrw_rm_cmd            = '.g:netrw_rm_cmd
cf9f5ab
  put = 'let g:netrw_rmdir_cmd         = '.g:netrw_rmdir_cmd
cf9f5ab
  put = 'let g:netrw_rmf_cmd           = '.g:netrw_rmf_cmd
cf9f5ab
  put = 'let g:netrw_silent            = '.g:netrw_silent
cf9f5ab
  put = 'let g:netrw_sort_by           = '.g:netrw_sort_by
cf9f5ab
  put = 'let g:netrw_sort_direction    = '.g:netrw_sort_direction
cf9f5ab
  put = 'let g:netrw_sort_options      = '.g:netrw_sort_options
cf9f5ab
  put = 'let g:netrw_sort_sequence     = '.g:netrw_sort_sequence
cf9f5ab
  put = 'let g:netrw_special_syntax    = '.g:netrw_special_syntax
cf9f5ab
  put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
cf9f5ab
  put = 'let g:netrw_scpport           = '.g:netrw_scpport
cf9f5ab
  put = 'let g:netrw_sshport           = '.g:netrw_sshport
cf9f5ab
  put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
cf9f5ab
  let tmpfileescline= line("$")
cf9f5ab
  put ='let g:netrw_tmpfile_escape...'
cf9f5ab
  put = 'let g:netrw_use_noswf         = '.g:netrw_use_noswf
cf9f5ab
  put = 'let g:netrw_xstrlen           = '.g:netrw_xstrlen
cf9f5ab
  put = 'let g:netrw_winsize           = '.g:netrw_winsize
cf9f5ab
cf9f5ab
  put =''
cf9f5ab
  put ='+ For help, place cursor on line and press <F1>'
cf9f5ab
cf9f5ab
  1d
cf9f5ab
  silent %s/^+/"/e
cf9f5ab
  res 99
cf9f5ab
  silent %s/= \([^0-9].*\)$/= '\1'/e
cf9f5ab
  silent %s/= $/= ''/e
cf9f5ab
  1
cf9f5ab
cf9f5ab
  call setline(decompressline,"let g:netrw_decompress        = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
cf9f5ab
  call setline(fnameescline,  "let g:netrw_fname_escape      = '".escape(g:netrw_fname_escape,"'")."'")
cf9f5ab
  call setline(globescline,   "let g:netrw_glob_escape       = '".escape(g:netrw_glob_escape,"'")."'")
cf9f5ab
  call setline(tmpfileescline,"let g:netrw_tmpfile_escape    = '".escape(g:netrw_tmpfile_escape,"'")."'")
cf9f5ab
cf9f5ab
  set nomod
cf9f5ab
cf9f5ab
  nmap <buffer> <silent> <F1>                       :call NetrwSettingHelp()<cr>
cf9f5ab
  nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
cf9f5ab
  let tmpfile= tempname()
cf9f5ab
  exe 'au BufWriteCmd	Netrw\ Settings	silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
cf9f5ab
endfun
cf9f5ab
cf9f5ab
" ---------------------------------------------------------------------
cf9f5ab
" NetrwSettingHelp: {{{2
cf9f5ab
fun! NetrwSettingHelp()
cf9f5ab
"  call Dfunc("NetrwSettingHelp()")
cf9f5ab
  let curline = getline(".")
cf9f5ab
  if curline =~ '='
cf9f5ab
   let varhelp = substitute(curline,'^\s*let ','','e')
cf9f5ab
   let varhelp = substitute(varhelp,'\s*=.*$','','e')
cf9f5ab
"   call Decho("trying help ".varhelp)
cf9f5ab
   try
cf9f5ab
    exe "he ".varhelp
cf9f5ab
   catch /^Vim\%((\a\+)\)\=:E149/
cf9f5ab
   	echo "***sorry*** no help available for <".varhelp.">"
cf9f5ab
   endtry
cf9f5ab
  elseif line(".") < s:netrw_settings_stop
cf9f5ab
   he netrw-settings
cf9f5ab
  elseif line(".") < s:netrw_protocol_stop
cf9f5ab
   he netrw-externapp
cf9f5ab
  elseif line(".") < s:netrw_xfer_stop
cf9f5ab
   he netrw-variables
cf9f5ab
  else
cf9f5ab
   he netrw-browse-var
cf9f5ab
  endif
cf9f5ab
"  call Dret("NetrwSettingHelp")
cf9f5ab
endfun
cf9f5ab
cf9f5ab
" ---------------------------------------------------------------------
cf9f5ab
" Modelines: {{{1
cf9f5ab
" vim:ts=8 fdm=marker