1" netrwSettings.vim: makes netrw settings simpler
2" Date:		Sep 03, 2008
3" Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
4" Version:	13
5" Copyright:    Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
6"               Permission is hereby granted to use and distribute this code,
7"               with or without modifications, provided that this copyright
8"               notice is copied with it. Like anything else that's free,
9"               netrwSettings.vim is provided *as is* and comes with no
10"               warranty of any kind, either expressed or implied. By using
11"               this plugin, you agree that in no event will the copyright
12"               holder be liable for any damages resulting from the use
13"               of this software.
14"
15" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
16"                synagogues, preaching the gospel of the kingdom, and healing
17"                every disease and every sickness among the people.
18" Load Once: {{{1
19if exists("g:loaded_netrwSettings") || &cp
20  finish
21endif
22let g:loaded_netrwSettings = "v13"
23if v:version < 700
24 echohl WarningMsg
25 echo "***warning*** this version of netrwSettings needs vim 7.0"
26 echohl Normal
27 finish
28endif
29
30" ---------------------------------------------------------------------
31" NetrwSettings: {{{1
32fun! netrwSettings#NetrwSettings()
33  " this call is here largely just to insure that netrw has been loaded
34  call netrw#NetrwSavePosn()
35  if !exists("g:loaded_netrw")
36   echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
37   return
38  endif
39
40  above wincmd s
41  enew
42  setlocal noswapfile bh=wipe
43  set ft=vim
44  file Netrw\ Settings
45
46  " these variables have the following default effects when they don't
47  " exist (ie. have not been set by the user in his/her .vimrc)
48  if !exists("g:netrw_liststyle")
49   let g:netrw_liststyle= 0
50   let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
51  endif
52  if !exists("g:netrw_silent")
53   let g:netrw_silent= 0
54  endif
55  if !exists("g:netrw_use_nt_rcp")
56   let g:netrw_use_nt_rcp= 0
57  endif
58  if !exists("g:netrw_ftp")
59   let g:netrw_ftp= 0
60  endif
61  if !exists("g:netrw_ignorenetrc")
62   let g:netrw_ignorenetrc= 0
63  endif
64
65  put ='+ ---------------------------------------------'
66  put ='+  NetrwSettings:  by Charles E. Campbell, Jr.'
67  put ='+ Press <F1> with cursor atop any line for help'
68  put ='+ ---------------------------------------------'
69  let s:netrw_settings_stop= line(".")
70
71  put =''
72  put ='+ Netrw Protocol Commands'
73  put = 'let g:netrw_dav_cmd           = '.g:netrw_dav_cmd
74  put = 'let g:netrw_fetch_cmd         = '.g:netrw_fetch_cmd
75  put = 'let g:netrw_ftp_cmd           = '.g:netrw_ftp_cmd
76  put = 'let g:netrw_http_cmd          = '.g:netrw_http_cmd
77  put = 'let g:netrw_rcp_cmd           = '.g:netrw_rcp_cmd
78  put = 'let g:netrw_rsync_cmd         = '.g:netrw_rsync_cmd
79  put = 'let g:netrw_scp_cmd           = '.g:netrw_scp_cmd
80  put = 'let g:netrw_sftp_cmd          = '.g:netrw_sftp_cmd
81  put = 'let g:netrw_ssh_cmd           = '.g:netrw_ssh_cmd
82  let s:netrw_protocol_stop= line(".")
83  put = ''
84
85  put ='+Netrw Transfer Control'
86  put = 'let g:netrw_cygwin            = '.g:netrw_cygwin
87  put = 'let g:netrw_ftp               = '.g:netrw_ftp
88  put = 'let g:netrw_ftpmode           = '.g:netrw_ftpmode
89  put = 'let g:netrw_ignorenetrc       = '.g:netrw_ignorenetrc
90  put = 'let g:netrw_sshport           = '.g:netrw_sshport
91  put = 'let g:netrw_use_nt_rcp        = '.g:netrw_use_nt_rcp
92  put = 'let g:netrw_win95ftp          = '.g:netrw_win95ftp
93  let s:netrw_xfer_stop= line(".")
94  put =''
95  put ='+ Netrw Messages'
96  put ='let g:netrw_use_errorwindow    = '.g:netrw_use_errorwindow
97
98  put = ''
99  put ='+ Netrw Browser Control'
100  put = 'let g:netrw_alto              = '.g:netrw_alto
101  put = 'let g:netrw_altv              = '.g:netrw_altv
102  put = 'let g:netrw_browse_split      = '.g:netrw_browse_split
103  if exists("g:netrw_browsex_viewer")
104   put = 'let g:netrw_browsex_viewer    = '.g:netrw_browsex_viewer
105  else
106   put = 'let g:netrw_browsex_viewer    = (not defined)'
107  endif
108  put = 'let g:netrw_compress          = '.g:netrw_compress
109  put = 'let g:netrw_cursorline        = '.g:netrw_cursorline
110  let decompressline= line("$")
111  put ='let g:netrw_decompress...'
112  put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
113  put = 'let g:netrw_fastbrowse        = '.g:netrw_fastbrowse
114  let fnameescline= line("$")
115  put = 'let g:netrw_fname_escape...'
116  put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
117  put = 'let g:netrw_ftp_list_cmd      = '.g:netrw_ftp_list_cmd
118  put = 'let g:netrw_ftp_sizelist_cmd  = '.g:netrw_ftp_sizelist_cmd
119  put = 'let g:netrw_ftp_timelist_cmd  = '.g:netrw_ftp_timelist_cmd
120  let globescline= line("$")
121  put ='let g:netrw_glob_escape...'
122  put = 'let g:netrw_hide              = '.g:netrw_hide
123  put = 'let g:netrw_keepdir           = '.g:netrw_keepdir
124  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
125  put = 'let g:netrw_list_hide         = '.g:netrw_list_hide
126  put = 'let g:netrw_liststyle         = '.g:netrw_liststyle
127  put = 'let g:netrw_localcopycmd      = '.g:netrw_localcopycmd
128  put = 'let g:netrw_local_mkdir       = '.g:netrw_local_mkdir
129  put = 'let g:netrw_localmovecmd      = '.g:netrw_localmovecmd
130  put = 'let g:netrw_local_rmdir       = '.g:netrw_local_rmdir
131  put = 'let g:netrw_maxfilenamelen    = '.g:netrw_maxfilenamelen
132  put = 'let g:netrw_menu              = '.g:netrw_menu
133  put = 'let g:netrw_mkdir_cmd         = '.g:netrw_mkdir_cmd
134  put = 'let g:netrw_preview           = '.g:netrw_preview
135  put = 'let g:netrw_rename_cmd        = '.g:netrw_rename_cmd
136  put = 'let g:netrw_retmap            = '.g:netrw_retmap
137  put = 'let g:netrw_rm_cmd            = '.g:netrw_rm_cmd
138  put = 'let g:netrw_rmdir_cmd         = '.g:netrw_rmdir_cmd
139  put = 'let g:netrw_rmf_cmd           = '.g:netrw_rmf_cmd
140  put = 'let g:netrw_silent            = '.g:netrw_silent
141  put = 'let g:netrw_sort_by           = '.g:netrw_sort_by
142  put = 'let g:netrw_sort_direction    = '.g:netrw_sort_direction
143  put = 'let g:netrw_sort_options      = '.g:netrw_sort_options
144  put = 'let g:netrw_sort_sequence     = '.g:netrw_sort_sequence
145  put = 'let g:netrw_special_syntax    = '.g:netrw_special_syntax
146  put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
147  put = 'let g:netrw_scpport           = '.g:netrw_scpport
148  put = 'let g:netrw_sepchr            = '.g:netrw_sepchr
149  put = 'let g:netrw_sshport           = '.g:netrw_sshport
150  put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
151  let tmpfileescline= line("$")
152  put ='let g:netrw_tmpfile_escape...'
153  put = 'let g:netrw_use_noswf         = '.g:netrw_use_noswf
154  put = 'let g:netrw_xstrlen           = '.g:netrw_xstrlen
155  put = 'let g:netrw_winsize           = '.g:netrw_winsize
156
157  put =''
158  put ='+ For help, place cursor on line and press <F1>'
159
160  1d
161  silent %s/^+/"/e
162  res 99
163  silent %s/= \([^0-9].*\)$/= '\1'/e
164  silent %s/= $/= ''/e
165  1
166
167  call setline(decompressline,"let g:netrw_decompress        = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
168  call setline(fnameescline,  "let g:netrw_fname_escape      = '".escape(g:netrw_fname_escape,"'")."'")
169  call setline(globescline,   "let g:netrw_glob_escape       = '".escape(g:netrw_glob_escape,"'")."'")
170  call setline(tmpfileescline,"let g:netrw_tmpfile_escape    = '".escape(g:netrw_tmpfile_escape,"'")."'")
171
172  set nomod
173
174  nmap <buffer> <silent> <F1>                       :call NetrwSettingHelp()<cr>
175  nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
176  let tmpfile= tempname()
177  exe 'au BufWriteCmd	Netrw\ Settings	silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
178endfun
179
180" ---------------------------------------------------------------------
181" NetrwSettingHelp: {{{2
182fun! NetrwSettingHelp()
183"  call Dfunc("NetrwSettingHelp()")
184  let curline = getline(".")
185  if curline =~ '='
186   let varhelp = substitute(curline,'^\s*let ','','e')
187   let varhelp = substitute(varhelp,'\s*=.*$','','e')
188"   call Decho("trying help ".varhelp)
189   try
190    exe "he ".varhelp
191   catch /^Vim\%((\a\+)\)\=:E149/
192   	echo "***sorry*** no help available for <".varhelp.">"
193   endtry
194  elseif line(".") < s:netrw_settings_stop
195   he netrw-settings
196  elseif line(".") < s:netrw_protocol_stop
197   he netrw-externapp
198  elseif line(".") < s:netrw_xfer_stop
199   he netrw-variables
200  else
201   he netrw-browse-var
202  endif
203"  call Dret("NetrwSettingHelp")
204endfun
205
206" ---------------------------------------------------------------------
207" Modelines: {{{1
208" vim:ts=8 fdm=marker
209