blob: 35df6dd463f5532eec93c39a4cf2085d0c376105 [file] [log] [blame]
Bram Moolenaar843ee412004-06-30 16:16:41 +00001" NetrwFileHandlers: contains various extension-based file handlers for
Bram Moolenaar269ec652004-07-29 08:43:53 +00002" netrw's browsers' x command ("eXecute launcher")
Bram Moolenaar843ee412004-06-30 16:16:41 +00003" Author: Charles E. Campbell, Jr.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00004" Date: Aug 31, 2004
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00005" Version: 3
Bram Moolenaar843ee412004-06-30 16:16:41 +00006
Bram Moolenaard4755bb2004-09-02 19:12:26 +00007" ---------------------------------------------------------------------
8" Prevent Reloading: {{{1
9if exists("g:loaded_netrwfilehandlers") || &cp
10 finish
11endif
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000012let g:loaded_netrwfilehandlers= "v3"
Bram Moolenaard4755bb2004-09-02 19:12:26 +000013
14" ---------------------------------------------------------------------
15" NetrwFileHandler_html: handles html when the user hits "x" when the {{{1
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000016" cursor is atop a *.html file
Bram Moolenaar8299df92004-07-10 09:47:34 +000017fun! NetrwFileHandler_html(pagefile)
18" call Dfunc("NetrwFileHandler_html(".a:pagefile.")")
Bram Moolenaar843ee412004-06-30 16:16:41 +000019
Bram Moolenaar8299df92004-07-10 09:47:34 +000020 let page= substitute(a:pagefile,'^','file://','')
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000021
22 if executable("mozilla")
Bram Moolenaar8299df92004-07-10 09:47:34 +000023" call Decho("executing !mozilla ".page)
Bram Moolenaard4755bb2004-09-02 19:12:26 +000024 exe "!mozilla \"".page.'"'
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000025 elseif executable("netscape")
Bram Moolenaar8299df92004-07-10 09:47:34 +000026" call Decho("executing !netscape ".page)
Bram Moolenaard4755bb2004-09-02 19:12:26 +000027 exe "!netscape \"".page.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000028 else
29" call Dret("NetrwFileHandler_html 0")
30 return 0
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000031 endif
Bram Moolenaar843ee412004-06-30 16:16:41 +000032
Bram Moolenaar8299df92004-07-10 09:47:34 +000033" call Dret("NetrwFileHandler_html 1")
34 return 1
35endfun
36
37" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000038" NetrwFileHandler_htm: handles html when the user hits "x" when the {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000039" cursor is atop a *.htm file
40fun! NetrwFileHandler_htm(pagefile)
41" call Dfunc("NetrwFileHandler_htm(".a:pagefile.")")
42
43 let page= substitute(a:pagefile,'^','file://','')
44
45 if executable("mozilla")
46" call Decho("executing !mozilla ".page)
Bram Moolenaard4755bb2004-09-02 19:12:26 +000047 exe "!mozilla \"".page.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000048 elseif executable("netscape")
49" call Decho("executing !netscape ".page)
Bram Moolenaard4755bb2004-09-02 19:12:26 +000050 exe "!netscape \"".page.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000051 else
52" call Dret("NetrwFileHandler_htm 0")
53 return 0
54 endif
55
56" call Dret("NetrwFileHandler_htm 1")
57 return 1
58endfun
59
60" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000061" NetrwFileHandler_jpg: {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000062fun! NetrwFileHandler_jpg(jpgfile)
63" call Dfunc("NetrwFileHandler_jpg(jpgfile<".a:jpgfile.">)")
64
65 if executable("gimp")
66 exe "silent! !gimp -s ".a:jpgfile
67 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
Bram Moolenaard4755bb2004-09-02 19:12:26 +000068" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
69 exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:jpgfile.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000070 else
71" call Dret("NetrwFileHandler_jpg 0")
72 return 0
73 endif
74
75" call Dret("NetrwFileHandler_jpg 1")
76 return 1
77endfun
78
79" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000080" NetrwFileHandler_gif: {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000081fun! NetrwFileHandler_gif(giffile)
82" call Dfunc("NetrwFileHandler_gif(giffile<".a:giffile.">)")
83
84 if executable("gimp")
85 exe "silent! !gimp -s ".a:giffile
86 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
Bram Moolenaard4755bb2004-09-02 19:12:26 +000087 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:giffile.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000088 else
89" call Dret("NetrwFileHandler_gif 0")
90 return 0
91 endif
92
93" call Dret("NetrwFileHandler_gif 1")
94 return 1
95endfun
96
97" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000098" NetrwFileHandler_png: {{{1
99fun! NetrwFileHandler_png(pngfile)
100" call Dfunc("NetrwFileHandler_png(pngfile<".a:pngfile.">)")
101
102 if executable("gimp")
103 exe "silent! !gimp -s ".a:pngfile
104 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
105 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pngfile.'"'
106 else
107" call Dret("NetrwFileHandler_png 0")
108 return 0
109 endif
110
111" call Dret("NetrwFileHandler_png 1")
112 return 1
113endfun
114
115" ---------------------------------------------------------------------
116" NetrwFileHandler_pnm: {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +0000117fun! NetrwFileHandler_pnm(pnmfile)
118" call Dfunc("NetrwFileHandler_pnm(pnmfile<".a:pnmfile.">)")
119
120 if executable("gimp")
121 exe "silent! !gimp -s ".a:pnmfile
122 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000123 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pnmfile.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +0000124 else
125" call Dret("NetrwFileHandler_pnm 0")
126 return 0
127 endif
128
129" call Dret("NetrwFileHandler_pnm 1")
130 return 1
131endfun
132
133" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000134" NetrwFileHandler_bmp: visualize bmp files {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +0000135fun! NetrwFileHandler_bmp(bmpfile)
136" call Dfunc("NetrwFileHandler_bmp(bmpfile<".a:bmpfile.">)")
137
138 if executable("gimp")
139 exe "silent! !gimp -s ".a:bmpfile
140 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000141 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:bmpfile.'"'
Bram Moolenaar8299df92004-07-10 09:47:34 +0000142 else
143" call Dret("NetrwFileHandler_bmp 0")
144 return 0
145 endif
146
147" call Dret("NetrwFileHandler_bmp 1")
148 return 1
Bram Moolenaar843ee412004-06-30 16:16:41 +0000149endfun
150
151" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000152" NetrwFileHandler_pdf: visualize pdf files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000153fun! NetrwFileHandler_pdf(pdf)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000154" " call Dfunc("NetrwFileHandler_pdf(pdf<".a:pdf.">)")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000155 if executable("gs")
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000156 exe 'silent! !gs "'.a:pdf.'"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000157 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000158" " call Dret("NetrwFileHandler_pdf 0")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000159 return 0
160 endif
161
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000162" " call Dret("NetrwFileHandler_pdf 1")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000163 return 1
164endfun
165
166" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000167" NetrwFileHandler_sxw: visualize sxw files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000168fun! NetrwFileHandler_sxw(sxw)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000169" " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000170 if executable("gs")
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000171 exe 'silent! !gs "'.a:sxw.'"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000172 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000173" " call Dret("NetrwFileHandler_sxw 0")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000174 return 0
175 endif
176
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000177" " call Dret("NetrwFileHandler_sxw 1")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000178 return 1
179endfun
180
181" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000182" NetrwFileHandler_doc: visualize doc files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000183fun! NetrwFileHandler_doc(doc)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000184" " call Dfunc("NetrwFileHandler_doc(doc<".a:doc.">)")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000185
186 if executable("oowriter")
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000187 exe 'silent! !oowriter "'.a:doc.'"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000188 redraw!
189 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000190" " call Dret("NetrwFileHandler_doc 0")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000191 return 0
192 endif
193
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000194" " call Dret("NetrwFileHandler_doc 1")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000195 return 1
196endfun
197
198" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000199" NetrwFileHandler_sxw: visualize sxw files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000200fun! NetrwFileHandler_sxw(sxw)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000201" " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000202
203 if executable("oowriter")
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000204 exe 'silent! !oowriter "'.a:sxw.'"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000205 redraw!
206 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000207" " call Dret("NetrwFileHandler_sxw 0")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000208 return 0
209 endif
210
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000211" " call Dret("NetrwFileHandler_sxw 1")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000212 return 1
213endfun
214
215" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000216" NetrwFileHandler_xls: visualize xls files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000217fun! NetrwFileHandler_xls(xls)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000218" " call Dfunc("NetrwFileHandler_xls(xls<".a:xls.">)")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000219
220 if executable("oocalc")
Bram Moolenaar293ee4d2004-12-09 21:34:53 +0000221 exe 'silent! !oocalc "'.a:xls.'"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000222 redraw!
223 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000224" " call Dret("NetrwFileHandler_xls 0")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000225 return 0
226 endif
227
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000228" " call Dret("NetrwFileHandler_xls 1")
Bram Moolenaar269ec652004-07-29 08:43:53 +0000229 return 1
230endfun
231
232" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000233" NetrwFileHandler_ps: handles PostScript files {{{1
234fun! NetrwFileHandler_ps(ps)
235" call Dfunc("NetrwFileHandler_ps()")
236 if executable("gs")
237 exe "silent! !gs ".a:ps
238 redraw!
239 elseif executable("ghostscript")
240 exe "silent! !ghostscript ".a:ps
241 redraw!
242 elseif executable("ghostscript")
243 exe "silent! !ghostscript ".a:ps
244 redraw!
245 elseif executable("gswin32")
246 exe "silent! !gswin32 \"".a:ps.'"'
247 redraw!
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000248 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000249" call Dret("NetrwFileHandler_ps 0")
250 return 0
251 endif
252
253" call Dret("NetrwFileHandler_ps 1")
254 return 1
255endfun
256
257" ---------------------------------------------------------------------
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000258" NetrwFileHandler_eps: handles encapsulated PostScript files {{{1
259fun! NetrwFileHandler_eps(eps)
260" call Dfunc("NetrwFileHandler_ps()")
261 if executable("gs")
262 exe "silent! !gs ".a:eps
263 redraw!
264 elseif executable("ghostscript")
265 exe "silent! !ghostscript ".a:eps
266 redraw!
267 elseif executable("ghostscript")
268 exe "silent! !ghostscript ".a:eps
269 redraw!
270 elseif executable("gswin32")
271 exe "silent! !gswin32 \"".a:eps.'"'
272 redraw!
273 else
274" call Dret("NetrwFileHandler_ps 0")
275 return 0
276 endif
277endfun
278
279" ---------------------------------------------------------------------
280" NetrwFileHandler_fig: handles xfig files {{{1
281fun! NetrwFileHandler_fig(fig)
282" call Dfunc("NetrwFileHandler_fig()")
283 if executable("xfig")
284 exe "silent! !xfig ".a:fig
285 redraw!
286 else
287" call Dret("NetrwFileHandler_fig 0")
288 return 0
289 endif
290
291" call Dret("NetrwFileHandler_fig 1")
292 return 1
293endfun
294
295" ---------------------------------------------------------------------
296" NetrwFileHandler_obj: handles tgif's obj files {{{1
297fun! NetrwFileHandler_obj(obj)
298" call Dfunc("NetrwFileHandler_obj()")
299 if has("unix") && executable("tgif")
300 exe "silent! !tgif ".a:obj
301 redraw!
302 else
303" call Dret("NetrwFileHandler_obj 0")
304 return 0
305 endif
306
307" call Dret("NetrwFileHandler_obj 1")
308 return 1
309endfun
310
311
312" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000313" vim: ts=4 fdm=marker