annotate runtime/plugin/netrw.vim @ 15:631143ac4a01 v7.0007

updated for version 7.0007
author vimboss
date Sat, 10 Jul 2004 09:47:34 +0000
parents bdeee1504ac1
children db5102f7e29f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1 " netrw.vim: Handles file transfer and remote directory listing across a network
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2 " Last Change: Jul 08, 2004
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Maintainer: Charles E. Campbell, Jr. PhD <drchipNOSPAM at campbellfamily.biz>
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
4 " Version: 47l ASTRO-ONLY
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " License: Vim License (see vim's :help license)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 " But be doers of the word, and not only hearers, deluding your own selves
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 " (James 1:22 RSV)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
11 " Exit quickly when already loaded or when 'compatible' is set. {{{1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 if exists("loaded_netrw") || &cp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 endif
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
15 let loaded_netrw = "v47l ASTRO-ONLY"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
16 let s:save_cpo = &cpo
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
17 let loaded_explorer = 1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 set cpo&vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 " ---------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 " Default values for global netrw variables {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 if !exists("g:netrw_ftpmode")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 let g:netrw_ftpmode= "binary"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 if !exists("g:netrw_win95ftp")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 let g:netrw_win95ftp= 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 if !exists("g:netrw_cygwin")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 if has("win32")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 let g:netrw_cygwin= 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 let g:netrw_cygwin= 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 endif
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
35 if !exists("g:netrw_list_cmd")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
36 if executable("ssh")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
37 " provide a default listing command
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
38 let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
39 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
40 " call Decho("ssh is not executable, can't do remote directory exploring")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
41 let g:netrw_list_cmd= ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
42 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
43 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
44 if !exists("g:netrw_rm_cmd")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
45 let g:netrw_rm_cmd = "ssh HOSTNAME rm"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
46 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
47 if !exists("g:netrw_rmf_cmd")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
48 let g:netrw_rmf_cmd = "ssh HOSTNAME rm -f"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
49 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
50 if !exists("g:netrw_rmdir_cmd")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
51 let g:netrw_rmdir_cmd = "ssh HOSTNAME rmdir"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
52 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
53 if !exists("g:netrw_rename_cmd")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
54 let g:netrw_rename_cmd= "ssh HOSTNAME mv"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
55 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
56 if exists("g:netrw_silent") && g:netrw_silent != 0
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
57 let g:netrw_silentxfer= "silent "
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
58 else
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
59 let g:netrw_silentxfer= ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
60 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
61 if !exists("g:netrw_winsize")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
62 let g:netrw_winsize= ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
63 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
64 if !exists("g:netrw_list_hide")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
65 let g:netrw_list_hide= ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
66 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
67 if !exists("g:netrw_sort_by")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
68 " alternatives: date size
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
69 let g:netrw_sort_by= "name"
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
70 endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
71 if !exists("g:netrw_sort_sequence")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
72 let g:netrw_sort_sequence= '/$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
73 endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
74 if !exists("g:netrw_sort_direction")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
75 " alternative: reverse (z y x ...)
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
76 let g:netrw_sort_direction= "normal"
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
77 endif
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
78 if !exists("g:netrw_longlist") || g:netrw_longlist == 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
79 let g:netrw_longlist= 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
80 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
81 let g:netrw_longlist= 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
82 let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa -l"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
83 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
84 if !exists("g:netrw_timefmt")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
85 let g:netrw_timefmt= "%c"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
86 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
87 if !exists("g:netrw_local_rmdir")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
88 let g:netrw_local_rmdir= "rmdir"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
89 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
90 if !exists("g:netrw_local_rename")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
91 if has("win32")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
92 let g:netrw_local_rename= "ren"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
93 elseif has("unix")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
94 let g:netrw_local_rename= "mv"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
95 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
96 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
97 if !exists("g:netrw_local_mkdir")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
98 let g:netrw_local_mkdir= "mkdir"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
99 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
100 if !exists("g:netrw_mkdir_cmd")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
101 let g:netrw_mkdir_cmd= "ssh HOSTNAME mkdir"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
102 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
103
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
104 " BufEnter event ignored by decho when following variable is true
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
105 " Has a side effect that doau BufReadPost doesn't work, so
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
106 " files read by network transfer aren't appropriately highlighted.
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
107 "let g:decho_bufenter = 1 "Decho
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 " ---------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 " Default values for global protocol variables {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 if !exists("g:netrw_rcp_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 let g:netrw_rcp_cmd = "rcp"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 if !exists("g:netrw_ftp_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 let g:netrw_ftp_cmd = "ftp"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 if !exists("g:netrw_scp_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 let g:netrw_scp_cmd = "scp -q"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 if !exists("g:netrw_sftp_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 let g:netrw_sftp_cmd = "sftp"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 if !exists("g:netrw_http_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 if executable("wget")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 let g:netrw_http_cmd = "wget -q -O"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 elseif executable("fetch")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 let g:netrw_http_cmd = "fetch -o"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 let g:netrw_http_cmd = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 if !exists("g:netrw_dav_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 let g:netrw_dav_cmd = "cadaver"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 if !exists("g:netrw_rsync_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 let g:netrw_rsync_cmd = "rsync"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 if !exists("g:netrw_fetch_cmd")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 if executable("fetch")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 let g:netrw_fetch_cmd = "fetch -o"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 let g:netrw_fetch_cmd = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 if has("win32")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 \ && exists("g:netrw_use_nt_rcp")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 \ && g:netrw_use_nt_rcp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 \ && executable( $SystemRoot .'/system32/rcp.exe')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 let s:netrw_has_nt_rcp = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 let s:netrw_rcpmode = '-b'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 let s:netrw_has_nt_rcp = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 let s:netrw_rcpmode = ''
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 " ---------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 " Transparency Support: {{{1
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
159 " File Explorer: {{{2
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 if version >= 600
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
161 augroup FileExplorer
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
162 au!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
163 au BufEnter * call <SID>LocalBrowse(expand("<afile>"))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
164 augroup END
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
165 " Network Handler: {{{2
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 augroup Network
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 au!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 if has("win32")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
169 au BufReadCmd file://* exe "silent doau BufReadPre ".expand("<afile>")|exe 'e '.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 else
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
171 au BufReadCmd file:///* exe "silent doau BufReadPre ".expand("<afile>")|exe 'e /'.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
172 au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".expand("<afile>")|exe 'e /'.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
174 au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread 0r ".expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
175 au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread " .expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
176 au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "Nwrite " .expand("<afile>")|call <SID>NetRestorePosn()
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 augroup END
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 " Commands: :Nread, :Nwrite, and :NetUserPass {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 com! -nargs=* Nread call <SID>NetSavePosn()<bar>call <SID>NetRead(<f-args>)<bar>call <SID>NetRestorePosn()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 com! -range=% -nargs=* Nwrite call <SID>NetSavePosn()<bar><line1>,<line2>call <SID>NetWrite(<f-args>)<bar>call <SID>NetRestorePosn()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 com! -nargs=* NetUserPass call NetUserPass(<f-args>)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 " NetSavePosn: saves position of cursor on screen {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 fun! s:NetSavePosn()
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
189 " call Dfunc("NetSavePosn()")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 " Save current line and column
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 let s:netrw_winnr= winnr()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 let s:netrw_line = line(".")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 let s:netrw_col = virtcol(".")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 " Save top-of-screen line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 norm! H0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 let s:netrw_hline= line(".")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 call s:NetRestorePosn()
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
200 " call Dret("NetSavePosn : winnr=".s:netrw_winnr." line=".s:netrw_line." col=".s:netrw_col." hline=".s:netrw_hline)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 " NetRestorePosn: restores the cursor and file position as saved by NetSavePosn() {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 fun! <SID>NetRestorePosn()
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
206 " call Dfunc("NetRestorePosn() winnr=".s:netrw_winnr." line=".s:netrw_line." col=".s:netrw_col." hline=".s:netrw_hline)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 exe "silent! ".s:netrw_winnr."wincmd w"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 if v:shell_error == 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 " as suggested by Bram M: redraw on no error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 " allows protocol error messages to remain visible
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 redraw!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 " restore top-of-screen line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 exe "norm! ".s:netrw_hline."G0z\<CR>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 " restore position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 exe "norm! ".s:netrw_line."G0".s:netrw_col."\<bar>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
219 " call Dret("NetRestorePosn")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 " NetRead: responsible for reading a file over the net {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 fun! s:NetRead(...)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
225 " call Dfunc("NetRead(a:1<".a:1.">)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
226
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
227 " save options
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
228 call s:NetOptionSave()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
229
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
230 " Special Exception: if a file is named "0r", then
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
231 " "0r" will be used to read the
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
232 " following files instead of "r"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
233 if a:0 == 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
234 let readcmd= "r"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
235 let ichoice= 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
236 elseif a:1 == "0r"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
237 let readcmd = "0r"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
238 let ichoice = 2
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 else
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
240 let readcmd = "r"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
241 let ichoice = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
242 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
243
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
244 " get name of a temporary file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
245 let tmpfile= tempname()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
246
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
247 " call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
248 while ichoice <= a:0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
249
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
250 " attempt to repeat with previous host-file-etc
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
251 if exists("b:netrw_lastfile") && a:0 == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
252 " call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
253 let choice = b:netrw_lastfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
254 let ichoice= ichoice + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
255
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
256 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
257 exe "let choice= a:" . ichoice
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
258 " call Decho("no lastfile: choice<" . choice . ">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
259
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
260 " Reconstruct Choice if choice starts with '"'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
261 if match(choice,"?") == 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
262 echo 'NetRead Usage:'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
263 echo ':Nread machine:path uses rcp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
264 echo ':Nread "machine path" uses ftp with <.netrc>'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
265 echo ':Nread "machine id password path" uses ftp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
266 echo ':Nread dav://machine[:port]/path uses cadaver'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
267 echo ':Nread fetch://machine/path uses fetch'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
268 echo ':Nread ftp://[user@]machine[:port]/path uses ftp autodetects <.netrc>'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
269 echo ':Nread http://[user@]machine/path uses http wget'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
270 echo ':Nread rcp://[user@]machine/path uses rcp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
271 echo ':Nread rsync://machine[:port]/path uses rsync'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
272 echo ':Nread scp://[user@]machine[[:#]port]/path uses scp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
273 echo ':Nread sftp://[user@]machine[[:#]port]/path uses sftp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
274 break
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
275 elseif match(choice,"^\"") != -1
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
276 " call Decho("reconstructing choice")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
277 if match(choice,"\"$") != -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
278 " case "..."
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
279 let choice=strpart(choice,1,strlen(choice)-2)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
280 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
281 " case "... ... ..."
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
282 let choice = strpart(choice,1,strlen(choice)-1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
283 let wholechoice = ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
284
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
285 while match(choice,"\"$") == -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
286 let wholechoice = wholechoice . " " . choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
287 let ichoice = ichoice + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
288 if ichoice > a:0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
289 echoerr "Unbalanced string in filename '". wholechoice ."'"
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
290 " call Dret("NetRead")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
291 return
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
292 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
293 let choice= a:{ichoice}
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
294 endwhile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
295 let choice= strpart(wholechoice,1,strlen(wholechoice)-1) . " " . strpart(choice,0,strlen(choice)-1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
296 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
300 " call Decho("choice<" . choice . ">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
301 let ichoice= ichoice + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
302
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
303 " fix up windows urls
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
304 if has("win32")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
305 let choice = substitute(choice,'\\','/','ge')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
306 " call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
308 exe 'lcd ' . fnamemodify(tmpfile,':h')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
309 let tmpfile = fnamemodify(tmpfile,':t')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
310 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
311
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
312 " Determine method of read (ftp, rcp, etc)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
313 call s:NetMethod(choice)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
314
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
315 " Check if NetBrowse() should be handling this request
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
316 " call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
317 if choice =~ "^.*/$"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
318 if strlen(g:netrw_list_cmd) > 0
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
319 keepjumps call s:NetBrowse(choice)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
320 " call Dret("NetRead")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
321 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
322 echoerr "sorry, can't do a remote listing; ssh isn't executable"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
323 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
324 return
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
325 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
326
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
327 " ============
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
328 " Perform Read
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
329 " ============
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
330
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
331 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
332 " rcp: NetRead Method #1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
333 if b:netrw_method == 1 " read with rcp
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
334 " call Decho("read via rcp (method #1)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
335 " ER: noting done with g:netrw_uid yet?
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
336 " ER: on Win2K" rcp machine[.user]:file tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
337 " ER: if machine contains '.' adding .user is required (use $USERNAME)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
338 " ER: the tmpfile is full path: rcp sees C:\... as host C
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
339 if s:netrw_has_nt_rcp == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
340 if exists("g:netrw_uid") && ( g:netrw_uid != "" )
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
341 let uid_machine = g:netrw_machine .'.'. g:netrw_uid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
342 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
343 " Any way needed it machine contains a '.'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
344 let uid_machine = g:netrw_machine .'.'. $USERNAME
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
345 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 else
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
347 if exists("g:netrw_uid") && ( g:netrw_uid != "" )
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
348 let uid_machine = g:netrw_uid .'@'. g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
349 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
350 let uid_machine = g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
351 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
353 " call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
354 exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
355 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
356 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
357
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
358 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
359 " ftp + <.netrc>: NetRead Method #2
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
360 elseif b:netrw_method == 2 " read with ftp + <.netrc>
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
361 " call Decho("read via ftp+.netrc (method #2)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
362 let netrw_fname= b:netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
363 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
364 setlocal ff=unix
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
365 exe "put ='".g:netrw_ftpmode."'"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
366 exe "put ='get ".netrw_fname." ".tmpfile."'"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
367 if exists("g:netrw_port") && g:netrw_port != ""
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
368 " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
369 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
370 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
371 " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
372 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
373 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
374 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
375 if getline(1) !~ "^$"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
376 echoerr getline(1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
377 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
378 bd!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
379 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
380 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
381
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
382 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
383 " ftp + machine,id,passwd,filename: NetRead Method #3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
384 elseif b:netrw_method == 3 " read with ftp + machine, id, passwd, and fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
385 " Construct execution string (four lines) which will be passed through filter
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
386 " call Decho("read via ftp+mipf (method #3)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
387 let netrw_fname= b:netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
388 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
389 setlocal ff=unix
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
390 if exists("g:netrw_port") && g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
391 put ='open '.g:netrw_machine.' '.g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
392 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
393 put ='open '.g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
394 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
395
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
396 if exists("g:netrw_ftp") && g:netrw_ftp == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
397 put =g:netrw_uid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
398 put =g:netrw_passwd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
399 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
400 put ='user '.g:netrw_uid.' '.g:netrw_passwd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
401 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
402
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
403 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
404 put =g:netrw_ftpmode
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
405 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
406 put ='get '.netrw_fname.' '.tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
407
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
408 " perform ftp:
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
409 " -i : turns off interactive prompting from ftp
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
410 " -n unix : DON'T use <.netrc>, even though it exists
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
411 " -n win32: quit being obnoxious about password
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
412 " call Decho('performing ftp -i -n')
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
413 norm 1Gdd
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
414 " call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
415 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
416 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
417 if getline(1) !~ "^$"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
418 echoerr getline(1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
419 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
420 bd!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
421 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
422 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
423
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
424 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
425 " scp: NetRead Method #4
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
426 elseif b:netrw_method == 4 " read with scp
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
427 " call Decho("read via scp (method #4)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
428 if exists("g:netrw_port") && g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
429 let useport= " -P ".g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
430 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
431 let useport= ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
432 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
433 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
434 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
435 " call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
436 exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
437 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
438 " call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
439 exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
440 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
441 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
442 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
443
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
444 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
445 elseif b:netrw_method == 5 " read with http (wget)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
446 " call Decho("read via http (method #5)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
447 if g:netrw_http_cmd == ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
448 echoerr "neither wget nor fetch command is available"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
449 exit
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
450 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
451
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
452 if match(b:netrw_fname,"#") == -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
453 " simple wget
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
454 " call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
455 exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
456 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
457
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
458 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
459 " wget plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
460 let netrw_html= substitute(b:netrw_fname,"#.*$","","")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
461 let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
462 " call Decho("netrw_html<".netrw_html.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
463 " call Decho("netrw_tag <".netrw_tag.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
464 " call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
465 exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
466 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
467 " call Decho('<\s*a\s*name=\s*"'.netrw_tag.'"/')
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
468 exe 'norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
469 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
470 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
471
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
472 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
473 " cadaver: NetRead Method #6
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
474 elseif b:netrw_method == 6 " read with cadaver
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
475 " call Decho("read via cadaver (method #6)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
476
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
477 " Construct execution string (four lines) which will be passed through filter
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 let netrw_fname= b:netrw_fname
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
480 setlocal ff=unix
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
481 if exists("g:netrw_port") && g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
482 put ='open '.g:netrw_machine.' '.g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
483 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
484 put ='open '.g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
485 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
486 put ='user '.g:netrw_uid.' '.g:netrw_passwd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
487
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
488 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
489 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
490 put ='get '.netrw_fname.' '.cygtmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
491 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
492 put ='get '.netrw_fname.' '.tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
493 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
494
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
495 " perform cadaver operation:
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
496 norm 1Gdd
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
497 " call Decho("executing: %!".g:netrw_dav_cmd)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
498 exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
499 bd!
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
500 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
501 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
502
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
503 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
504 " rsync: NetRead Method #7
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
505 elseif b:netrw_method == 7 " read with rsync
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
506 " call Decho("read via rsync (method #7)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
507 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
508 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
509 " call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
510 exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
511 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
512 " call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
513 exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
514 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
515 let result = s:NetGetFile(readcmd,tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
516 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
517
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
518 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
519 " fetch: NetRead Method #8
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
520 " fetch://[user@]host[:http]/path
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
521 elseif b:netrw_method == 8 " read with fetch
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
522 if g:netrw_fetch_cmd == ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
523 echoerr "fetch command not available"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
524 exit
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
525 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
526 if exists("g:netrw_option") && g:netrw_option == ":http"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
527 let netrw_option= "http"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
528 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
529 let netrw_option= "ftp"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
530 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
531 " call Decho("read via fetch for ".netrw_option)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
532
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
533 if exists("g:netrw_uid") && g:netrw_uid != "" && exists("g:netrw_passwd") && g:netrw_passwd != ""
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
534 " call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
535 exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
536 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
537 " call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
538 exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
539 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
540
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
541 let result = s:NetGetFile(readcmd,tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
542 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
543
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
544 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
545 " sftp: NetRead Method #9
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
546 elseif b:netrw_method == 9 " read with sftp
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
547 " call Decho("read via sftp (method #4)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
548 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
549 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
550 " call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
551 " call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
552 exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
553 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
554 " call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
555 exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
556 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
557 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
558 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
559
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
560 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
561 else " Complain
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
562 echo "***warning*** unable to comply with your request<" . choice . ">"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
563 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
564 endwhile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
565
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
566 " cleanup
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
567 " call Decho("cleanup")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
568 if exists("b:netrw_method")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
569 unlet b:netrw_method
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
570 unlet g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
571 unlet b:netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
572 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
573 call s:NetOptionRestore()
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
574
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
575 " call Dret("NetRead")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
576 endfun
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
577 " end of NetRead
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
578
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
579 " ------------------------------------------------------------------------
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
580 " NetGetFile: Function to read file "fname" with command "readcmd". {{{1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
581 fun! s:NetGetFile(readcmd, fname, method)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
582 " call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
583
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
584 if exists("*NetReadFixup")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
585 " for the use of NetReadFixup (not otherwise used internally)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
586 let line2= line("$")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
587 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
588
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
589 " transform paths from / to \ for Windows, unless the shell is bash
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
590 if &term == "win32"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
591 if &shell == "bash"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
592 let fname=a:fname
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
593 " call Decho("(win32 && bash) fname<".fname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
594 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
595 let fname=substitute(a:fname,'/','\\\\','ge')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
596 " call Decho("(win32 && !bash) fname<".fname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
597 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
598 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
599 let fname= a:fname
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
600 " call Decho("(copied) fname<".fname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
601 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
602
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
603 " get the file, but disable undo when reading a new buffer
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
604 if a:readcmd[0] == '0'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
605 let use_e_cmd = 0 " 1 when using ':edit'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
606 let delline = 0 " 1 when have to delete empty last line
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
607 if line("$") == 1 && getline(1) == ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
608 " Now being asked to 0r a file into an empty file.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
609 " Safe to :e it instead, unless there is another window on the same buffer.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
610 let curbufnr = bufnr("%")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
611 let use_e_cmd = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
612 let delline = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
613 " Loop over all windows,
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
614 " reset use_e_cmd when another one is editing the current buffer.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
615 let i = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
616 while 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
617 if i != winnr() && winbufnr(i) == curbufnr
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
618 let use_e_cmd = 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
619 break
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
620 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
621 let i = i + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
622 if winbufnr(i) < 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
623 break
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
624 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
625 endwhile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
626 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
627
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
628 if use_e_cmd > 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
629 " ':edit' the temp file, wipe out the old buffer and rename the buffer
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
630 let curfilename = expand("%")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
631
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
632 let binlocal = &l:bin
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
633 let binglobal = &g:bin
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
634 if binlocal
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
635 setglobal bin " Need to set 'bin' globally for ":e" command.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
636 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
637 silent exe "e! ".v:cmdarg." ".fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
638 if binlocal && !binglobal
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
639 setglobal nobin
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
640 setlocal bin
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
641 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
642
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
643 exe curbufnr . "bwipe!"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
644 exe "f ".curfilename
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
645 " the ":f newname" apparently leaves the temporary file as the alternate
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
646 " file in the buffer list (see :ls!). The following command wipes it out.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
647 exe bufnr("#")."bwipe!"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
648 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
649 let oldul= &ul
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
650 setlocal ul=-1
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
651 exe a:readcmd." ".v:cmdarg." ".fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
652 if delline > 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
653 " wipe out last line, which should be a blank line anyway
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
654 $del
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
655 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
656 let &ul= oldul
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
657 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
658 elseif filereadable(fname)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
659 " call Decho("exe<".a:readcmd." ".v:cmdarg." ".fname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
660 exe a:readcmd." ".v:cmdarg." ".fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
661 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
662 " call Dret("NetGetFile")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
663 return
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
664 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
665
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
666 " User-provided (ie. optional) fix-it-up command
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
667 if exists("*NetReadFixup")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
668 let line1= line(".")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
669 if a:readcmd == "r"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
670 let line2= line("$") - line2 + line1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
671 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
672 let line2= line("$") - line2
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
673 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
674 " call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
675 call NetReadFixup(a:method, line1, line2)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
676 endif
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
677
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
678 " update the Buffers menu
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
679 if has("gui") && has("gui_running")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
680 silent! emenu Buffers.Refresh\ menu
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
681 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
682
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
683 " call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> fname<".a:fname."> readable=".filereadable(a:fname))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
684
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
685 " insure that we have the right filetype and that its being displayed
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
686 filetype detect
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
687 redraw!
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
688 " call Dret("NetGetFile")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
689 endfun
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
690
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
691 " ------------------------------------------------------------------------
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
692 " NetWrite: responsible for writing a file over the net {{{1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
693 fun! s:NetWrite(...) range
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
694 " call Dfunc("NetWrite(a:0=".a:0.")")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
695
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
696 " option handling
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
697 let mod= 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
698 call s:NetOptionSave()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
699
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
700 " Get Temporary Filename
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
701 let tmpfile= tempname()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
702
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
703 if a:0 == 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
704 let ichoice = 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
705 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
706 let ichoice = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
707 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
708
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
709 " write (selected portion of) file to temporary
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
710 silent exe a:firstline."," . a:lastline . "w! ".v:cmdarg." ".tmpfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
711
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
712 while ichoice <= a:0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
713
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
714 " attempt to repeat with previous host-file-etc
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
715 if exists("b:netrw_lastfile") && a:0 == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
716 " call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
717 let choice = b:netrw_lastfile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
718 let ichoice= ichoice + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
719 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
720 exe "let choice= a:" . ichoice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
721
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
722 " Reconstruct Choice if choice starts with '"'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
723 if match(choice,"?") == 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
724 echo 'NetWrite Usage:"'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
725 echo ':Nwrite machine:path uses rcp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
726 echo ':Nwrite "machine path" uses ftp with <.netrc>'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
727 echo ':Nwrite "machine id password path" uses ftp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
728 echo ':Nwrite dav://[user@]machine/path uses cadaver'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
729 echo ':Nwrite fetch://[user@]machine/path uses fetch'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
730 echo ':Nwrite ftp://machine[#port]/path uses ftp (autodetects <.netrc>)'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
731 echo ':Nwrite rcp://machine/path uses rcp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
732 echo ':Nwrite rsync://[user@]machine/path uses rsync'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
733 echo ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
734 echo ':Nwrite sftp://[user@]machine/path uses sftp'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
735 break
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
736
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
737 elseif match(choice,"^\"") != -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
738 if match(choice,"\"$") != -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
739 " case "..."
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
740 let choice=strpart(choice,1,strlen(choice)-2)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
741 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
742 " case "... ... ..."
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
743 let choice = strpart(choice,1,strlen(choice)-1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
744 let wholechoice = ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
745
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
746 while match(choice,"\"$") == -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
747 let wholechoice= wholechoice . " " . choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
748 let ichoice = ichoice + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
749 if choice > a:0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
750 echoerr "Unbalanced string in filename '". wholechoice ."'"
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
751 " call Dret("NetWrite")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
752 return
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
753 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
754 let choice= a:{ichoice}
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
755 endwhile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
756 let choice= strpart(wholechoice,1,strlen(wholechoice)-1) . " " . strpart(choice,0,strlen(choice)-1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
757 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
758 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
759 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
760 " call Decho("choice<" . choice . ">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
761 let ichoice= ichoice + 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
762
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
763 " fix up windows urls
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
764 if has("win32")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
765 let choice= substitute(choice,'\\','/','ge')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
766 "ER: see NetRead()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
767 exe 'lcd ' . fnamemodify(tmpfile,':h')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
768 let tmpfile = fnamemodify(tmpfile,':t')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
769 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
770
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
771 " Determine method of read (ftp, rcp, etc)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
772 call s:NetMethod(choice)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
773
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
774 " =============
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
775 " Perform Write
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
776 " =============
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
777
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
778 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
779 " rcp: NetWrite Method #1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
780 if b:netrw_method == 1 " write with rcp
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
781 " Decho "write via rcp (method #1)"
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
782 if s:netrw_has_nt_rcp == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
783 if exists("g:netrw_uid") && ( g:netrw_uid != "" )
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
784 let uid_machine = g:netrw_machine .'.'. g:netrw_uid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
785 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
786 let uid_machine = g:netrw_machine .'.'. $USERNAME
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
787 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
788 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
789 if exists("g:netrw_uid") && ( g:netrw_uid != "" )
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
790 let uid_machine = g:netrw_uid .'@'. g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
791 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
792 let uid_machine = g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
793 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
794 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
795 " call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
796 exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
797 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
798
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
799 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
800 " ftp + <.netrc>: NetWrite Method #2
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
801 elseif b:netrw_method == 2 " write with ftp + <.netrc>
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
802 let netrw_fname = b:netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
803 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
804 setlocal ff=unix
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
805 exe "put ='".g:netrw_ftpmode."'"
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
806 " call Decho(" NetWrite: put ='".g:netrw_ftpmode."'")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
807 exe "put ='put ".tmpfile." ".netrw_fname."'"
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
808 " call Decho("put ='put ".tmpfile." ".netrw_fname."'")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
809 if exists("g:netrw_port") && g:netrw_port != ""
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
810 " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
811 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
812 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
813 " call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
814 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
815 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
816 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
817 if getline(1) !~ "^$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
818 echoerr getline(1)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
819 let mod=1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
820 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
821 bd!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
822 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
823
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
824 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
825 " ftp + machine, id, passwd, filename: NetWrite Method #3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
826 elseif b:netrw_method == 3 " write with ftp + machine, id, passwd, and fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
827 let netrw_fname= b:netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
828 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
829 setlocal ff=unix
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
830 if exists("g:netrw_port") && g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
831 put ='open '.g:netrw_machine.' '.g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
832 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
833 put ='open '.g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
834 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
835 if exists("g:netrw_ftp") && g:netrw_ftp == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
836 put =g:netrw_uid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
837 put =g:netrw_passwd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
838 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
839 put ='user '.g:netrw_uid.' '.g:netrw_passwd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
840 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
841 put ='put '.tmpfile.' '.netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
842 " save choice/id/password for future use
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
843 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
844
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
845 " perform ftp:
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
846 " -i : turns off interactive prompting from ftp
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
847 " -n unix : DON'T use <.netrc>, even though it exists
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
848 " -n win32: quit being obnoxious about password
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
849 " call Decho('performing ftp -i -n')
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
850 norm 1Gdd
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
851 " call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
852 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
853 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
854 if getline(1) !~ "^$"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
855 echoerr getline(1)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
856 let mod=1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
857 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
858 bd!
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
859
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
860 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
861 " scp: NetWrite Method #4
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
862 elseif b:netrw_method == 4 " write with scp
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
863 if exists("g:netrw_port") && g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
864 let useport= " -P ".g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
865 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
866 let useport= ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
867 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
868 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
869 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
870 " call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
871 exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
872 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
873 " call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
874 exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
875 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
876 let b:netrw_lastfile = choice
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
877
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
878 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
879 " http: NetWrite Method #5
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
880 elseif b:netrw_method == 5
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
881 echoerr "***warning*** currently <netrw.vim> does not support writing using http:"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
882
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
883 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
884 " dav: NetWrite Method #6
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
885 elseif b:netrw_method == 6 " write with cadaver
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
886 " call Decho("write via cadaver (method #6)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
887
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
888 " Construct execution string (four lines) which will be passed through filter
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
889 let netrw_fname= b:netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
890 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
891 setlocal ff=unix
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
892 if exists("g:netrw_port") && g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
893 put ='open '.g:netrw_machine.' '.g:netrw_port
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
894 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
895 put ='open '.g:netrw_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
896 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
897 put ='user '.g:netrw_uid.' '.g:netrw_passwd
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
898
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
899 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
900 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
901 put ='put '.cygtmpfile.' '.netrw_fname
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
902 else
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
903 put ='put '.tmpfile.' '.netrw_fname
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
904 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
905
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
906 " perform cadaver operation:
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
907 norm 1Gdd
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
908 " call Decho("executing: %!".g:netrw_dav_cmd)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
909 exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
910 bd!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
911 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
912
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
913 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
914 " rsync: NetWrite Method #7
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
915 elseif b:netrw_method == 7 " write with rsync
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
916 if g:netrw_cygwin == 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
917 let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
918 " call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
919 exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
920 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
921 " call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
922 exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
923 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
924 let b:netrw_lastfile = choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
925
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
926 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
927 " scp: NetWrite Method #9
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
928 elseif b:netrw_method == 9 " write with sftp
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
929 let netrw_fname= b:netrw_fname
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
930 if exists("g:netrw_uid") && ( g:netrw_uid != "" )
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
931 let uid_machine = g:netrw_uid .'@'. g:netrw_machine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
932 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
933 let uid_machine = g:netrw_machine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
934 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
935 new
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
936 setlocal ff=unix
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
937 put ='put '.tmpfile.' '.netrw_fname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
938 norm 1Gdd
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
939 " call Decho("executing: %!".g:netrw_sftp_cmd.' '.uid_machine)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
940 exe g:netrw_silentxfer."%!".g:netrw_sftp_cmd.' '.uid_machine
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
941 bd!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
942 let b:netrw_lastfile= choice
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
943
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
944 ".........................................
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
945 else " Complain
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
946 echo "***warning*** unable to comply with your request<" . choice . ">"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
947 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
948 endwhile
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
949
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
950 " cleanup
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
951 " call Decho("cleanup")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
952 let result=delete(tmpfile)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
953 call s:NetOptionRestore()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
954
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
955 if a:firstline == 1 && a:lastline == line("$")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
956 let &mod= mod " usually equivalent to set nomod
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
957 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
958
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
959 " call Dret("NetWrite")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
960 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
961 " end of NetWrite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
962
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
963 " ------------------------------------------------------------------------
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
964 " Browsing Support For Remote Directories And Files: {{{1
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
965 " NetBrowse: This function uses the command in g:netrw_list_cmd to get a list {{{2
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
966 " of the contents of a remote directory. It is assumed that the
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
967 " g:netrw_list_cmd has a string, HOSTNAME, that needs to be substituted
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
968 " with the requested remote hostname first.
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
969 fun! <SID>NetBrowse(dirname)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
970 " call Dfunc("NetBrowse(dirname<".a:dirname.">)")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
971
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
972 " sanity check
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
973 if !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ''
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
974 echoerr "***netrw*** this system doesn't support remote directory listing"
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
975 " call Dret("NetBrowse 0")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
976 return 0
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
977 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
978
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
979 " make this buffer modifiable
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
980 setlocal ma
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
981
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
982 " analyze a:dirname and g:netrw_list_cmd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
983 let dirpat = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
984 if a:dirname !~ dirpat
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
985 echoerr "NetBrowse: I don't understand your dirname<".a:dirname.">"
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
986 " call Dret("NetBrowse 0 : badly formatted dirname")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
987 return 0
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
988 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
989 let method = substitute(a:dirname,dirpat,'\1','')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
990 let user = substitute(a:dirname,dirpat,'\2','')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
991 let machine = substitute(a:dirname,dirpat,'\3','')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
992 let path = substitute(a:dirname,dirpat,'\4','')
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
993 let fname = substitute(a:dirname,'^.*/\ze.','','')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
994 " call Decho("set up method <".method .">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
995 " call Decho("set up user <".user .">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
996 " call Decho("set up machine<".machine.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
997 " call Decho("set up path <".path .">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
998 " call Decho("set up fname <".fname .">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
999
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1000 let listcmd = substitute(g:netrw_list_cmd,'\<HOSTNAME\>',user.machine,'')
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1001
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1002 " optionally sort by time (-t) or by size (-S)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1003 if g:netrw_sort_by =~ "^t"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1004 let listcmd= listcmd."t"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1005 elseif g:netrw_sort_by =~ "^s"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1006 let listcmd= listcmd."S"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1007 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1008 " optionally sort in reverse
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1009 if g:netrw_sort_direction =~ "^r"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1010 let listcmd= listcmd."r"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1011 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1012
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1013 " call Decho("set up listcmd<".listcmd.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1014
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1015 if fname =~ '@$' && fname !~ '^"'
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1016 " call Decho("attempt transfer of symlink as file")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1017 call s:NetBrowse(substitute(a:dirname,'@$','','e'))
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1018 redraw!
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1019 " call Dret("NetBrowse 0 : symlink")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1020 return 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1021
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1022 elseif fname !~ '/$' && fname !~ '^"'
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1023 " looks like a regular file, attempt transfer
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1024 " call Decho("attempt transfer as regular file<".a:dirname.">")
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1025
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1026 " remove any filetype indicator from end of dirname, except for the
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1027 " "this is a directory" indicator (/). There shouldn't be one of those,
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1028 " anyway.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1029 let path= substitute(path,'[*=@|]$','','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1030 " call Decho("new path<".path.">")
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1031
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1032 " remote-read the requested file into current buffer
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1033 enew!
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1034 exe "file ".method."://".user.machine."/".escape(path,' ')
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1035 exe "silent doau BufReadPre ".fname
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1036 silent call s:NetRead(method."://".user.machine."/".path)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1037 exe "silent doau BufReadPost ".fname
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1038 keepjumps 1d
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1039 setlocal nomod
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1040
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1041 " call Dret("NetBrowse 0 : file<".fname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1042 return 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1043 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1044
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1045 " ---------------------------------------------------------------------
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1046 " Perform Directory Listing:
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1047 " call Decho("Perform directory listing...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1048 " set up new buffer and map
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1049 let bufname = method.'://'.user.machine.'/'.path
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1050 let bufnamenr = bufnr(bufname)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1051 " call Decho("bufname<".bufname."> bufnamenr=".bufnamenr)
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1052 if bufnamenr != -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1053 " buffer already exists, switch to it!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1054 exe "b ".bufnamenr
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1055 if line("$") >= 5
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1056 " call Dret("NetBrowse 1")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1057 return 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1058 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1059 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1060 enew!
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1061 endif
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1062 setlocal ts=32 bt=nofile bh=wipe nobl
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1063 exe 'file '.escape(bufname,' ')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1064 setlocal bt=nowrite bh=hide nobl
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1065 nnoremap <buffer> <silent> <cr> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetDir()))<cr>
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1066 nnoremap <buffer> <silent> <c-l> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1067 nnoremap <buffer> <silent> - :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'../'))<cr>
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1068 nnoremap <buffer> <silent> a :let g:netrw_list_showall=1<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1069 nnoremap <buffer> <silent> <Leader>H :call <SID>NetHideEdit(0)<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1070 nnoremap <buffer> <silent> i :call <SID>NetLongList(0)<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1071 nnoremap <buffer> <silent> o :exe g:netrw_winsize."wincmd s"<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1072 nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetDir()))<cr>
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1073 nnoremap <buffer> <silent> s :let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1074 nnoremap <buffer> <silent> v :exe g:netrw_winsize."wincmd v"<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1075 nnoremap <buffer> <silent> x :exe "norm! 0"<bar>call <SID>NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetDir()),1)<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1076 nnoremap <buffer> <silent> <2-leftmouse> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetDir()))<cr>
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1077 exe 'nnoremap <buffer> <silent> <del> :exe "norm! 0"<bar>call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1078 exe 'vnoremap <buffer> <silent> <del> :call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1079 exe 'nnoremap <buffer> <silent> D :exe "norm! 0"<bar>call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1080 exe 'vnoremap <buffer> <silent> D :call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1081 exe 'nnoremap <buffer> <silent> R :exe "norm! 0"<bar>call <SID>NetBrowseRename("'.user.machine.'","'.path.'")<cr>'
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1082 exe 'nnoremap <buffer> <silent> <Leader>M :call <SID>NetMakeDir("'.user.machine.'")<cr>'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1083 nnoremap <buffer> ? :he netrw-browse-cmds<cr>
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1084 setlocal ma
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1085
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1086 " Set up the banner
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1087 " call Decho("executing: r! ".listcmd." '".path."'")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1088 keepjumps put ='\" =============================='
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1089 keepjumps put ='\" Netrw Remote Directory Listing'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1090 keepjumps put ='\" '.bufname
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1091 let g:netrw_bannercnt= 6
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1092 if g:netrw_sort_by =~ "^n"
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1093 " sorted by name
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1094 let g:netrw_bannercnt= g:netrw_bannercnt + 1
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1095 keepjumps put ='\" Sorted by '.g:netrw_sort_by
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1096 keepjumps put ='\" Sort sequence: '.g:netrw_sort_sequence
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1097 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1098 " sorted by size or date
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1099 keepjumps put ='\" Sorted by '.g:netrw_sort_by
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1100 endif
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1101 if g:netrw_list_hide != "" && !exists("g:netrw_list_showall")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1102 keepjumps put ='\" Hiding: '.g:netrw_list_hide
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1103 let g:netrw_bannercnt= g:netrw_bannercnt + 1
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1104 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1105 keepjumps put ='\" =============================='
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1106
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1107 " remote read the requested directory
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1108 exe "silent r! ".listcmd." '".path."'"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1109 keepjumps 1d
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1110
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1111 " manipulate the directory listing (hide, sort)
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1112 setlocal ft=netrwlist
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1113 if line("$") >= g:netrw_bannercnt
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1114 if !exists("g:netrw_list_showall")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1115 if g:netrw_list_hide != ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1116 call s:NetrwListHide()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1117 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1118 else
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1119 unlet g:netrw_list_showall
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1120 endif
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1121 if g:netrw_longlist
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1122 " do a long listing; these substitutions need to be done prior to sorting
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1123 keepjumps silent /^total\s*\d\+$/d
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1124 exe 'keepjumps silent '.g:netrw_bannercnt.',$s/ -> .*$//e'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1125 exe 'keepjumps silent '.g:netrw_bannercnt.',$s/\(\S\+\s\+\S\+\s\+\S\+\s\+\S\+\s\+\S\+\s\+\S\+\s\+\S\+\s\+\S\+\)\s\+\(\S\+\)$/\2\t\1/e'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1126 exe g:netrw_bannercnt
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1127 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1128 if g:netrw_sort_by =~ "^n"
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1129 call s:SetSort()
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1130 exe 'keepjumps silent '.g:netrw_bannercnt.',$call s:NetSort()'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1131 exe 'keepjumps silent '.g:netrw_bannercnt.',$s/^\d\{3}\///e'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1132 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1133 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1134 let prvbuf= bufnr(bufname)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1135 if prvbuf != -1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1136 exe "silent! b ".prvbuf
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1137 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1138
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1139 setlocal noma nomod
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1140
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1141 " call Dret("NetBrowse 1")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1142 return 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1143 endfun
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1144
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1145 " ---------------------------------------------------------------------
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1146 " NetBrowseChgDir: {{{2
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1147 fun! <SID>NetBrowseChgDir(dirname,newdir)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1148 " call Dfunc("NetBrowseChgDir(dirname<".a:dirname."> newdir<".a:newdir.">)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1149
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1150 let dirname= a:dirname
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1151 let newdir = a:newdir
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1152
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1153 if newdir !~ '/$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1154 " handling a file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1155 let dirname= dirname.newdir
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1156 " call Decho("handling a file: dirname<".dirname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1157
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1158 elseif newdir == './'
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1159 " refresh the directory list
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1160 " call Decho("refresh directory listing")
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1161 setlocal ma
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1162 %d
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1163
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1164 elseif newdir == '../'
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1165 " go up one directory
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1166 let trailer= substitute(a:dirname,'^\(\w\+://\%(\w\+@\)\=\w\+/\)\(.*\)$','\2','')
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1167
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1168 if trailer =~ '^\%(\.\./\)*$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1169 " tack on a ../"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1170 let dirname= dirname.'../'
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1171
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1172 else
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1173 " strip off a directory name from dirname
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1174 let dirname= substitute(dirname,'^\(.*/\)[^/]\+/','\1','')
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1175 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1176 " call Decho("go up one dir: dirname<".dirname."> trailer<".trailer.">")
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1177
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1178 else
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1179 " go down one directory
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1180 let dirname= dirname.newdir
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1181 " call Decho("go down one dir: dirname<".dirname."> newdir<".newdir.">")
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1182 endif
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1183
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1184 " call Dret("NetBrowseChgDir <".dirname.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1185 return dirname
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1186 endfun
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1187
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1188 " ---------------------------------------------------------------------
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1189 " NetGetDir: it gets the directory named under the cursor
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1190 fun! <SID>NetGetDir()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1191 " call Dfunc("NetGetDir()")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1192 let dirname= getline(".")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1193 if dirname =~ '\t'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1194 let dirname= substitute(dirname,'\t.*$','','e')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1195 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1196 " call Dret("NetGetDir <".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1197 return dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1198 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1199
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1200 " ---------------------------------------------------------------------
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1201 " NetBrowseRm: remove a remote file or directory {{{2
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1202 fun! <SID>NetBrowseRm(usrhost,path) range
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1203 " call Dfunc("NetBrowseRm(usrhost<".a:usrhost."> path<".a:path.">)")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1204 " call Decho("firstline=".a:firstline." lastline=".a:lastline)
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1205
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1206 " preparation for removing multiple files/directories
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1207 let ctr= a:firstline
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1208
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1209 " remove multiple files and directories
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1210 while ctr <= a:lastline
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1211 exe ctr
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1212
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1213 norm! 0
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1214 let rmfile= a:path.expand("<cWORD>")
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1215 " call Decho("rmfile<".rmfile.">")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1216
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1217 if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '/$')
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1218 " attempt to remove file
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1219 let netrw_rm_cmd= substitute(g:netrw_rm_cmd,'HOSTNAME',a:usrhost,'').' '.rmfile
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1220 " call Decho("attempt to remove file: system(".netrw_rm_cmd.")")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1221 call inputsave()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1222 let ok= input("Confirm deletion of file<".rmfile."> ","y")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1223 call inputrestore()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1224 if ok == "y"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1225 let ret= system(netrw_rm_cmd)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1226 " call Decho("returned=".ret." errcode=".v:shell_error)
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1227 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1228
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1229 else
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1230 " attempt to remove directory
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1231 let netrw_rmdir_cmd= substitute(g:netrw_rmdir_cmd,'HOSTNAME',a:usrhost,'').' '.rmfile
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1232 " call Decho("attempt to remove dir: system(".netrw_rmdir_cmd.")")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1233 call inputsave()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1234 let ok= input("Confirm deletion of directory<".rmfile."> ","y")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1235 call inputrestore()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1236
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1237 if ok == "y"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1238 let ret= system(netrw_rmdir_cmd)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1239 " call Decho("returned=".ret." errcode=".v:shell_error)
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1240
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1241 if v:shell_error != 0
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1242 let netrw_rmf_cmd= substitute(g:netrw_rmf_cmd,'HOSTNAME',a:usrhost,'').' '.substitute(rmfile,'/$','','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1243 " call Decho("2nd attempt to remove dir: system(".netrw_rmf_cmd.")")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1244 let ret= system(netrw_rmf_cmd)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1245 " call Decho("returned=".ret." errcode=".v:shell_error)
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1246
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1247 if v:shell_error != 0
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1248 echoerr "unable to remove directory<".rmfile."> -- is it empty?"
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1249 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1250 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1251 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1252 endif
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1253
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1254 let ctr= ctr + 1
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1255 endwhile
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1256
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1257 " refresh the directory
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1258 let curline= line(".")-1
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1259 " call Decho("refresh the directory")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1260 call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1261 exe curline
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1262
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1263 " call Dret("NetBrowseRm")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1264 endfun
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1265
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1266 " ---------------------------------------------------------------------
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1267 " NetBrowseRename: rename a remote file or directory {{{2
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1268 fun! <SID>NetBrowseRename(usrhost,path)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1269 " call Dfunc("NetBrowseRename(usrhost<".a:usrhost."> path<".a:path.">)")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1270
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1271 " preparation for removing multiple files/directories
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1272 let ctr = a:firstline
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1273 let rename_cmd = substitute(g:netrw_rename_cmd,'\<HOSTNAME\>',a:usrhost,'')
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1274
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1275 " attempt to rename files/directories
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1276 while ctr <= a:lastline
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1277 exe "keepjumps ".ctr
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1278
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1279 norm! 0
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1280 let oldname= a:path.expand("<cWORD>")
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1281 " call Decho("oldname<".oldname.">")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1282
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1283 call inputsave()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1284 let newname= input("Moving ".a:usrhost."'s ".oldname." to : ",oldname)
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1285 call inputrestore()
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1286
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1287 let ret= system(rename_cmd." ".oldname." ".newname)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1288 " call Decho("executing system(".rename_cmd." ".oldname." ".newname)
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1289
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1290 let ctr= ctr + 1
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1291 endwhile
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1292
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1293 " refresh the directory
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1294 let curline= line(".")
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1295 call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1296 exe "keepjumps ".curline
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1297 " call Dret("NetBrowseRename")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1298 endfun
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1299
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1300 " ---------------------------------------------------------------------
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1301 " NetBrowseX: allows users to write custom functions to operate on {{{2
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1302 " files given their extension. Passes 0=local, 1=remote
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1303 fun! <SID>NetBrowseX(fname,remote)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1304 " call Dfunc("NetBrowseX(".a:fname." remote=".a:remote.")")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1305
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1306 let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e')
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1307 " call Decho("exten<".exten."> "."NetrwFileHandler_".exten."():exists=".exists("*NetrwFileHandler_".exten))
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1308 if exten != "" && exists("*NetrwFileHandler_".exten)
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1309
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1310 let fname= a:fname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1311 if a:remote == 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1312 " create a local copy
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1313 let fname= tempname().".".exten
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1314 " call Decho("create a local copy of <".a:fname."> as <".fname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1315 exe "keepjumps silent bot 1new ".a:fname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1316 let eikeep= &ei
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1317 set ei=all bh=delete
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1318 exe "w! ".fname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1319 let &ei= eikeep
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1320 q
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1321 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1322
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1323 exe "let ret= NetrwFileHandler_".exten.'("'.fname.'")'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1324 redraw!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1325
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1326 " cleanup: remove temporary file,
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1327 " delete current buffer if success with handler,
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1328 " return to prior buffer (directory listing)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1329 if a:remote == 1 && fname != a:fname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1330 " call Decho("deleting temporary file<".fname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1331 call delete(fname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1332 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1333 if ret != 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1334 let eikeep= &ei
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1335 set ei=all bh=delete bt=nofile
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1336 exe "norm! \<c-o>"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1337 let &ei= eikeep
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1338 redraw!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1339 endif
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1340 endif
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1341
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1342 " call Dret("NetBrowseX")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1343 endfun
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1344
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1345 " ---------------------------------------------------------------------
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1346 " NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1347 " separated patterns given in g:netrw_list_hide
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1348 fun! <SID>NetrwListHide()
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1349 " call Dfunc("NetrwListHide() listhide<".g:netrw_list_hide.">")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1350
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1351 let listhide= g:netrw_list_hide
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1352 while listhide != ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1353 if listhide =~ ','
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1354 let hide = substitute(listhide,',.*$','','e')
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1355 let listhide = substitute(listhide,'^.\{-},\(.*\)$','\1','e')
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1356 else
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1357 let hide = listhide
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1358 let listhide= ""
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1359 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1360 " call Decho("pruning <".hide."> listhide<".listhide.">")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1361 exe 'keepjumps silent '.g:netrw_bannercnt.',$g~'.hide.'~d'
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1362 endwhile
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1363
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1364 " call Dret("NetrwListHide")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1365 endfun
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1366
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1367 " ---------------------------------------------------------------------
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1368 " NetHideEdit: allows user to edit the file/directory hiding list
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1369 fun! <SID>NetHideEdit(mode)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1370 " call Dfunc("NetHideEdit(mode=".a:mode.")")
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1371
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1372 call inputsave()
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1373 let newhide= input("Edit Hiding List: ",g:netrw_list_hide)
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1374 call inputrestore()
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1375
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1376 " refresh the listing
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1377 let g:netrw_list_hide= newhide
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1378 if a:mode == 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1379 silent call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1380 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1381 silent call s:LocalBrowse(s:NetBrowseChgDir(expand("%"),'./'))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1382 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1383
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1384 " call Dret("NetHideEdit")
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1385 endfun
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1386
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1387 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1388 " NetLongList: {{{2
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1389 fun! <SID>NetLongList(mode)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1390 " call Dfunc("NetLongList(mode=".a:mode.") netrw_longlist=".g:netrw_longlist)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1391
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1392 if g:netrw_longlist != 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1393 " turn long listing off
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1394 let g:netrw_longlist = 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1395 let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1396
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1397 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1398 " turn long listing on
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1399 let g:netrw_longlist = 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1400 let g:netrw_list_cmd = g:netrw_list_cmd." -l"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1401 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1402
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1403 " refresh the listing
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1404 if a:mode == 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1405 silent call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),"./"))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1406 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1407 silent call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%"),"./"))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1408 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1409
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1410 " call Dret("NetLongList : g:netrw_longlist=".g:netrw_longlist)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1411 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1412
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1413 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1414 " NetMakeDir: this function makes a directory (both local and remote)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1415 fun! <SID>NetMakeDir(usrhost)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1416 " call Dfunc("NetMakeDir(usrhost<".a:usrhost.">)")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1417
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1418 " get name of new directory from user. A bare <CR> will skip.
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1419 " if its currently a directory, also request will be skipped, but with
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1420 " a message.
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1421 call inputsave()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1422 let newdirname= input("Please give directory name: ")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1423 call inputrestore()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1424
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1425 if newdirname == ""
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1426 " call Dret("NetMakeDir : user aborted with bare <cr>")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1427 return
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1428 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1429
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1430 if a:usrhost == ""
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1431
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1432 " Local mkdir:
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1433 " sanity checks
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1434 if isdirectory(newdirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1435 echoerr "***warning*** <".newdirname."> is already a directory!"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1436 " call Dret("NetMakeDir : directory<".newdirname."> exists previously")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1437 return
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1438 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1439 if filereadable(newdirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1440 echoerr "***warning*** <".newdirname."> is already a file!"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1441 " call Dret("NetMakeDir : file<".newdirname."> exists previously")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1442 return
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1443 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1444 exe "silent! !".g:netrw_local_mkdir." ".newdirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1445 if v:shell_error == 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1446 " refresh listing
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1447 call s:LocalBrowse(".")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1448 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1449 echoerr "***warning*** unable to make directory<".newdirname.">"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1450 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1451 redraw!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1452
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1453 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1454 " Remote mkdir:
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1455 let mkdircmd = substitute(g:netrw_mkdir_cmd,'\<HOSTNAME\>',a:usrhost,'')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1456 let newdirname= substitute(expand("%"),'^\%(.\{-}/\)\{3}\(.*\)$','\1','').newdirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1457 " call Decho("exe silent! !".mkdircmd." ".newdirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1458 exe "silent! !".mkdircmd." ".newdirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1459 if v:shell_error == 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1460 " refresh listing
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1461 call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1462 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1463 echoerr "***warning*** unable to make directory<".newdirname.">"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1464 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1465 redraw!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1466 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1467
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1468 " call Dret("NetMakeDir")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1469 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1470
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1471 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1472 " Browsing Support For Local Directories And Files: {{{1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1473
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1474 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1475 " LocalBrowse: supports local file/directory browsing {{{2
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1476 fun! <SID>LocalBrowse(dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1477
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1478 " let dirname= (a:dirname == "")? expand("%:p") : a:dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1479 if !isdirectory(a:dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1480 " not a directory, ignore it
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1481 return
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1482 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1483
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1484 " " unfortunate interaction -- when putting Dfunc/Dret above
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1485 " one can no longer enter the DBG buffer.
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1486 " call Dfunc("LocalBrowse(dirname<".a:dirname.">)")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1487
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1488 exe 'cd '.escape(a:dirname,' ')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1489 let dirname= getcwd()."/"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1490 " call Decho("dirname<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1491
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1492 " make this buffer modifiable
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1493 setlocal ma
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1494
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1495 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1496 " Perform Directory Listing:
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1497 " call Decho("Perform directory listing...")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1498 " set up new buffer and map
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1499 let dirnamenr = bufnr(dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1500 if dirnamenr != -1 && bufname(dirnamenr) != dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1501 " try removing the trailing "/"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1502 let dirnamenr= bufnr(substitute(dirname,'/$','','e'))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1503 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1504 " call Decho("bufnr(dirname<".dirname.">)=".dirnamenr)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1505
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1506 if dirnamenr != -1 && bufexists(dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1507 " buffer already exists (hidden), so switch to it!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1508 exe "b ".dirnamenr
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1509 exe 'cd '.escape(dirname,' ')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1510 " call Decho("changed directory to<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1511 if a:dirname != "." && line("$") >= 5
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1512 " call Dret("LocalBrowse : buffer already exists with info")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1513 return
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1514 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1515 " call Decho("buffer already exists, but needs listing (buf#".dirnamenr.")")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1516 keepjumps %d
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1517 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1518 " call Dredir("ls!")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1519 " call Decho("generate new buffer named<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1520 silent! enew!
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1521 exe 'silent! file '.escape(dirname,' ')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1522 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1523 " set standard browser options on buffer
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1524 setlocal ts=32 bt=nowrite bh=hide nobl
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1525
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1526 " set up all the maps
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1527 nnoremap <buffer> <silent> <cr> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1528 nnoremap <buffer> <silent> <c-l> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),'./'))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1529 nnoremap <buffer> <silent> - :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),'../'))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1530 nnoremap <buffer> <silent> a :let g:netrw_list_showall=1<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),'./'))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1531 nnoremap <buffer> <silent> <Leader>H :call <SID>NetHideEdit(1)<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1532 nnoremap <buffer> <silent> <Leader>M :call <SID>NetMakeDir("")<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1533 nnoremap <buffer> <silent> i :call <SID>NetLongList(1)<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1534 nnoremap <buffer> <silent> o :exe g:netrw_winsize."wincmd s"<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1535 nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1536 nnoremap <buffer> <silent> s :let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),'./'))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1537 nnoremap <buffer> <silent> v :exe g:netrw_winsize."wincmd v"<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1538 nnoremap <buffer> <silent> x :exe "norm! 0"<bar>call <SID>NetBrowseX(<SID>LocalBrowseChgDir(expand("%:p"),<SID>NetGetDir()),0)<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1539 nnoremap <buffer> <silent> <2-leftmouse> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%:p"),<SID>NetGetDir()))<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1540 exe 'nnoremap <buffer> <silent> <del> :exe "norm! 0"<bar>call <SID>LocalBrowseRm("'.expand("%:p").<SID>NetGetDir().'")<cr>'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1541 exe 'vnoremap <buffer> <silent> <del> :call <SID>LocalBrowseRm("'.expand("%:p").<SID>NetGetDir().'")<cr>'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1542 exe 'nnoremap <buffer> <silent> D :exe "norm! 0"<bar>call <SID>LocalBrowseRm("'.expand("%:p").<SID>NetGetDir().'")<cr>'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1543 exe 'vnoremap <buffer> <silent> D :call <SID>LocalBrowseRm("'.expand("%:p").<SID>NetGetDir().'")<cr>'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1544 exe 'nnoremap <buffer> <silent> R :exe "norm! 0"<bar>call <SID>LocalBrowseRename("'.expand("%:p").<SID>NetGetDir().'")<cr>'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1545 nnoremap <buffer> ? :he netrw-dir<cr>
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1546
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1547 " Set up the banner
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1548 keepjumps put ='\" ================='
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1549 keepjumps 1d
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1550 keepjumps put ='\" Directory Listing'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1551 keepjumps put ='\" '.dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1552 let g:netrw_bannercnt= 6
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1553 if g:netrw_sort_by =~ "^n"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1554 " sorted by name
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1555 let g:netrw_bannercnt= g:netrw_bannercnt + 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1556 keepjumps put ='\" Sorted by '.g:netrw_sort_by
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1557 keepjumps put ='\" Sort sequence: '.g:netrw_sort_sequence
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1558 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1559 " sorted by size or date
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1560 keepjumps put ='\" Sorted by '.g:netrw_sort_by
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1561 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1562 if g:netrw_list_hide != "" && !exists("g:netrw_list_showall")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1563 keepjumps put ='\" Hiding: '.g:netrw_list_hide
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1564 let g:netrw_bannercnt= g:netrw_bannercnt + 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1565 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1566 keepjumps put ='\" ================='
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1567
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1568 " generate the requested directory listing
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1569 call LocalBrowseList(dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1570
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1571 " manipulate the directory listing (hide, sort)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1572 setlocal ft=netrwlist
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1573 if line("$") >= g:netrw_bannercnt
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1574 if !exists("g:netrw_list_showall")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1575 if g:netrw_list_hide != ""
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1576 call s:NetrwListHide()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1577 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1578 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1579 unlet g:netrw_list_showall
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1580 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1581 if g:netrw_sort_by =~ "^n"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1582 call s:SetSort()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1583 exe 'keepjumps silent '.g:netrw_bannercnt.',$call s:NetSort()'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1584 exe 'keepjumps silent '.g:netrw_bannercnt.',$s/^\d\{3}\///e'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1585 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1586 exe 'keepjumps silent '.g:netrw_bannercnt.',$call s:NetSort()'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1587 exe 'keepjumps silent '.g:netrw_bannercnt.',$s/^\d\{-}\///e'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1588 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1589 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1590 exe g:netrw_bannercnt
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1591 try
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1592 exe 'cd '.escape(substitute(dirname,'/$','','e'),' ')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1593 " call Decho("changed directory to<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1594 catch
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1595 echoerr "Not a directory: <".dirname.">"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1596 endtry
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1597
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1598 setlocal noma nomod
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1599
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1600 " call Dret("LocalBrowse")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1601 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1602
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1603 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1604 " LocalBrowseList: does the job of "ls" for local directories {{{2
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1605 fun! LocalBrowseList(dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1606 " call Dfunc("LocalBrowseList(dirname<".a:dirname.">)")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1607
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1608 let dirnamelen = strlen(a:dirname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1609 let filelist = glob(a:dirname."*")."\n".glob(a:dirname.".*")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1610 " call Decho("filelist<".filelist.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1611
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1612 while filelist != ""
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1613 if filelist =~ '\n'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1614 let file = substitute(filelist,'\n.*$','','e')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1615 let filelist = substitute(filelist,'^.\{-}\n\(.*\)$','\1','e')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1616 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1617 let file = filelist
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1618 let filelist= ""
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1619 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1620 let pfile= file
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1621 if isdirectory(file)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1622 let pfile= file."/"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1623 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1624 let pfile= strpart(pfile,dirnamelen)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1625 if g:netrw_longlist
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1626 let pfile= pfile."\t".getfsize(file)."\t".strftime(g:netrw_timefmt,getftime(file))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1627 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1628 if g:netrw_sort_by =~ "^t"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1629 " sort by time (handles time up to 1 quintillion seconds, US)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1630 " call Decho("getftime(".file.")=".getftime(file))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1631 let t = getftime(file)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1632 let ft = strpart("000000000000000000",1,18-strlen(t)).t
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1633 " call Decho("exe keepjumps put ='".ft.'/'.file."'")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1634 exe "keepjumps put ='".ft.'/'.pfile."'"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1635 elseif g:netrw_sort_by =~ "^s"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1636 " sort by size (handles file sizes up to 1 quintillion bytes, US)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1637 " call Decho("getfsize(".file.")=".getfsize(file))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1638 let sz = getfsize(file)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1639 let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1640 " call Decho("exe keepjumps put ='".fsz.'/'.file."'")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1641 exe "keepjumps put ='".fsz.'/'.pfile."'"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1642 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1643 " sort by name
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1644 " call Decho("exe keepjumps put ='".file."'")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1645 exe "keepjumps put ='".pfile."'"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1646 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1647 endwhile
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1648
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1649 " call Dret("LocalBrowseList")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1650 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1651
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1652 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1653 " LocalBrowseChgDir: constructs a new directory based on the current {{{2
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1654 " directory and a new directory name
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1655 fun! <SID>LocalBrowseChgDir(dirname,newdir)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1656 " call Dfunc("LocalBrowseChgDir(dirname<".a:dirname."> newdir<".a:newdir.">)")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1657
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1658 let dirname= a:dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1659 let newdir = a:newdir
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1660
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1661 if dirname !~ '/$'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1662 " apparently vim is "recognizing" that it is in the home directory and
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1663 " is removing the "/". Bad idea, so I have to put it back.
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1664 let dirname= dirname.'/'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1665 " call Decho("adjusting dirname<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1666 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1667
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1668 if newdir !~ '/$'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1669 " handling a file
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1670 let dirname= dirname.newdir
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1671 " call Decho("handling a file: dirname<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1672 exe "e ".dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1673
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1674 elseif newdir == './'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1675 " refresh the directory list
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1676 " call Decho("refresh directory listing")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1677 setlocal ma
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1678 %d
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1679
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1680 elseif newdir == '../'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1681 " go up one directory
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1682 let dirname= substitute(dirname,'^\(.*/\)\([^/]\+/$\)','\1','e')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1683 " call Decho("go up one dir: dirname<".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1684
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1685 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1686 " go down one directory
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1687 let dirname= dirname.newdir
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1688 " call Decho("go down one dir: dirname<".dirname."> newdir<".newdir.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1689 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1690
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1691 " call Dret("LocalBrowseChgDir <".dirname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1692 return dirname
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1693 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1694
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1695 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1696 " LocalBrowseRm:
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1697 fun! <SID>LocalBrowseRm(path) range
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1698 " call Dfunc("LocalBrowseRm(path<".a:path.">)")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1699 " call Decho("firstline=".a:firstline." lastline=".a:lastline)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1700
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1701 " preparation for removing multiple files/directories
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1702 let ctr= a:firstline
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1703
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1704 " remove multiple files and directories
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1705 while ctr <= a:lastline
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1706 exe ctr
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1707
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1708 norm! 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1709 let rmfile= a:path.expand("<cWORD>")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1710 " call Decho("rmfile<".rmfile.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1711
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1712 if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '/$')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1713 " attempt to remove file
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1714 call inputsave()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1715 let ok= input("Confirm deletion of file<".rmfile."> ","y")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1716 call inputrestore()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1717 if ok == "y"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1718 call delete(rmfile)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1719 " call Decho("errcode=".v:shell_error)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1720 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1721
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1722 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1723 " attempt to remove directory
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1724 call inputsave()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1725 let ok= input("Confirm deletion of directory<".rmfile."> ","y")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1726 call inputrestore()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1727 let rmfile= substitute(rmfile,'/$','','e')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1728
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1729 if ok == "y"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1730 call system(g:netrw_local_rmdir." ".rmfile)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1731 " call Decho("v:shell_error=".v:shell_error)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1732
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1733 if v:shell_error != 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1734 " call Decho("2nd attempt to remove directory<".rmfile.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1735 let errcode= delete(rmfile)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1736 " call Decho("errcode=".errcode)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1737
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1738 if errcode != 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1739 if has("unix")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1740 " call Decho("3rd attempt to remove directory<".rmfile.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1741 call system("rm ".rmfile)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1742 if v:shell_error != 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1743 echoerr "unable to remove directory<".rmfile."> -- is it empty?"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1744 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1745 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1746 echoerr "unable to remove directory<".rmfile."> -- is it empty?"
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1747 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1748 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1749 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1750 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1751 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1752
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1753 let ctr= ctr + 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1754 endwhile
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1755
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1756 " refresh the directory
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1757 let curline= line(".")-1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1758 " call Decho("refresh the directory")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1759 call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%"),'./'))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1760 exe curline
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1761
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1762 " call Dret("LocalBrowseRm")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1763 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1764
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1765 " ---------------------------------------------------------------------
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1766 " LocalBrowseRename: rename a remote file or directory {{{2
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1767 fun! <SID>LocalBrowseRename(path)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1768 " call Dfunc("LocalBrowseRename(path<".a:path.">)")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1769
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1770 " preparation for removing multiple files/directories
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1771 let ctr= a:firstline
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1772
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1773 " attempt to rename files/directories
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1774 while ctr <= a:lastline
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1775 exe "keepjumps ".ctr
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1776
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1777 norm! 0
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1778 let oldname= a:path.expand("<cWORD>")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1779 " call Decho("oldname<".oldname.">")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1780
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1781 call inputsave()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1782 let newname= input("Moving ".oldname." to : ",oldname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1783 call inputrestore()
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1784
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1785 let ret= system(g:netrw_local_rename." ".oldname." ".newname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1786 " call Decho("executing system(".g:netrw_local_rename." ".oldname." ".newname)
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1787
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1788 let ctr= ctr + 1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1789 endwhile
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1790
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1791 " refresh the directory
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1792 let curline= line(".")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1793 call <SID>LocalBrowse(<SID>LocalBrowseChgDir(expand("%"),'./'))
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1794 exe "keepjumps ".curline
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1795 " call Dret("LocalBrowseRename")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1796 endfun
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1797
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
1798 " ---------------------------------------------------------------------
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1799 " NetMethod: determine method of transfer {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1800 " method == 1: rcp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1801 " 2: ftp + <.netrc>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1802 " 3: ftp + machine, id, password, and [path]filename
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1803 " 4: scp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1804 " 5: http (wget)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1805 " 6: cadaver
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1806 " 7: rsync
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1807 " 8: fetch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1808 " 9: sftp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1809 fun! s:NetMethod(choice) " globals: method machine id passwd fname
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1810 " call Dfunc("NetMethod(a:choice<".a:choice.">)")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1811
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1812 " initialization
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1813 let b:netrw_method = 0
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1814 let g:netrw_machine = ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1815 let b:netrw_fname = ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1816 let g:netrw_port = ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1817
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1818 " Patterns:
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1819 " mipf : a:machine a:id password filename Use ftp
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1820 " mf : a:machine filename Use ftp + <.netrc> or g:netrw_uid g:netrw_passwd
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1821 " ftpurm : ftp://[user@]host[[#:]port]/filename Use ftp + <.netrc> or g:netrw_uid g:netrw_passwd
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1822 " rcpurm : rcp://[user@]host/filename Use rcp
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1823 " rcphf : [user@]host:filename Use rcp
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1824 " scpurm : scp://[user@]host[[#:]port]/filename Use scp
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1825 " httpurm : http://[user@]host/filename Use wget
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1826 " davurm : [s]dav://host[:port]/path Use cadaver
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1827 " rsyncurm : rsync://host[:port]/path Use rsync
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1828 " fetchurm : fetch://[user@]host[:http]/filename Use fetch (defaults to ftp, override for http)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1829 " sftpurm : sftp://[user@]host/filename Use scp
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1830 let mipf = '^\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1831 let mf = '^\(\S\+\)\s\+\(\S\+\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1832 let ftpurm = '^ftp://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1833 let rcpurm = '^rcp://\(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1834 let rcphf = '^\(\(\h\w*\)@\)\=\(\h\w*\):\([^@]\+\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1835 let scpurm = '^scp://\([^/]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1836 let httpurm = '^http://\([^/]\{-}\)\(/.*\)\=$'
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1837 let davurm = '^s\=dav://\([^/]\+\)/\(.*/\)\([-_.~[:alnum:]]\+\)$'
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1838 let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1839 let fetchurm = '^fetch://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1840 let sftpurm = '^sftp://\([^/]\{-}\)/\(.*\)\=$'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1841
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1842 " call Decho("determine method:")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1843 " Determine Method
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1844 " rcp://user@hostname/...path-to-file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1845 if match(a:choice,rcpurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1846 " call Decho("rcp://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1847 let b:netrw_method = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1848 let userid = substitute(a:choice,rcpurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1849 let g:netrw_machine= substitute(a:choice,rcpurm,'\3',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1850 let b:netrw_fname = substitute(a:choice,rcpurm,'\4',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1851 if userid != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1852 let g:netrw_uid= userid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1853 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1854
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1855 " scp://user@hostname/...path-to-file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1856 elseif match(a:choice,scpurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1857 " call Decho("scp://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1858 let b:netrw_method = 4
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1859 let g:netrw_machine= substitute(a:choice,scpurm,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1860 let b:netrw_port = substitute(a:choice,scpurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1861 let b:netrw_fname = substitute(a:choice,scpurm,'\3',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1862
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1863 " http://user@hostname/...path-to-file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1864 elseif match(a:choice,httpurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1865 " call Decho("http://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1866 let b:netrw_method = 5
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1867 let g:netrw_machine= substitute(a:choice,httpurm,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1868 let b:netrw_fname = substitute(a:choice,httpurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1869
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1870 " dav://hostname[:port]/..path-to-file..
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1871 elseif match(a:choice,davurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1872 " call Decho("dav://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1873 let b:netrw_method= 6
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1874 if a:choice =~ '^s'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1875 let g:netrw_machine= 'https://'.substitute(a:choice,davurm,'\1/\2',"")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1876 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1877 let g:netrw_machine= 'http://'.substitute(a:choice,davurm,'\1/\2',"")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1878 endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1879 let b:netrw_fname = substitute(a:choice,davurm,'\3',"")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1880
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1881 " rsync://user@hostname/...path-to-file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1882 elseif match(a:choice,rsyncurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1883 " call Decho("rsync://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1884 let b:netrw_method = 7
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1885 let g:netrw_machine= substitute(a:choice,rsyncurm,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1886 let b:netrw_fname = substitute(a:choice,rsyncurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1887
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1888 " ftp://[user@]hostname[[:#]port]/...path-to-file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1889 elseif match(a:choice,ftpurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1890 " call Decho("ftp://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1891 let userid = substitute(a:choice,ftpurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1892 let g:netrw_machine= substitute(a:choice,ftpurm,'\3',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1893 let g:netrw_port = substitute(a:choice,ftpurm,'\4',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1894 let b:netrw_fname = substitute(a:choice,ftpurm,'\5',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1895 if g:netrw_port != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1896 let g:netrw_port = substitute(g:netrw_port,"[#:]","","")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1897 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1898 if userid != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1899 let g:netrw_uid= userid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1900 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1901 if exists("g:netrw_uid") && exists("g:netrw_passwd")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1902 let b:netrw_method = 3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1903 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1904 if filereadable(expand("$HOME/.netrc")) && !exists("g:netrw_ignorenetrc")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1905 let b:netrw_method= 2
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1906 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1907 if !exists("g:netrw_uid") || g:netrw_uid == ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1908 call NetUserPass()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1909 elseif !exists("g:netrw_passwd") || g:netrw_passwd == ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1910 call NetUserPass(g:netrw_uid)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1911 " else just use current g:netrw_uid and g:netrw_passwd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1912 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1913 let b:netrw_method= 3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1914 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1915 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1916
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1917 elseif match(a:choice,fetchurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1918 " call Decho("fetch://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1919 let b:netrw_method = 8
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1920 let g:netrw_userid = substitute(a:choice,fetchurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1921 let g:netrw_machine= substitute(a:choice,fetchurm,'\3',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1922 let b:netrw_option = substitute(a:choice,fetchurm,'\4',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1923 let b:netrw_fname = substitute(a:choice,fetchurm,'\5',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1924
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1925 " Issue an ftp : "machine id password [path/]filename"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1926 elseif match(a:choice,mipf) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1927 " call Decho("(ftp) host id pass file")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1928 let b:netrw_method = 3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1929 let g:netrw_machine = substitute(a:choice,mipf,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1930 let g:netrw_uid = substitute(a:choice,mipf,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1931 let g:netrw_passwd = substitute(a:choice,mipf,'\3',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1932 let b:netrw_fname = substitute(a:choice,mipf,'\4',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1933
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1934 " Issue an ftp: "hostname [path/]filename"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1935 elseif match(a:choice,mf) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1936 " call Decho("(ftp) host file")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1937 if exists("g:netrw_uid") && exists("g:netrw_passwd")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1938 let b:netrw_method = 3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1939 let g:netrw_machine = substitute(a:choice,mf,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1940 let b:netrw_fname = substitute(a:choice,mf,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1941
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1942 elseif filereadable(expand("$HOME/.netrc"))
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1943 let b:netrw_method = 2
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1944 let g:netrw_machine = substitute(a:choice,mf,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1945 let b:netrw_fname = substitute(a:choice,mf,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1946 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1947
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1948 " sftp://user@hostname/...path-to-file
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1949 elseif match(a:choice,sftpurm) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1950 " call Decho("sftp://...")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1951 let b:netrw_method = 9
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1952 let g:netrw_machine= substitute(a:choice,sftpurm,'\1',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1953 let b:netrw_fname = substitute(a:choice,sftpurm,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1954
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1955 " Issue an rcp: hostname:filename" (this one should be last)
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1956 elseif match(a:choice,rcphf) == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1957 " call Decho("(rcp) [user@]host:file) rcphf<".rcphf.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1958 let b:netrw_method = 1
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1959 let userid = substitute(a:choice,rcphf,'\2',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1960 let g:netrw_machine= substitute(a:choice,rcphf,'\3',"")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1961 let b:netrw_fname = substitute(a:choice,rcphf,'\4',"")
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1962 " call Decho('\1<'.substitute(a:choice,rcphf,'\1',"").">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1963 " call Decho('\2<'.substitute(a:choice,rcphf,'\2',"").">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1964 " call Decho('\3<'.substitute(a:choice,rcphf,'\3',"").">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1965 " call Decho('\4<'.substitute(a:choice,rcphf,'\4',"").">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1966 if userid != ""
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1967 let g:netrw_uid= userid
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1968 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1969 if has("win32")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1970 " don't let PCs try <.netrc>
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1971 let b:netrw_method = 3
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1972 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1973
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1974 else
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1975 echoerr "***error*** cannot determine method"
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1976 let b:netrw_method = -1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1977 endif
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
1978
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1979 " call Decho("a:choice <".a:choice.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1980 " call Decho("b:netrw_method <".b:netrw_method.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1981 " call Decho("g:netrw_machine<".g:netrw_machine.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1982 " call Decho("g:netrw_port <".g:netrw_port.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1983 " if exists("g:netrw_uid") "Decho
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1984 " call Decho("g:netrw_uid <".g:netrw_uid.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1985 " endif "Decho
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1986 " if exists("g:netrw_passwd") "Decho
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1987 " call Decho("g:netrw_passwd <".g:netrw_passwd.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1988 " endif "Decho
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1989 " call Decho("b:netrw_fname <".b:netrw_fname.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
1990 " call Dret("NetMethod")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1991 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1992 " end of NetMethod
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1993
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1994 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1995 " NetUserPass: set username and password for subsequent ftp transfer {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1996 " Usage: :call NetUserPass() -- will prompt for userid and password
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1997 " :call NetUserPass("uid") -- will prompt for password
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1998 " :call NetUserPass("uid","password") -- sets global userid and password
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1999 fun! NetUserPass(...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2000
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2001 " get/set userid
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2002 if a:0 == 0
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2003 " call Dfunc("NetUserPass(a:0<".a:0.">)")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2004 if !exists("g:netrw_uid") || g:netrw_uid == ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2005 " via prompt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2006 let g:netrw_uid= input('Enter username: ')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2007 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2008 else " from command line
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2009 " call Dfunc("NetUserPass(a:1<".a:1.">) {")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2010 let g:netrw_uid= a:1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2011 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2012
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2013 " get password
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2014 if a:0 <= 1 " via prompt
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2015 " call Decho("a:0=".a:0." case <=1:")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2016 let g:netrw_passwd= inputsecret("Enter Password: ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2017 else " from command line
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2018 " call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2019 let g:netrw_passwd=a:2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2020 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2021 " call Dret("NetUserPass")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2022 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2023 " end NetUserPass
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2024
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2025 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2026 " NetOptionSave: save options and set to "standard" form {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2027 fun!s:NetOptionSave()
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2028 " call Dfunc("NetOptionSave()")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2029
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2030 " Get Temporary Filename
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2031 let s:aikeep = &ai
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2032 let s:cinkeep = &cin
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2033 let s:cinokeep = &cino
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2034 let s:comkeep = &com
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2035 let s:cpokeep = &cpo
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2036 let s:dirkeep = getcwd()
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2037 let s:gdkeep = &gd
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2038 let s:twkeep = &tw
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2039 setlocal cino =
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2040 setlocal com =
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2041 setlocal cpo -=aA
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2042 setlocal nocin noai
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2043 setlocal tw =0
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2044 if has("win32") && !has("win95")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2045 let s:swfkeep= &swf
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2046 setlocal noswf
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2047 " call Decho("setting s:swfkeep to <".&swf.">")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2048 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2049
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2050 " call Dret("NetOptionSave")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2051 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2052
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2053 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2054 " NetOptionRestore: restore options {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2055 fun! s:NetOptionRestore()
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2056 " call Dfunc("NetOptionRestore()")
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2057
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2058 let &ai = s:aikeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2059 let &cin = s:cinkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2060 let &cino = s:cinokeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2061 let &com = s:comkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2062 let &cpo = s:cpokeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2063 exe "lcd ".s:dirkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2064 let &gd = s:gdkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2065 let &tw = s:twkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2066 if exists("s:swfkeep")
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2067 let &swf= s:swfkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2068 unlet s:swfkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2069 endif
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2070 unlet s:aikeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2071 unlet s:cinkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2072 unlet s:cinokeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2073 unlet s:comkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2074 unlet s:cpokeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2075 unlet s:gdkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2076 unlet s:twkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2077 unlet s:dirkeep
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2078
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2079 " call Dret("NetOptionRestore")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2080 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2081
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2082 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2083 " NetReadFixup: this sort of function is typically written by the user {{{1
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2084 " to handle extra junk that their system's ftp dumps
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2085 " into the transfer. This function is provided as an
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2086 " example and as a fix for a Windows 95 problem: in my
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2087 " experience, win95's ftp always dumped four blank lines
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2088 " at the end of the transfer.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2089 if has("win95") && g:netrw_win95ftp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2090 fun! NetReadFixup(method, line1, line2)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2091 " call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2092 if method == 3 " ftp (no <.netrc>)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2093 let fourblanklines= line2 - 3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2094 silent fourblanklines.",".line2."g/^\s*/d"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2095 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2096 " call Dret("NetReadFixup")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2097 endfun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2098 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2099
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2100 " ---------------------------------------------------------------------
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2101 " NetSort: Piet Delport's BISort2() function, modified to take a range {{{1
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2102 fun! <SID>NetSort() range
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2103 " call Dfunc("NetSort()")
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2104
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2105 let i = a:firstline + 1
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2106 while i <= a:lastline
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2107 " find insertion point via binary search
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2108 let i_val = getline(i)
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2109 let lo = a:firstline
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2110 let hi = i
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2111 while lo < hi
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2112 let mid = (lo + hi) / 2
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2113 let mid_val = getline(mid)
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2114 if g:netrw_sort_direction =~ '^n'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2115 " normal sorting order
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2116 if i_val < mid_val
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2117 let hi = mid
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2118 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2119 let lo = mid + 1
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2120 if i_val == mid_val | break | endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2121 endif
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2122 else
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2123 " reverse sorting order
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2124 if i_val > mid_val
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2125 let hi = mid
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2126 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2127 let lo = mid + 1
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2128 if i_val == mid_val | break | endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2129 endif
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2130 endif
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2131 endwhile
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2132 " do insert
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2133 if lo < i
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2134 exe 'keepjumps '.i.'d_'
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
2135 keepjumps call append(lo - 1, i_val)
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2136 endif
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2137 let i = i + 1
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2138 endwhile
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2139
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2140 " call Dret("NetSort")
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2141 endfun
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2142
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2143 " ---------------------------------------------------------------------
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2144 " SetSort: sets up the sort based on the g:netrw_sort_sequence {{{1
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2145 " What this function does is to compute a priority for the patterns
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2146 " in the g:netrw_sort_sequence. It applies a substitute to any
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2147 " "files" that satisfy each pattern, putting the priority / in
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2148 " front. An "*" pattern handles the default priority.
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2149 fun! <SID>SetSort()
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2150 " call Dfunc("SetSort() bannercnt=".g:netrw_bannercnt)
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2151 if g:netrw_longlist
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2152 let seqlist = substitute(g:netrw_sort_sequence,'\$','\\%(\t\\|\$\\)','ge')
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2153 else
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2154 let seqlist = g:netrw_sort_sequence
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2155 endif
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2156 " sanity check -- insure that * appears somewhere
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2157 if seqlist == ""
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2158 let seqlist= '*'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2159 elseif seqlist !~ '\*'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2160 let seqlist= seqlist.',*'
631143ac4a01 updated for version 7.0007
vimboss
parents: 12
diff changeset
2161 endif
12
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2162 let priority = 1
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2163 while seqlist != ""
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2164 if seqlist =~ ','
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2165 let seq = substitute(seqlist,',.*$','','e')
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2166 let seqlist = substitute(seqlist,'^.\{-},\(.*\)$','\1','e')
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2167 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2168 let seq = seqlist
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2169 let seqlist = ""
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2170 endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2171 let eseq= escape(seq,'/')
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2172 if priority < 10
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2173 let spriority= "00".priority.'\/'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2174 elseif priority < 100
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2175 let spriority= "0".priority.'\/'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2176 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2177 let spriority= priority.'\/'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2178 endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2179 " call Decho("priority=".priority." spriority<".spriority."> seq<".seq."> seqlist<".seqlist.">")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2180
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2181 if seq == '*'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2182 exe 'keepjumps silent '.g:netrw_bannercnt.',$v/^\d\{3}\//s/^/'.spriority.'/'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2183 else
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2184 exe 'keepjumps silent '.g:netrw_bannercnt.',$g/'.eseq.'/s/^/'.spriority.'/'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2185 endif
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2186 let priority = priority + 1
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2187 endwhile
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2188
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2189 exe 'keepjumps silent '.g:netrw_bannercnt.',$s/^\(\d\{3}\/\)\%(\d\{3}\/\)\+/\1/e'
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2190
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2191 " call Dret("SetSort")
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2192 endfun
bdeee1504ac1 updated for version 7.0004
vimboss
parents: 11
diff changeset
2193
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2194 " ------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2195 " Restore {{{1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2196 let &cpo= s:save_cpo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2197 unlet s:save_cpo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2198 " vim:ts=8 fdm=marker