blob: d65f83144ed6eb33ee58d4e5ba9dd6160c51b30c [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
Bram Moolenaar29634562020-01-09 21:46:04 +01003" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
Bram Moolenaar71badf92023-04-22 22:40:14 +01004" Version: 18
Bram Moolenaarff034192013-04-24 18:51:19 +02005" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
Bram Moolenaara5792f52005-11-23 21:25:05 +00006" 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
Bram Moolenaarb7398fe2023-05-14 18:50:25 +010022let g:loaded_netrwSettings = "v18"
Bram Moolenaar5c736222010-01-06 20:54:52 +010023if v:version < 700
24 echohl WarningMsg
25 echo "***warning*** this version of netrwSettings needs vim 7.0"
26 echohl Normal
27 finish
28endif
Bram Moolenaara5792f52005-11-23 21:25:05 +000029
30" ---------------------------------------------------------------------
31" NetrwSettings: {{{1
32fun! netrwSettings#NetrwSettings()
33 " this call is here largely just to insure that netrw has been loaded
Bram Moolenaar89a9c152021-08-29 21:55:35 +020034 call netrw#WinPath("")
Bram Moolenaara5792f52005-11-23 21:25:05 +000035 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)
Bram Moolenaar313b7232007-05-05 17:56:55 +000048 if !exists("g:netrw_liststyle")
49 let g:netrw_liststyle= 0
Bram Moolenaara5792f52005-11-23 21:25:05 +000050 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
Bram Moolenaardb552d602006-03-23 22:59:57 +000065 put ='+ ---------------------------------------------'
Bram Moolenaarff034192013-04-24 18:51:19 +020066 put ='+ NetrwSettings: by Charles E. Campbell'
Bram Moolenaardb552d602006-03-23 22:59:57 +000067 put ='+ Press <F1> with cursor atop any line for help'
68 put ='+ ---------------------------------------------'
Bram Moolenaara5792f52005-11-23 21:25:05 +000069 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
Bram Moolenaarccc18222007-05-10 18:25:20 +000090 put = 'let g:netrw_sshport = '.g:netrw_sshport
Bram Moolenaare6ae6222013-05-21 21:01:10 +020091 put = 'let g:netrw_silent = '.g:netrw_silent
Bram Moolenaara5792f52005-11-23 21:25:05 +000092 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(".")
Bram Moolenaarccc18222007-05-10 18:25:20 +000095 put =''
96 put ='+ Netrw Messages'
97 put ='let g:netrw_use_errorwindow = '.g:netrw_use_errorwindow
Bram Moolenaara5792f52005-11-23 21:25:05 +000098
99 put = ''
100 put ='+ Netrw Browser Control'
Bram Moolenaar8d043172014-01-23 14:24:41 +0100101 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
Bram Moolenaara5792f52005-11-23 21:25:05 +0000106 put = 'let g:netrw_alto = '.g:netrw_alto
107 put = 'let g:netrw_altv = '.g:netrw_altv
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200108 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
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000114 put = 'let g:netrw_browse_split = '.g:netrw_browse_split
115 if exists("g:netrw_browsex_viewer")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200116 put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000117 else
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200118 put = '\" let g:netrw_browsex_viewer = (not defined)'
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000119 endif
Bram Moolenaar446cb832008-06-24 21:56:24 +0000120 put = 'let g:netrw_compress = '.g:netrw_compress
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200121 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
Bram Moolenaar97d62492012-11-15 21:28:22 +0100127 put = 'let g:netrw_cursor = '.g:netrw_cursor
Bram Moolenaar446cb832008-06-24 21:56:24 +0000128 let decompressline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200129 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
Bram Moolenaara5792f52005-11-23 21:25:05 +0000135 put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200136 put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +0000137 put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
Bram Moolenaar446cb832008-06-24 21:56:24 +0000138 let fnameescline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200139 put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
Bram Moolenaara5792f52005-11-23 21:25:05 +0000140 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
Bram Moolenaar313b7232007-05-05 17:56:55 +0000142 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
Bram Moolenaar446cb832008-06-24 21:56:24 +0000144 let globescline= line("$")
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200145 put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
Bram Moolenaara5792f52005-11-23 21:25:05 +0000146 put = 'let g:netrw_hide = '.g:netrw_hide
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200147 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
Bram Moolenaara5792f52005-11-23 21:25:05 +0000152 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
Bram Moolenaar313b7232007-05-05 17:56:55 +0000155 put = 'let g:netrw_liststyle = '.g:netrw_liststyle
Bram Moolenaar446cb832008-06-24 21:56:24 +0000156 put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
Bram Moolenaar85850f32019-07-19 22:05:51 +0200157 put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
Bram Moolenaar97d62492012-11-15 21:28:22 +0100158 put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
Bram Moolenaar85850f32019-07-19 22:05:51 +0200159 put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
Bram Moolenaar446cb832008-06-24 21:56:24 +0000160 put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
Bram Moolenaar85850f32019-07-19 22:05:51 +0200161 put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
Bram Moolenaara5792f52005-11-23 21:25:05 +0000162 put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
Bram Moolenaar313b7232007-05-05 17:56:55 +0000163 put = 'let g:netrw_menu = '.g:netrw_menu
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200164 put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
Bram Moolenaara5792f52005-11-23 21:25:05 +0000165 put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200166 if exists("g:netrw_nobeval")
167 put = 'let g:netrw_nobeval = '.g:netrw_nobeval
168 else
169 put = '\" let g:netrw_nobeval = (not defined)'
170 endif
171 put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
Bram Moolenaar446cb832008-06-24 21:56:24 +0000172 put = 'let g:netrw_preview = '.g:netrw_preview
Bram Moolenaara5792f52005-11-23 21:25:05 +0000173 put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
Bram Moolenaar446cb832008-06-24 21:56:24 +0000174 put = 'let g:netrw_retmap = '.g:netrw_retmap
Bram Moolenaara5792f52005-11-23 21:25:05 +0000175 put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
176 put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
177 put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
Bram Moolenaara5792f52005-11-23 21:25:05 +0000178 put = 'let g:netrw_sort_by = '.g:netrw_sort_by
179 put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
Bram Moolenaarc236c162008-07-13 17:41:49 +0000180 put = 'let g:netrw_sort_options = '.g:netrw_sort_options
Bram Moolenaara5792f52005-11-23 21:25:05 +0000181 put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100182 put = 'let g:netrw_servername = '.g:netrw_servername
Bram Moolenaar446cb832008-06-24 21:56:24 +0000183 put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
Bram Moolenaara5792f52005-11-23 21:25:05 +0000184 put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200185 put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
Bram Moolenaarccc18222007-05-10 18:25:20 +0000186 put = 'let g:netrw_scpport = '.g:netrw_scpport
Bram Moolenaar5c736222010-01-06 20:54:52 +0100187 put = 'let g:netrw_sepchr = '.g:netrw_sepchr
Bram Moolenaarccc18222007-05-10 18:25:20 +0000188 put = 'let g:netrw_sshport = '.g:netrw_sshport
Bram Moolenaara5792f52005-11-23 21:25:05 +0000189 put = 'let g:netrw_timefmt = '.g:netrw_timefmt
Bram Moolenaar446cb832008-06-24 21:56:24 +0000190 let tmpfileescline= line("$")
191 put ='let g:netrw_tmpfile_escape...'
Bram Moolenaar313b7232007-05-05 17:56:55 +0000192 put = 'let g:netrw_use_noswf = '.g:netrw_use_noswf
Bram Moolenaar446cb832008-06-24 21:56:24 +0000193 put = 'let g:netrw_xstrlen = '.g:netrw_xstrlen
Bram Moolenaara5792f52005-11-23 21:25:05 +0000194 put = 'let g:netrw_winsize = '.g:netrw_winsize
195
196 put =''
Bram Moolenaarccc18222007-05-10 18:25:20 +0000197 put ='+ For help, place cursor on line and press <F1>'
Bram Moolenaara5792f52005-11-23 21:25:05 +0000198
199 1d
200 silent %s/^+/"/e
201 res 99
202 silent %s/= \([^0-9].*\)$/= '\1'/e
203 silent %s/= $/= ''/e
204 1
205
Bram Moolenaar446cb832008-06-24 21:56:24 +0000206 call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
207 call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
208 call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
209 call setline(tmpfileescline,"let g:netrw_tmpfile_escape = '".escape(g:netrw_tmpfile_escape,"'")."'")
Bram Moolenaar313b7232007-05-05 17:56:55 +0000210
Bram Moolenaara5792f52005-11-23 21:25:05 +0000211 set nomod
212
Bram Moolenaar313b7232007-05-05 17:56:55 +0000213 nmap <buffer> <silent> <F1> :call NetrwSettingHelp()<cr>
214 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call NetrwSettingHelp()<cr>
Bram Moolenaara5792f52005-11-23 21:25:05 +0000215 let tmpfile= tempname()
216 exe 'au BufWriteCmd Netrw\ Settings silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
217endfun
218
219" ---------------------------------------------------------------------
220" NetrwSettingHelp: {{{2
221fun! NetrwSettingHelp()
222" call Dfunc("NetrwSettingHelp()")
223 let curline = getline(".")
224 if curline =~ '='
225 let varhelp = substitute(curline,'^\s*let ','','e')
226 let varhelp = substitute(varhelp,'\s*=.*$','','e')
227" call Decho("trying help ".varhelp)
228 try
229 exe "he ".varhelp
230 catch /^Vim\%((\a\+)\)\=:E149/
231 echo "***sorry*** no help available for <".varhelp.">"
232 endtry
233 elseif line(".") < s:netrw_settings_stop
234 he netrw-settings
235 elseif line(".") < s:netrw_protocol_stop
236 he netrw-externapp
237 elseif line(".") < s:netrw_xfer_stop
238 he netrw-variables
239 else
240 he netrw-browse-var
241 endif
242" call Dret("NetrwSettingHelp")
243endfun
244
245" ---------------------------------------------------------------------
246" Modelines: {{{1
247" vim:ts=8 fdm=marker