blob: 3452602272c38e578c6272a313deb3fe47cee186 [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
Nir Lichtman1e34b952024-05-08 19:19:34 +02006" Last Change:
7" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
Bram Moolenaarff034192013-04-24 18:51:19 +02008" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
Bram Moolenaara5792f52005-11-23 21:25:05 +00009" Permission is hereby granted to use and distribute this code,
10" with or without modifications, provided that this copyright
11" notice is copied with it. Like anything else that's free,
12" netrwSettings.vim is provided *as is* and comes with no
13" warranty of any kind, either expressed or implied. By using
14" this plugin, you agree that in no event will the copyright
15" holder be liable for any damages resulting from the use
16" of this software.
17"
18" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
19" synagogues, preaching the gospel of the kingdom, and healing
20" every disease and every sickness among the people.
21" Load Once: {{{1
22if exists("g:loaded_netrwSettings") || &cp
23 finish
24endif
Bram Moolenaarb7398fe2023-05-14 18:50:25 +010025let g:loaded_netrwSettings = "v18"
Bram Moolenaar5c736222010-01-06 20:54:52 +010026if v:version < 700
27 echohl WarningMsg
28 echo "***warning*** this version of netrwSettings needs vim 7.0"
29 echohl Normal
30 finish
31endif
Bram Moolenaara5792f52005-11-23 21:25:05 +000032
33" ---------------------------------------------------------------------
34" NetrwSettings: {{{1
35fun! netrwSettings#NetrwSettings()
36 " this call is here largely just to insure that netrw has been loaded
Bram Moolenaar89a9c152021-08-29 21:55:35 +020037 call netrw#WinPath("")
Bram Moolenaara5792f52005-11-23 21:25:05 +000038 if !exists("g:loaded_netrw")
39 echohl WarningMsg | echomsg "***sorry*** netrw needs to be loaded prior to using NetrwSettings" | echohl None
40 return
41 endif
42
43 above wincmd s
44 enew
45 setlocal noswapfile bh=wipe
46 set ft=vim
47 file Netrw\ Settings
48
49 " these variables have the following default effects when they don't
50 " exist (ie. have not been set by the user in his/her .vimrc)
Bram Moolenaar313b7232007-05-05 17:56:55 +000051 if !exists("g:netrw_liststyle")
52 let g:netrw_liststyle= 0
Bram Moolenaara5792f52005-11-23 21:25:05 +000053 let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
54 endif
55 if !exists("g:netrw_silent")
56 let g:netrw_silent= 0
57 endif
58 if !exists("g:netrw_use_nt_rcp")
59 let g:netrw_use_nt_rcp= 0
60 endif
61 if !exists("g:netrw_ftp")
62 let g:netrw_ftp= 0
63 endif
64 if !exists("g:netrw_ignorenetrc")
65 let g:netrw_ignorenetrc= 0
66 endif
67
Bram Moolenaardb552d602006-03-23 22:59:57 +000068 put ='+ ---------------------------------------------'
Bram Moolenaarff034192013-04-24 18:51:19 +020069 put ='+ NetrwSettings: by Charles E. Campbell'
Bram Moolenaardb552d602006-03-23 22:59:57 +000070 put ='+ Press <F1> with cursor atop any line for help'
71 put ='+ ---------------------------------------------'
Bram Moolenaara5792f52005-11-23 21:25:05 +000072 let s:netrw_settings_stop= line(".")
73
74 put =''
75 put ='+ Netrw Protocol Commands'
76 put = 'let g:netrw_dav_cmd = '.g:netrw_dav_cmd
77 put = 'let g:netrw_fetch_cmd = '.g:netrw_fetch_cmd
78 put = 'let g:netrw_ftp_cmd = '.g:netrw_ftp_cmd
79 put = 'let g:netrw_http_cmd = '.g:netrw_http_cmd
80 put = 'let g:netrw_rcp_cmd = '.g:netrw_rcp_cmd
81 put = 'let g:netrw_rsync_cmd = '.g:netrw_rsync_cmd
82 put = 'let g:netrw_scp_cmd = '.g:netrw_scp_cmd
83 put = 'let g:netrw_sftp_cmd = '.g:netrw_sftp_cmd
84 put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
85 let s:netrw_protocol_stop= line(".")
86 put = ''
87
88 put ='+Netrw Transfer Control'
89 put = 'let g:netrw_cygwin = '.g:netrw_cygwin
90 put = 'let g:netrw_ftp = '.g:netrw_ftp
91 put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
92 put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
Bram Moolenaarccc18222007-05-10 18:25:20 +000093 put = 'let g:netrw_sshport = '.g:netrw_sshport
Bram Moolenaare6ae6222013-05-21 21:01:10 +020094 put = 'let g:netrw_silent = '.g:netrw_silent
Bram Moolenaara5792f52005-11-23 21:25:05 +000095 put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
Bram Moolenaara5792f52005-11-23 21:25:05 +000096 let s:netrw_xfer_stop= line(".")
Bram Moolenaarccc18222007-05-10 18:25:20 +000097 put =''
98 put ='+ Netrw Messages'
99 put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
Bram Moolenaara5792f52005-11-23 21:25:05 +0000100
101 put = ''
102 put ='+ Netrw Browser Control'
Bram Moolenaar8d043172014-01-23 14:24:41 +0100103 if exists("g:netrw_altfile")
104 put = 'let g:netrw_altfile = '.g:netrw_altfile
105 else
106 put = 'let g:netrw_altfile = 0'
107 endif
Bram Moolenaara5792f52005-11-23 21:25:05 +0000108 put = 'let g:netrw_alto = '.g:netrw_alto
109 put = 'let g:netrw_altv = '.g:netrw_altv
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200110 put = 'let g:netrw_banner = '.g:netrw_banner
111 if exists("g:netrw_bannerbackslash")
112 put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
113 else
114 put = '\" let g:netrw_bannerbackslash = (not defined)'
115 endif
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000116 put = 'let g:netrw_browse_split = '.g:netrw_browse_split
117 if exists("g:netrw_browsex_viewer")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200118 put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000119 else
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200120 put = '\" let g:netrw_browsex_viewer = (not defined)'
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000121 endif
Bram Moolenaar446cb832008-06-24 21:56:24 +0000122 put = 'let g:netrw_compress = '.g:netrw_compress
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200123 if exists("g:Netrw_corehandler")
124 put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
125 else
126 put = '\" let g:Netrw_corehandler = (not defined)'
127 endif
128 put = 'let g:netrw_ctags = '.g:netrw_ctags
Bram Moolenaar97d62492012-11-15 21:28:22 +0100129 put = 'let g:netrw_cursor = '.g:netrw_cursor
Bram Moolenaar446cb832008-06-24 21:56:24 +0000130 let decompressline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200131 put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
132 if exists("g:netrw_dynamic_maxfilenamelen")
133 put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
134 else
135 put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
136 endif
Bram Moolenaara5792f52005-11-23 21:25:05 +0000137 put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200138 put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +0000139 put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
Bram Moolenaar446cb832008-06-24 21:56:24 +0000140 let fnameescline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200141 put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
Bram Moolenaara5792f52005-11-23 21:25:05 +0000142 put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
143 put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
Bram Moolenaar313b7232007-05-05 17:56:55 +0000144 put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
145 put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
Bram Moolenaar446cb832008-06-24 21:56:24 +0000146 let globescline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200147 put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
Bram Moolenaara5792f52005-11-23 21:25:05 +0000148 put = 'let g:netrw_hide = '.g:netrw_hide
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200149 if exists("g:netrw_home")
150 put = 'let g:netrw_home = '.g:netrw_home
151 else
152 put = '\" let g:netrw_home = (not defined)'
153 endif
Bram Moolenaara5792f52005-11-23 21:25:05 +0000154 put = 'let g:netrw_keepdir = '.g:netrw_keepdir
155 put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
156 put = 'let g:netrw_list_hide = '.g:netrw_list_hide
Bram Moolenaar313b7232007-05-05 17:56:55 +0000157 put = 'let g:netrw_liststyle = '.g:netrw_liststyle
Bram Moolenaar446cb832008-06-24 21:56:24 +0000158 put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
Bram Moolenaar85850f32019-07-19 22:05:51 +0200159 put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
Bram Moolenaar97d62492012-11-15 21:28:22 +0100160 put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
Bram Moolenaar85850f32019-07-19 22:05:51 +0200161 put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
Bram Moolenaar446cb832008-06-24 21:56:24 +0000162 put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
Bram Moolenaar85850f32019-07-19 22:05:51 +0200163 put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
Bram Moolenaara5792f52005-11-23 21:25:05 +0000164 put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
Bram Moolenaar313b7232007-05-05 17:56:55 +0000165 put = 'let g:netrw_menu = '.g:netrw_menu
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200166 put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
Bram Moolenaara5792f52005-11-23 21:25:05 +0000167 put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200168 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
Bram Moolenaar446cb832008-06-24 21:56:24 +0000174 put = 'let g:netrw_preview = '.g:netrw_preview
Bram Moolenaara5792f52005-11-23 21:25:05 +0000175 put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
Bram Moolenaar446cb832008-06-24 21:56:24 +0000176 put = 'let g:netrw_retmap = '.g:netrw_retmap
Bram Moolenaara5792f52005-11-23 21:25:05 +0000177 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
Bram Moolenaara5792f52005-11-23 21:25:05 +0000180 put = 'let g:netrw_sort_by = '.g:netrw_sort_by
181 put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
Bram Moolenaarc236c162008-07-13 17:41:49 +0000182 put = 'let g:netrw_sort_options = '.g:netrw_sort_options
Bram Moolenaara5792f52005-11-23 21:25:05 +0000183 put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100184 put = 'let g:netrw_servername = '.g:netrw_servername
Bram Moolenaar446cb832008-06-24 21:56:24 +0000185 put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
Bram Moolenaara5792f52005-11-23 21:25:05 +0000186 put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200187 put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
Bram Moolenaarccc18222007-05-10 18:25:20 +0000188 put = 'let g:netrw_scpport = '.g:netrw_scpport
Bram Moolenaar5c736222010-01-06 20:54:52 +0100189 put = 'let g:netrw_sepchr = '.g:netrw_sepchr
Bram Moolenaarccc18222007-05-10 18:25:20 +0000190 put = 'let g:netrw_sshport = '.g:netrw_sshport
Bram Moolenaara5792f52005-11-23 21:25:05 +0000191 put = 'let g:netrw_timefmt = '.g:netrw_timefmt
Bram Moolenaar446cb832008-06-24 21:56:24 +0000192 let tmpfileescline= line("$")
193 put ='let g:netrw_tmpfile_escape...'
Bram Moolenaar313b7232007-05-05 17:56:55 +0000194 put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
Bram Moolenaar446cb832008-06-24 21:56:24 +0000195 put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
Bram Moolenaara5792f52005-11-23 21:25:05 +0000196 put = 'let g:netrw_winsize = '.g:netrw_winsize
197
198 put =''
Bram Moolenaarccc18222007-05-10 18:25:20 +0000199 put ='+ For help, place cursor on line and press <F1>'
Bram Moolenaara5792f52005-11-23 21:25:05 +0000200
201 1d
202 silent %s/^+/"/e
203 res 99
204 silent %s/= \([^0-9].*\)$/= '\1'/e
205 silent %s/= $/= ''/e
206 1
207
Bram Moolenaar446cb832008-06-24 21:56:24 +0000208 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,"'")."'")
Bram Moolenaar313b7232007-05-05 17:56:55 +0000212
Bram Moolenaara5792f52005-11-23 21:25:05 +0000213 set nomod
214
Bram Moolenaar313b7232007-05-05 17:56:55 +0000215 nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
216 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
Bram Moolenaara5792f52005-11-23 21:25:05 +0000217 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