blob: 5525c0d035f0c913548fa34450371aa7e3c317c2 [file] [log] [blame]
Bram Moolenaara5792f52005-11-23 21:25:05 +00001" netrwSettings.vim: makes netrw settings simpler
Bram Moolenaar71badf92023-04-22 22:40:14 +01002" Date: Nov 15, 2021
Christian Brabandtf9ca1392024-02-19 20:37:11 +01003" Maintainer: This runtime file is looking for a new maintainer.
4" Former Maintainer: Charles E Campbell
Bram Moolenaar71badf92023-04-22 22:40:14 +01005" Version: 18
Bram Moolenaarff034192013-04-24 18:51:19 +02006" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
Bram Moolenaara5792f52005-11-23 21:25:05 +00007" Permission is hereby granted to use and distribute this code,
8" with or without modifications, provided that this copyright
9" notice is copied with it. Like anything else that's free,
10" netrwSettings.vim is provided *as is* and comes with no
11" warranty of any kind, either expressed or implied. By using
12" this plugin, you agree that in no event will the copyright
13" holder be liable for any damages resulting from the use
14" of this software.
15"
16" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
17" synagogues, preaching the gospel of the kingdom, and healing
18" every disease and every sickness among the people.
19" Load Once: {{{1
20if exists("g:loaded_netrwSettings") || &cp
21 finish
22endif
Bram Moolenaarb7398fe2023-05-14 18:50:25 +010023let g:loaded_netrwSettings = "v18"
Bram Moolenaar5c736222010-01-06 20:54:52 +010024if v:version < 700
25 echohl WarningMsg
26 echo "***warning*** this version of netrwSettings needs vim 7.0"
27 echohl Normal
28 finish
29endif
Bram Moolenaara5792f52005-11-23 21:25:05 +000030
31" ---------------------------------------------------------------------
32" NetrwSettings: {{{1
33fun! netrwSettings#NetrwSettings()
34 " this call is here largely just to insure that netrw has been loaded
Bram Moolenaar89a9c152021-08-29 21:55:35 +020035 call netrw#WinPath("")
Bram Moolenaara5792f52005-11-23 21:25:05 +000036 if !exists("g:loaded_netrw")
37 echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
38 return
39 endif
40
41 above wincmd s
42 enew
43 setlocal noswapfile bh=wipe
44 set ft=vim
45 file Netrw\ Settings
46
47 " these variables have the following default effects when they don't
48 " exist (ie. have not been set by the user in his/her .vimrc)
Bram Moolenaar313b7232007-05-05 17:56:55 +000049 if !exists("g:netrw_liststyle")
50 let g:netrw_liststyle= 0
Bram Moolenaara5792f52005-11-23 21:25:05 +000051 let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
52 endif
53 if !exists("g:netrw_silent")
54 let g:netrw_silent= 0
55 endif
56 if !exists("g:netrw_use_nt_rcp")
57 let g:netrw_use_nt_rcp= 0
58 endif
59 if !exists("g:netrw_ftp")
60 let g:netrw_ftp= 0
61 endif
62 if !exists("g:netrw_ignorenetrc")
63 let g:netrw_ignorenetrc= 0
64 endif
65
Bram Moolenaardb552d602006-03-23 22:59:57 +000066 put ='+ ---------------------------------------------'
Bram Moolenaarff034192013-04-24 18:51:19 +020067 put ='+ NetrwSettings: by Charles E. Campbell'
Bram Moolenaardb552d602006-03-23 22:59:57 +000068 put ='+ Press <F1> with cursor atop any line for help'
69 put ='+ ---------------------------------------------'
Bram Moolenaara5792f52005-11-23 21:25:05 +000070 let s:netrw_settings_stop= line(".")
71
72 put =''
73 put ='+ Netrw Protocol Commands'
74 put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
75 put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
76 put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
77 put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
78 put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
79 put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
80 put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
81 put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
82 put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
83 let s:netrw_protocol_stop= line(".")
84 put = ''
85
86 put ='+Netrw Transfer Control'
87 put = 'let g:netrw_cygwin = '.g:netrw_cygwin
88 put = 'let g:netrw_ftp = '.g:netrw_ftp
89 put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
90 put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
Bram Moolenaarccc18222007-05-10 18:25:20 +000091 put = 'let g:netrw_sshport = '.g:netrw_sshport
Bram Moolenaare6ae6222013-05-21 21:01:10 +020092 put = 'let g:netrw_silent = '.g:netrw_silent
Bram Moolenaara5792f52005-11-23 21:25:05 +000093 put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
94 put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
95 let s:netrw_xfer_stop= line(".")
Bram Moolenaarccc18222007-05-10 18:25:20 +000096 put =''
97 put ='+ Netrw Messages'
98 put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
Bram Moolenaara5792f52005-11-23 21:25:05 +000099
100 put = ''
101 put ='+ Netrw Browser Control'
Bram Moolenaar8d043172014-01-23 14:24:41 +0100102 if exists("g:netrw_altfile")
103 put = 'let g:netrw_altfile = '.g:netrw_altfile
104 else
105 put = 'let g:netrw_altfile = 0'
106 endif
Bram Moolenaara5792f52005-11-23 21:25:05 +0000107 put = 'let g:netrw_alto = '.g:netrw_alto
108 put = 'let g:netrw_altv = '.g:netrw_altv
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200109 put = 'let g:netrw_banner = '.g:netrw_banner
110 if exists("g:netrw_bannerbackslash")
111 put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
112 else
113 put = '\" let g:netrw_bannerbackslash = (not defined)'
114 endif
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000115 put = 'let g:netrw_browse_split = '.g:netrw_browse_split
116 if exists("g:netrw_browsex_viewer")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200117 put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000118 else
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200119 put = '\" let g:netrw_browsex_viewer = (not defined)'
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000120 endif
Bram Moolenaar446cb832008-06-24 21:56:24 +0000121 put = 'let g:netrw_compress = '.g:netrw_compress
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200122 if exists("g:Netrw_corehandler")
123 put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
124 else
125 put = '\" let g:Netrw_corehandler = (not defined)'
126 endif
127 put = 'let g:netrw_ctags = '.g:netrw_ctags
Bram Moolenaar97d62492012-11-15 21:28:22 +0100128 put = 'let g:netrw_cursor = '.g:netrw_cursor
Bram Moolenaar446cb832008-06-24 21:56:24 +0000129 let decompressline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200130 put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
131 if exists("g:netrw_dynamic_maxfilenamelen")
132 put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
133 else
134 put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
135 endif
Bram Moolenaara5792f52005-11-23 21:25:05 +0000136 put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200137 put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +0000138 put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
Bram Moolenaar446cb832008-06-24 21:56:24 +0000139 let fnameescline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200140 put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
Bram Moolenaara5792f52005-11-23 21:25:05 +0000141 put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
142 put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
Bram Moolenaar313b7232007-05-05 17:56:55 +0000143 put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
144 put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
Bram Moolenaar446cb832008-06-24 21:56:24 +0000145 let globescline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200146 put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
Bram Moolenaara5792f52005-11-23 21:25:05 +0000147 put = 'let g:netrw_hide = '.g:netrw_hide
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200148 if exists("g:netrw_home")
149 put = 'let g:netrw_home = '.g:netrw_home
150 else
151 put = '\" let g:netrw_home = (not defined)'
152 endif
Bram Moolenaara5792f52005-11-23 21:25:05 +0000153 put = 'let g:netrw_keepdir = '.g:netrw_keepdir
154 put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
155 put = 'let g:netrw_list_hide = '.g:netrw_list_hide
Bram Moolenaar313b7232007-05-05 17:56:55 +0000156 put = 'let g:netrw_liststyle = '.g:netrw_liststyle
Bram Moolenaar446cb832008-06-24 21:56:24 +0000157 put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
Bram Moolenaar85850f32019-07-19 22:05:51 +0200158 put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
Bram Moolenaar97d62492012-11-15 21:28:22 +0100159 put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
Bram Moolenaar85850f32019-07-19 22:05:51 +0200160 put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
Bram Moolenaar446cb832008-06-24 21:56:24 +0000161 put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
Bram Moolenaar85850f32019-07-19 22:05:51 +0200162 put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
Bram Moolenaara5792f52005-11-23 21:25:05 +0000163 put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
Bram Moolenaar313b7232007-05-05 17:56:55 +0000164 put = 'let g:netrw_menu = '.g:netrw_menu
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200165 put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
Bram Moolenaara5792f52005-11-23 21:25:05 +0000166 put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200167 if exists("g:netrw_nobeval")
168 put = 'let g:netrw_nobeval = '.g:netrw_nobeval
169 else
170 put = '\" let g:netrw_nobeval = (not defined)'
171 endif
172 put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
Bram Moolenaar446cb832008-06-24 21:56:24 +0000173 put = 'let g:netrw_preview = '.g:netrw_preview
Bram Moolenaara5792f52005-11-23 21:25:05 +0000174 put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
Bram Moolenaar446cb832008-06-24 21:56:24 +0000175 put = 'let g:netrw_retmap = '.g:netrw_retmap
Bram Moolenaara5792f52005-11-23 21:25:05 +0000176 put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
177 put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
178 put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
Bram Moolenaara5792f52005-11-23 21:25:05 +0000179 put = 'let g:netrw_sort_by = '.g:netrw_sort_by
180 put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
Bram Moolenaarc236c162008-07-13 17:41:49 +0000181 put = 'let g:netrw_sort_options = '.g:netrw_sort_options
Bram Moolenaara5792f52005-11-23 21:25:05 +0000182 put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100183 put = 'let g:netrw_servername = '.g:netrw_servername
Bram Moolenaar446cb832008-06-24 21:56:24 +0000184 put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
Bram Moolenaara5792f52005-11-23 21:25:05 +0000185 put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200186 put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
Bram Moolenaarccc18222007-05-10 18:25:20 +0000187 put = 'let g:netrw_scpport = '.g:netrw_scpport
Bram Moolenaar5c736222010-01-06 20:54:52 +0100188 put = 'let g:netrw_sepchr = '.g:netrw_sepchr
Bram Moolenaarccc18222007-05-10 18:25:20 +0000189 put = 'let g:netrw_sshport = '.g:netrw_sshport
Bram Moolenaara5792f52005-11-23 21:25:05 +0000190 put = 'let g:netrw_timefmt = '.g:netrw_timefmt
Bram Moolenaar446cb832008-06-24 21:56:24 +0000191 let tmpfileescline= line("$")
192 put ='let g:netrw_tmpfile_escape...'
Bram Moolenaar313b7232007-05-05 17:56:55 +0000193 put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
Bram Moolenaar446cb832008-06-24 21:56:24 +0000194 put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
Bram Moolenaara5792f52005-11-23 21:25:05 +0000195 put = 'let g:netrw_winsize = '.g:netrw_winsize
196
197 put =''
Bram Moolenaarccc18222007-05-10 18:25:20 +0000198 put ='+ For help, place cursor on line and press <F1>'
Bram Moolenaara5792f52005-11-23 21:25:05 +0000199
200 1d
201 silent %s/^+/"/e
202 res 99
203 silent %s/= \([^0-9].*\)$/= '\1'/e
204 silent %s/= $/= ''/e
205 1
206
Bram Moolenaar446cb832008-06-24 21:56:24 +0000207 call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
208 call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
209 call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
210 call setline(tmpfileescline,"let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
Bram Moolenaar313b7232007-05-05 17:56:55 +0000211
Bram Moolenaara5792f52005-11-23 21:25:05 +0000212 set nomod
213
Bram Moolenaar313b7232007-05-05 17:56:55 +0000214 nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
215 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
Bram Moolenaara5792f52005-11-23 21:25:05 +0000216 let tmpfile= tempname()
217 exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
218endfun
219
220" ---------------------------------------------------------------------
221" NetrwSettingHelp: {{{2
222fun! NetrwSettingHelp()
223" call Dfunc("NetrwSettingHelp()")
224 let curline = getline(".")
225 if curline =~ '='
226 let varhelp = substitute(curline,'^\s*let ','','e')
227 let varhelp = substitute(varhelp,'\s*=.*$','','e')
228" call Decho("trying help ".varhelp)
229 try
230 exe "he ".varhelp
231 catch /^Vim\%((\a\+)\)\=:E149/
232 echo "***sorry*** no help available for <".varhelp.">"
233 endtry
234 elseif line(".") < s:netrw_settings_stop
235 he netrw-settings
236 elseif line(".") < s:netrw_protocol_stop
237 he netrw-externapp
238 elseif line(".") < s:netrw_xfer_stop
239 he netrw-variables
240 else
241 he netrw-browse-var
242 endif
243" call Dret("NetrwSettingHelp")
244endfun
245
246" ---------------------------------------------------------------------
247" Modelines: {{{1
248" vim:ts=8 fdm=marker