1" netrwSettings.vim: makes netrw settings simpler
2" Date:		Aug 12, 2021
3" Maintainer:	Charles E Campbell <[email protected]>
4" Version:	17	ASTRO-ONLY
5" Copyright:    Copyright (C) 1999-2007 Charles E. Campbell {{{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 = "v17"
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#WinPath("")
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'
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_silent            = '.g:netrw_silent
92  put = 'let g:netrw_use_nt_rcp        = '.g:netrw_use_nt_rcp
93  put = 'let g:netrw_win95ftp          = '.g:netrw_win95ftp
94  let s:netrw_xfer_stop= line(".")
95  put =''
96  put ='+ Netrw Messages'
97  put ='let g:netrw_use_errorwindow    = '.g:netrw_use_errorwindow
98
99  put = ''
100  put ='+ Netrw Browser Control'
101  if exists("g:netrw_altfile")
102   put = 'let g:netrw_altfile   = '.g:netrw_altfile
103  else
104   put = 'let g:netrw_altfile   = 0'
105  endif
106  put = 'let g:netrw_alto              = '.g:netrw_alto
107  put = 'let g:netrw_altv              = '.g:netrw_altv
108  put = 'let g:netrw_banner            = '.g:netrw_banner
109  if exists("g:netrw_bannerbackslash")
110   put = 'let g:netrw_bannerbackslash   = '.g:netrw_bannerbackslash
111  else
112   put = '\" let g:netrw_bannerbackslash   = (not defined)'
113  endif
114  put = 'let g:netrw_browse_split      = '.g:netrw_browse_split
115  if exists("g:netrw_browsex_viewer")
116   put = 'let g:netrw_browsex_viewer   = '.g:netrw_browsex_viewer
117  else
118   put = '\" let g:netrw_browsex_viewer   = (not defined)'
119  endif
120  put = 'let g:netrw_compress          = '.g:netrw_compress
121  if exists("g:Netrw_corehandler")
122   put = 'let g:Netrw_corehandler      = '.g:Netrw_corehandler
123  else
124   put = '\" let g:Netrw_corehandler      = (not defined)'
125  endif
126  put = 'let g:netrw_ctags             = '.g:netrw_ctags
127  put = 'let g:netrw_cursor            = '.g:netrw_cursor
128  let decompressline= line("$")
129  put = 'let g:netrw_decompress        = '.string(g:netrw_decompress)
130  if exists("g:netrw_dynamic_maxfilenamelen")
131   put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
132  else
133   put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
134  endif
135  put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
136  put = 'let g:netrw_errorlvl          = '.g:netrw_errorlvl
137  put = 'let g:netrw_fastbrowse        = '.g:netrw_fastbrowse
138  let fnameescline= line("$")
139  put = 'let g:netrw_fname_escape      = '.string(g:netrw_fname_escape)
140  put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
141  put = 'let g:netrw_ftp_list_cmd      = '.g:netrw_ftp_list_cmd
142  put = 'let g:netrw_ftp_sizelist_cmd  = '.g:netrw_ftp_sizelist_cmd
143  put = 'let g:netrw_ftp_timelist_cmd  = '.g:netrw_ftp_timelist_cmd
144  let globescline= line("$")
145  put = 'let g:netrw_glob_escape       = '.string(g:netrw_glob_escape)
146  put = 'let g:netrw_hide              = '.g:netrw_hide
147  if exists("g:netrw_home")
148   put = 'let g:netrw_home              = '.g:netrw_home
149  else
150   put = '\" let g:netrw_home              = (not defined)'
151  endif
152  put = 'let g:netrw_keepdir           = '.g:netrw_keepdir
153  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
154  put = 'let g:netrw_list_hide         = '.g:netrw_list_hide
155  put = 'let g:netrw_liststyle         = '.g:netrw_liststyle
156  put = 'let g:netrw_localcopycmd      = '.g:netrw_localcopycmd
157  put = 'let g:netrw_localcopycmdopt   = '.g:netrw_localcopycmdopt
158  put = 'let g:netrw_localmkdir        = '.g:netrw_localmkdir
159  put = 'let g:netrw_localmkdiropt     = '.g:netrw_localmkdiropt
160  put = 'let g:netrw_localmovecmd      = '.g:netrw_localmovecmd
161  put = 'let g:netrw_localmovecmdopt   = '.g:netrw_localmovecmdopt
162  put = 'let g:netrw_localrmdir        = '.g:netrw_localrmdir
163  put = 'let g:netrw_localrmdiropt     = '.g:netrw_localrmdiropt
164  put = 'let g:netrw_maxfilenamelen    = '.g:netrw_maxfilenamelen
165  put = 'let g:netrw_menu              = '.g:netrw_menu
166  put = 'let g:netrw_mousemaps         = '.g:netrw_mousemaps
167  put = 'let g:netrw_mkdir_cmd         = '.g:netrw_mkdir_cmd
168  if exists("g:netrw_nobeval")
169   put = 'let g:netrw_nobeval           = '.g:netrw_nobeval
170  else
171   put = '\" let g:netrw_nobeval           = (not defined)'
172  endif
173  put = 'let g:netrw_remote_mkdir      = '.g:netrw_remote_mkdir
174  put = 'let g:netrw_preview           = '.g:netrw_preview
175  put = 'let g:netrw_rename_cmd        = '.g:netrw_rename_cmd
176  put = 'let g:netrw_retmap            = '.g:netrw_retmap
177  put = 'let g:netrw_rm_cmd            = '.g:netrw_rm_cmd
178  put = 'let g:netrw_rmdir_cmd         = '.g:netrw_rmdir_cmd
179  put = 'let g:netrw_rmf_cmd           = '.g:netrw_rmf_cmd
180  put = 'let g:netrw_sort_by           = '.g:netrw_sort_by
181  put = 'let g:netrw_sort_direction    = '.g:netrw_sort_direction
182  put = 'let g:netrw_sort_options      = '.g:netrw_sort_options
183  put = 'let g:netrw_sort_sequence     = '.g:netrw_sort_sequence
184  put = 'let g:netrw_servername        = '.g:netrw_servername
185  put = 'let g:netrw_special_syntax    = '.g:netrw_special_syntax
186  put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
187  put = 'let g:netrw_ssh_cmd           = '.g:netrw_ssh_cmd
188  put = 'let g:netrw_scpport           = '.g:netrw_scpport
189  put = 'let g:netrw_sepchr            = '.g:netrw_sepchr
190  put = 'let g:netrw_sshport           = '.g:netrw_sshport
191  put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
192  let tmpfileescline= line("$")
193  put ='let g:netrw_tmpfile_escape...'
194  put = 'let g:netrw_use_noswf         = '.g:netrw_use_noswf
195  put = 'let g:netrw_xstrlen           = '.g:netrw_xstrlen
196  put = 'let g:netrw_winsize           = '.g:netrw_winsize
197
198  put =''
199  put ='+ For help, place cursor on line and press <F1>'
200
201  1d
202  silent %s/^+/"/e
203  res 99
204  silent %s/= \([^0-9].*\)$/= '\1'/e
205  silent %s/= $/= ''/e
206  1
207
208  call setline(decompressline,"let g:netrw_decompress        = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
209  call setline(fnameescline,  "let g:netrw_fname_escape      = '".escape(g:netrw_fname_escape,"'")."'")
210  call setline(globescline,   "let g:netrw_glob_escape       = '".escape(g:netrw_glob_escape,"'")."'")
211  call setline(tmpfileescline,"let g:netrw_tmpfile_escape    = '".escape(g:netrw_tmpfile_escape,"'")."'")
212
213  set nomod
214
215  nmap <buffer> <silent> <F1>                       :call NetrwSettingHelp()<cr>
216  nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
217  let tmpfile= tempname()
218  exe 'au BufWriteCmd	Netrw\ Settings	silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
219endfun
220
221" ---------------------------------------------------------------------
222" NetrwSettingHelp: {{{2
223fun! NetrwSettingHelp()
224"  call Dfunc("NetrwSettingHelp()")
225  let curline = getline(".")
226  if curline =~ '='
227   let varhelp = substitute(curline,'^\s*let ','','e')
228   let varhelp = substitute(varhelp,'\s*=.*$','','e')
229"   call Decho("trying help ".varhelp)
230   try
231    exe "he ".varhelp
232   catch /^Vim\%((\a\+)\)\=:E149/
233   	echo "***sorry*** no help available for <".varhelp.">"
234   endtry
235  elseif line(".") < s:netrw_settings_stop
236   he netrw-settings
237  elseif line(".") < s:netrw_protocol_stop
238   he netrw-externapp
239  elseif line(".") < s:netrw_xfer_stop
240   he netrw-variables
241  else
242   he netrw-browse-var
243  endif
244"  call Dret("NetrwSettingHelp")
245endfun
246
247" ---------------------------------------------------------------------
248" Modelines: {{{1
249" vim:ts=8 fdm=marker
250