blob: 9c579e8809acb9daef744f4db912cb7af97ffd37 [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 Moolenaar87e25fd2005-07-27 21:13:01 +00003" Author: Charles E. Campbell, Jr.
4" Date: Aug 31, 2004
5" 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
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000010 finish
Bram Moolenaard4755bb2004-09-02 19:12:26 +000011endif
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)
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000018 let page = substitute(a:pagefile, '^', 'file://', '')
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000019
20 if executable("mozilla")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000021 exe "!mozilla \"" . page . '"'
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000022 elseif executable("netscape")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000023 exe "!netscape \"" . page . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000024 else
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000025 return 0
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +000026 endif
Bram Moolenaar843ee412004-06-30 16:16:41 +000027
Bram Moolenaar8299df92004-07-10 09:47:34 +000028 return 1
29endfun
30
31" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000032" NetrwFileHandler_htm: handles html when the user hits "x" when the {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000033" cursor is atop a *.htm file
34fun! NetrwFileHandler_htm(pagefile)
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000035 let page = substitute(a:pagefile, '^', 'file://', '')
Bram Moolenaar8299df92004-07-10 09:47:34 +000036
37 if executable("mozilla")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000038 exe "!mozilla \"" . page . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000039 elseif executable("netscape")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000040 exe "!netscape \"" . page . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000041 else
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000042 return 0
Bram Moolenaar8299df92004-07-10 09:47:34 +000043 endif
44
Bram Moolenaar8299df92004-07-10 09:47:34 +000045 return 1
46endfun
47
48" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000049" NetrwFileHandler_jpg: {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000050fun! NetrwFileHandler_jpg(jpgfile)
Bram Moolenaar8299df92004-07-10 09:47:34 +000051 if executable("gimp")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000052 exe "silent! !gimp -s " . a:jpgfile
Bram Moolenaar8299df92004-07-10 09:47:34 +000053 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000054 exe "!" . expand("$SystemRoot") . "/SYSTEM32/MSPAINT \"" . a:jpgfile . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000055 else
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000056 return 0
Bram Moolenaar8299df92004-07-10 09:47:34 +000057 endif
58
Bram Moolenaar8299df92004-07-10 09:47:34 +000059 return 1
60endfun
61
62" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000063" NetrwFileHandler_gif: {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000064fun! NetrwFileHandler_gif(giffile)
Bram Moolenaar8299df92004-07-10 09:47:34 +000065 if executable("gimp")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000066 exe "silent! !gimp -s " . a:giffile
67 elseif executable(expand("$SystemRoot") . "/SYSTEM32/MSPAINT.EXE")
68 exe "silent! !" . expand("$SystemRoot") . "/SYSTEM32/MSPAINT \"" . a:giffile . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000069 else
Bram Moolenaar8299df92004-07-10 09:47:34 +000070 return 0
71 endif
72
Bram Moolenaar8299df92004-07-10 09:47:34 +000073 return 1
74endfun
75
76" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +000077" NetrwFileHandler_png: {{{1
78fun! NetrwFileHandler_png(pngfile)
Bram Moolenaard4755bb2004-09-02 19:12:26 +000079 if executable("gimp")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000080 exe "silent! !gimp -s " . a:pngfile
81 elseif executable(expand("$SystemRoot") . "/SYSTEM32/MSPAINT.EXE")
82 exe "silent! !" . expand("$SystemRoot") . "/SYSTEM32/MSPAINT \"" . a:pngfile . '"'
Bram Moolenaard4755bb2004-09-02 19:12:26 +000083 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +000084 return 0
85 endif
86
Bram Moolenaard4755bb2004-09-02 19:12:26 +000087 return 1
88endfun
89
90" ---------------------------------------------------------------------
91" NetrwFileHandler_pnm: {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +000092fun! NetrwFileHandler_pnm(pnmfile)
Bram Moolenaar8299df92004-07-10 09:47:34 +000093 if executable("gimp")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +000094 exe "silent! !gimp -s " . a:pnmfile
95 elseif executable(expand("$SystemRoot") . "/SYSTEM32/MSPAINT.EXE")
96 exe "silent! !" . expand("$SystemRoot") . "/SYSTEM32/MSPAINT \"" . a:pnmfile . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +000097 else
Bram Moolenaar8299df92004-07-10 09:47:34 +000098 return 0
99 endif
100
Bram Moolenaar8299df92004-07-10 09:47:34 +0000101 return 1
102endfun
103
104" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000105" NetrwFileHandler_bmp: visualize bmp files {{{1
Bram Moolenaar8299df92004-07-10 09:47:34 +0000106fun! NetrwFileHandler_bmp(bmpfile)
Bram Moolenaar8299df92004-07-10 09:47:34 +0000107 if executable("gimp")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000108 exe "silent! !gimp -s " . a:bmpfile
Bram Moolenaar8299df92004-07-10 09:47:34 +0000109 elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000110 exe "silent! !" . expand("$SystemRoot") . "/SYSTEM32/MSPAINT \"" . a:bmpfile . '"'
Bram Moolenaar8299df92004-07-10 09:47:34 +0000111 else
Bram Moolenaar8299df92004-07-10 09:47:34 +0000112 return 0
113 endif
114
Bram Moolenaar8299df92004-07-10 09:47:34 +0000115 return 1
Bram Moolenaar843ee412004-06-30 16:16:41 +0000116endfun
117
118" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000119" NetrwFileHandler_pdf: visualize pdf files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000120fun! NetrwFileHandler_pdf(pdf)
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000121 if executable("acroread")
122 exe 'silent! !acroread "' . a:pdf . '"'
123 elseif executable("gs")
124 exe 'silent! !gs "' . a:pdf . '"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000125 else
Bram Moolenaar269ec652004-07-29 08:43:53 +0000126 return 0
127 endif
128
Bram Moolenaar269ec652004-07-29 08:43:53 +0000129 return 1
130endfun
131
132" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000133" NetrwFileHandler_sxw: visualize sxw files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000134fun! NetrwFileHandler_sxw(sxw)
Bram Moolenaar269ec652004-07-29 08:43:53 +0000135 if executable("gs")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000136 exe 'silent! !gs "' . a:sxw . '"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000137 else
Bram Moolenaar269ec652004-07-29 08:43:53 +0000138 return 0
139 endif
140
Bram Moolenaar269ec652004-07-29 08:43:53 +0000141 return 1
142endfun
143
144" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000145" NetrwFileHandler_doc: visualize doc files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000146fun! NetrwFileHandler_doc(doc)
Bram Moolenaar269ec652004-07-29 08:43:53 +0000147 if executable("oowriter")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000148 exe 'silent! !oowriter "' . a:doc . '"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000149 redraw!
150 else
Bram Moolenaar269ec652004-07-29 08:43:53 +0000151 return 0
152 endif
153
Bram Moolenaar269ec652004-07-29 08:43:53 +0000154 return 1
155endfun
156
157" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000158" NetrwFileHandler_sxw: visualize sxw files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000159fun! NetrwFileHandler_sxw(sxw)
Bram Moolenaar269ec652004-07-29 08:43:53 +0000160 if executable("oowriter")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000161 exe 'silent! !oowriter "' . a:sxw . '"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000162 redraw!
163 else
Bram Moolenaar269ec652004-07-29 08:43:53 +0000164 return 0
165 endif
166
Bram Moolenaar269ec652004-07-29 08:43:53 +0000167 return 1
168endfun
169
170" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000171" NetrwFileHandler_xls: visualize xls files {{{1
Bram Moolenaar269ec652004-07-29 08:43:53 +0000172fun! NetrwFileHandler_xls(xls)
Bram Moolenaar269ec652004-07-29 08:43:53 +0000173 if executable("oocalc")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000174 exe 'silent! !oocalc "' . a:xls . '"'
Bram Moolenaar269ec652004-07-29 08:43:53 +0000175 redraw!
176 else
Bram Moolenaar269ec652004-07-29 08:43:53 +0000177 return 0
178 endif
179
Bram Moolenaar269ec652004-07-29 08:43:53 +0000180 return 1
181endfun
182
183" ---------------------------------------------------------------------
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000184" NetrwFileHandler_ps: handles PostScript files {{{1
185fun! NetrwFileHandler_ps(ps)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000186 if executable("gs")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000187 exe "silent! !gs " . a:ps
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000188 redraw!
189 elseif executable("ghostscript")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000190 exe "silent! !ghostscript " . a:ps
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000191 redraw!
192 elseif executable("ghostscript")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000193 exe "silent! !ghostscript " . a:ps
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000194 redraw!
195 elseif executable("gswin32")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000196 exe "silent! !gswin32 \"" . a:ps . '"'
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000197 redraw!
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000198 else
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000199 return 0
200 endif
201
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000202 return 1
203endfun
204
205" ---------------------------------------------------------------------
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000206" NetrwFileHandler_eps: handles encapsulated PostScript files {{{1
207fun! NetrwFileHandler_eps(eps)
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000208 if executable("gs")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000209 exe "silent! !gs " . a:eps
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000210 redraw!
211 elseif executable("ghostscript")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000212 exe "silent! !ghostscript " . a:eps
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000213 redraw!
214 elseif executable("ghostscript")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000215 exe "silent! !ghostscript " . a:eps
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000216 redraw!
217 elseif executable("gswin32")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000218 exe "silent! !gswin32 \"" . a:eps . '"'
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000219 redraw!
220 else
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000221 return 0
222 endif
223endfun
224
225" ---------------------------------------------------------------------
226" NetrwFileHandler_fig: handles xfig files {{{1
227fun! NetrwFileHandler_fig(fig)
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000228 if executable("xfig")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000229 exe "silent! !xfig " . a:fig
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000230 redraw!
231 else
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000232 return 0
233 endif
234
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000235 return 1
236endfun
237
238" ---------------------------------------------------------------------
239" NetrwFileHandler_obj: handles tgif's obj files {{{1
240fun! NetrwFileHandler_obj(obj)
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000241 if has("unix") && executable("tgif")
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000242 exe "silent! !tgif " . a:obj
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000243 redraw!
244 else
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000245 return 0
246 endif
247
Bram Moolenaarc0197e22004-09-13 20:26:32 +0000248 return 1
249endfun
250
251
252" ---------------------------------------------------------------------
Bram Moolenaar87e25fd2005-07-27 21:13:01 +0000253" vim: fdm=marker