annotate runtime/plugin/netrw.vim @ 21:db5102f7e29f

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