blob: bad6d81c65042560ec5703ba94723b0bba4e68f4 [file] [log] [blame]
Bram Moolenaara5fac542005-10-12 20:58:49 +00001" netrwFileHandlers: contains various extension-based file handlers for
2" netrw's browsers' x command ("eXecute launcher")
3" Author: Charles E. Campbell, Jr.
Bram Moolenaar1056d982006-03-09 22:37:52 +00004" Date: Feb 15, 2006
5" Version: 8a ASTRO-ONLY
Bram Moolenaara5fac542005-10-12 20:58:49 +00006" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
7" Permission is hereby granted to use and distribute this code,
8" with or without modifications, provided that this copyright
9" notice is copied with it. Like anything else that's free,
10" netrwFileHandlers.vim is provided *as is* and comes with no
11" warranty of any kind, either expressed or implied. In no
12" event will the copyright holder be liable for any damages
13" resulting from the use of this software.
14"
15" Rom 6:23 (WEB) For the wages of sin is death, but the free gift of God {{{1
16" is eternal life in Christ Jesus our Lord.
17
18" ---------------------------------------------------------------------
19" Load Once: {{{1
20if exists("g:loaded_netrwFileHandlers") || &cp
21 finish
22endif
23let s:keepcpo= &cpo
24set cpo&vim
Bram Moolenaar1056d982006-03-09 22:37:52 +000025let g:loaded_netrwFileHandlers= "v8a"
Bram Moolenaara5fac542005-10-12 20:58:49 +000026
27" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +000028" netrwFileHandlers#Invoke: {{{2
29fun! netrwFileHandlers#Invoke(exten,fname)
30" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
31
32 if a:exten != "" && exists("*s:NFH_".a:exten)
33" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.a:fname.'")')
34 exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
35 endif
36
37" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
38 return 0
Bram Moolenaara5fac542005-10-12 20:58:49 +000039endfun
40
41" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +000042" s:NFH_html: handles html when the user hits "x" when the {{{1
Bram Moolenaara5fac542005-10-12 20:58:49 +000043" cursor is atop a *.html file
Bram Moolenaar1056d982006-03-09 22:37:52 +000044fun! s:NFH_html(pagefile)
45" call Dfunc("s:NFH_html(".a:pagefile.")")
Bram Moolenaara5fac542005-10-12 20:58:49 +000046
47 let page= substitute(a:pagefile,'^','file://','')
48
49 if executable("mozilla")
50" call Decho("executing !mozilla ".page)
51 exe "!mozilla \"".page.'"'
52 elseif executable("netscape")
53" call Decho("executing !netscape ".page)
54 exe "!netscape \"".page.'"'
55 else
Bram Moolenaar1056d982006-03-09 22:37:52 +000056" call Dret("s:NFH_html 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +000057 return 0
58 endif
59
Bram Moolenaar1056d982006-03-09 22:37:52 +000060" call Dret("s:NFH_html 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +000061 return 1
62endfun
63
64" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +000065" s:NFH_htm: handles html when the user hits "x" when the {{{1
Bram Moolenaara5fac542005-10-12 20:58:49 +000066" cursor is atop a *.htm file
Bram Moolenaar1056d982006-03-09 22:37:52 +000067fun! s:NFH_htm(pagefile)
68" call Dfunc("s:NFH_htm(".a:pagefile.")")
Bram Moolenaara5fac542005-10-12 20:58:49 +000069
70 let page= substitute(a:pagefile,'^','file://','')
71
72 if executable("mozilla")
73" call Decho("executing !mozilla ".page)
74 exe "!mozilla \"".page.'"'
75 elseif executable("netscape")
76" call Decho("executing !netscape ".page)
77 exe "!netscape \"".page.'"'
78 else
Bram Moolenaar1056d982006-03-09 22:37:52 +000079" call Dret("s:NFH_htm 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +000080 return 0
81 endif
82
Bram Moolenaar1056d982006-03-09 22:37:52 +000083" call Dret("s:NFH_htm 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +000084 return 1
85endfun
86
87" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +000088" s:NFH_jpg: {{{1
89fun! s:NFH_jpg(jpgfile)
90" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +000091
92 if executable("gimp")
93 exe "silent! !gimp -s ".a:jpgfile
94 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
95" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
96 exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:jpgfile.'"'
97 else
Bram Moolenaar1056d982006-03-09 22:37:52 +000098" call Dret("s:NFH_jpg 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +000099 return 0
100 endif
101
Bram Moolenaar1056d982006-03-09 22:37:52 +0000102" call Dret("s:NFH_jpg 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000103 return 1
104endfun
105
106" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000107" s:NFH_gif: {{{1
108fun! s:NFH_gif(giffile)
109" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000110
111 if executable("gimp")
112 exe "silent! !gimp -s ".a:giffile
113 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
114 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:giffile.'"'
115 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000116" call Dret("s:NFH_gif 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000117 return 0
118 endif
119
Bram Moolenaar1056d982006-03-09 22:37:52 +0000120" call Dret("s:NFH_gif 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000121 return 1
122endfun
123
124" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000125" s:NFH_png: {{{1
126fun! s:NFH_png(pngfile)
127" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000128
129 if executable("gimp")
130 exe "silent! !gimp -s ".a:pngfile
131 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
132 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pngfile.'"'
133 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000134" call Dret("s:NFH_png 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000135 return 0
136 endif
137
Bram Moolenaar1056d982006-03-09 22:37:52 +0000138" call Dret("s:NFH_png 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000139 return 1
140endfun
141
142" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000143" s:NFH_pnm: {{{1
144fun! s:NFH_pnm(pnmfile)
145" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000146
147 if executable("gimp")
148 exe "silent! !gimp -s ".a:pnmfile
149 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
150 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pnmfile.'"'
151 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000152" call Dret("s:NFH_pnm 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000153 return 0
154 endif
155
Bram Moolenaar1056d982006-03-09 22:37:52 +0000156" call Dret("s:NFH_pnm 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000157 return 1
158endfun
159
160" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000161" s:NFH_bmp: visualize bmp files {{{1
162fun! s:NFH_bmp(bmpfile)
163" call Dfunc("s:NFH_bmp(bmpfile<".a:bmpfile.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000164
165 if executable("gimp")
166 exe "silent! !gimp -s ".a:bmpfile
167 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
168 exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:bmpfile.'"'
169 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000170" call Dret("s:NFH_bmp 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000171 return 0
172 endif
173
Bram Moolenaar1056d982006-03-09 22:37:52 +0000174" call Dret("s:NFH_bmp 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000175 return 1
176endfun
177
178" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000179" s:NFH_pdf: visualize pdf files {{{1
180fun! s:NFH_pdf(pdf)
181" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000182 if executable("gs")
183 exe 'silent! !gs "'.a:pdf.'"'
184 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000185" call Dret("s:NFH_pdf 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000186 return 0
187 endif
188
Bram Moolenaar1056d982006-03-09 22:37:52 +0000189" call Dret("s:NFH_pdf 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000190 return 1
191endfun
192
193" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000194" s:NFH_doc: visualize doc files {{{1
195fun! s:NFH_doc(doc)
196" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000197
198 if executable("oowriter")
199 exe 'silent! !oowriter "'.a:doc.'"'
200 redraw!
201 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000202" call Dret("s:NFH_doc 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000203 return 0
204 endif
205
Bram Moolenaar1056d982006-03-09 22:37:52 +0000206" call Dret("s:NFH_doc 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000207 return 1
208endfun
209
210" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000211" s:NFH_sxw: visualize sxw files {{{1
212fun! s:NFH_sxw(sxw)
213" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000214
215 if executable("oowriter")
216 exe 'silent! !oowriter "'.a:sxw.'"'
217 redraw!
218 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000219" call Dret("s:NFH_sxw 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000220 return 0
221 endif
222
Bram Moolenaar1056d982006-03-09 22:37:52 +0000223" call Dret("s:NFH_sxw 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000224 return 1
225endfun
226
227" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000228" s:NFH_xls: visualize xls files {{{1
229fun! s:NFH_xls(xls)
230" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000231
232 if executable("oocalc")
233 exe 'silent! !oocalc "'.a:xls.'"'
234 redraw!
235 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000236" call Dret("s:NFH_xls 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000237 return 0
238 endif
239
Bram Moolenaar1056d982006-03-09 22:37:52 +0000240" call Dret("s:NFH_xls 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000241 return 1
242endfun
243
244" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000245" s:NFH_ps: handles PostScript files {{{1
246fun! s:NFH_ps(ps)
247" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000248 if executable("gs")
Bram Moolenaar1056d982006-03-09 22:37:52 +0000249" call Decho("exe silent! !gs ".a:ps)
Bram Moolenaara5fac542005-10-12 20:58:49 +0000250 exe "silent! !gs ".a:ps
251 redraw!
252 elseif executable("ghostscript")
Bram Moolenaar1056d982006-03-09 22:37:52 +0000253" call Decho("exe silent! !ghostscript ".a:ps)
Bram Moolenaara5fac542005-10-12 20:58:49 +0000254 exe "silent! !ghostscript ".a:ps
255 redraw!
256 elseif executable("gswin32")
Bram Moolenaar1056d982006-03-09 22:37:52 +0000257" call Decho("exe silent! !gswin32 \"".a:ps.'"')
Bram Moolenaara5fac542005-10-12 20:58:49 +0000258 exe "silent! !gswin32 \"".a:ps.'"'
259 redraw!
260 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000261" call Dret("s:NFH_ps 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000262 return 0
263 endif
264
Bram Moolenaar1056d982006-03-09 22:37:52 +0000265" call Dret("s:NFH_ps 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000266 return 1
267endfun
268
269" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000270" s:NFH_eps: handles encapsulated PostScript files {{{1
271fun! s:NFH_eps(eps)
272" call Dfunc("s:NFH_eps()")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000273 if executable("gs")
274 exe "silent! !gs ".a:eps
275 redraw!
276 elseif executable("ghostscript")
277 exe "silent! !ghostscript ".a:eps
278 redraw!
279 elseif executable("ghostscript")
280 exe "silent! !ghostscript ".a:eps
281 redraw!
282 elseif executable("gswin32")
283 exe "silent! !gswin32 \"".a:eps.'"'
284 redraw!
285 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000286" call Dret("s:NFH_eps 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000287 return 0
288 endif
Bram Moolenaar1056d982006-03-09 22:37:52 +0000289" call Dret("s:NFH_eps 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000290 return 1
291endfun
292
293" ---------------------------------------------------------------------
Bram Moolenaar1056d982006-03-09 22:37:52 +0000294" s:NFH_fig: handles xfig files {{{1
295fun! s:NFH_fig(fig)
296" call Dfunc("s:NFH_fig()")
297 if executable("xfig")
298 exe "silent! !xfig ".a:fig
299 redraw!
300 else
301" call Dret("s:NFH_fig 0")
302 return 0
303 endif
304
305" call Dret("s:NFH_fig 1")
306 return 1
307endfun
308
309" ---------------------------------------------------------------------
310" s:NFH_obj: handles tgif's obj files {{{1
311fun! s:NFH_obj(obj)
312" call Dfunc("s:NFH_obj()")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000313 if has("unix") && executable("tgif")
314 exe "silent! !tgif ".a:obj
315 redraw!
316 else
Bram Moolenaar1056d982006-03-09 22:37:52 +0000317" call Dret("s:NFH_obj 0")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000318 return 0
319 endif
320
Bram Moolenaar1056d982006-03-09 22:37:52 +0000321" call Dret("s:NFH_obj 1")
Bram Moolenaara5fac542005-10-12 20:58:49 +0000322 return 1
323endfun
324
325let &cpo= s:keepcpo
326" ---------------------------------------------------------------------
327" Modelines: {{{1
328" vim: ts=4 fdm=marker