Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 1 | " NetrwFileHandlers: contains various extension-based file handlers for |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 2 | " netrw's browsers' x command ("eXecute launcher") |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 3 | " Author: Charles E. Campbell, Jr. |
Bram Moolenaar | c0197e2 | 2004-09-13 20:26:32 +0000 | [diff] [blame] | 4 | " Date: Aug 31, 2004 |
| 5 | " Version: 3a NOT RELEASED |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 6 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 7 | " --------------------------------------------------------------------- |
| 8 | " Prevent Reloading: {{{1 |
| 9 | if exists("g:loaded_netrwfilehandlers") || &cp |
| 10 | finish |
| 11 | endif |
Bram Moolenaar | c0197e2 | 2004-09-13 20:26:32 +0000 | [diff] [blame] | 12 | let g:loaded_netrwfilehandlers= "v3a" |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 13 | |
| 14 | " --------------------------------------------------------------------- |
| 15 | " NetrwFileHandler_html: handles html when the user hits "x" when the {{{1 |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 16 | " cursor is atop a *.html file |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 17 | fun! NetrwFileHandler_html(pagefile) |
| 18 | " call Dfunc("NetrwFileHandler_html(".a:pagefile.")") |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 19 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 20 | let page= substitute(a:pagefile,'^','file://','') |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 21 | |
| 22 | if executable("mozilla") |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 23 | " call Decho("executing !mozilla ".page) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 24 | exe "!mozilla \"".page.'"' |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 25 | elseif executable("netscape") |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 26 | " call Decho("executing !netscape ".page) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 27 | exe "!netscape \"".page.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 28 | else |
| 29 | " call Dret("NetrwFileHandler_html 0") |
| 30 | return 0 |
Bram Moolenaar | cfbc5ee | 2004-07-02 15:38:35 +0000 | [diff] [blame] | 31 | endif |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 32 | |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 33 | " call Dret("NetrwFileHandler_html 1") |
| 34 | return 1 |
| 35 | endfun |
| 36 | |
| 37 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 38 | " NetrwFileHandler_htm: handles html when the user hits "x" when the {{{1 |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 39 | " cursor is atop a *.htm file |
| 40 | fun! 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 Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 47 | exe "!mozilla \"".page.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 48 | elseif executable("netscape") |
| 49 | " call Decho("executing !netscape ".page) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 50 | exe "!netscape \"".page.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 51 | else |
| 52 | " call Dret("NetrwFileHandler_htm 0") |
| 53 | return 0 |
| 54 | endif |
| 55 | |
| 56 | " call Dret("NetrwFileHandler_htm 1") |
| 57 | return 1 |
| 58 | endfun |
| 59 | |
| 60 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 61 | " NetrwFileHandler_jpg: {{{1 |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 62 | fun! 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 Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 68 | " call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'")) |
| 69 | exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:jpgfile.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 70 | else |
| 71 | " call Dret("NetrwFileHandler_jpg 0") |
| 72 | return 0 |
| 73 | endif |
| 74 | |
| 75 | " call Dret("NetrwFileHandler_jpg 1") |
| 76 | return 1 |
| 77 | endfun |
| 78 | |
| 79 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 80 | " NetrwFileHandler_gif: {{{1 |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 81 | fun! 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 Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 87 | exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:giffile.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 88 | else |
| 89 | " call Dret("NetrwFileHandler_gif 0") |
| 90 | return 0 |
| 91 | endif |
| 92 | |
| 93 | " call Dret("NetrwFileHandler_gif 1") |
| 94 | return 1 |
| 95 | endfun |
| 96 | |
| 97 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 98 | " NetrwFileHandler_png: {{{1 |
| 99 | fun! 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 |
| 113 | endfun |
| 114 | |
| 115 | " --------------------------------------------------------------------- |
| 116 | " NetrwFileHandler_pnm: {{{1 |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 117 | fun! 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 Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 123 | exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pnmfile.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 124 | else |
| 125 | " call Dret("NetrwFileHandler_pnm 0") |
| 126 | return 0 |
| 127 | endif |
| 128 | |
| 129 | " call Dret("NetrwFileHandler_pnm 1") |
| 130 | return 1 |
| 131 | endfun |
| 132 | |
| 133 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 134 | " NetrwFileHandler_bmp: visualize bmp files {{{1 |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 135 | fun! 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 Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 141 | exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:bmpfile.'"' |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 142 | else |
| 143 | " call Dret("NetrwFileHandler_bmp 0") |
| 144 | return 0 |
| 145 | endif |
| 146 | |
| 147 | " call Dret("NetrwFileHandler_bmp 1") |
| 148 | return 1 |
Bram Moolenaar | 843ee41 | 2004-06-30 16:16:41 +0000 | [diff] [blame] | 149 | endfun |
| 150 | |
| 151 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 152 | " NetrwFileHandler_pdf: visualize pdf files {{{1 |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 153 | fun! NetrwFileHandler_pdf(pdf) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 154 | " " call Dfunc("NetrwFileHandler_pdf(pdf<".a:pdf.">)") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 155 | if executable("gs") |
| 156 | exe "silent! !gs ".a:pdf |
| 157 | else |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 158 | " " call Dret("NetrwFileHandler_pdf 0") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 159 | return 0 |
| 160 | endif |
| 161 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 162 | " " call Dret("NetrwFileHandler_pdf 1") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 163 | return 1 |
| 164 | endfun |
| 165 | |
| 166 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 167 | " NetrwFileHandler_sxw: visualize sxw files {{{1 |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 168 | fun! NetrwFileHandler_sxw(sxw) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 169 | " " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 170 | if executable("gs") |
| 171 | exe "silent! !gs ".a:sxw |
| 172 | else |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 173 | " " call Dret("NetrwFileHandler_sxw 0") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 174 | return 0 |
| 175 | endif |
| 176 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 177 | " " call Dret("NetrwFileHandler_sxw 1") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 178 | return 1 |
| 179 | endfun |
| 180 | |
| 181 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 182 | " NetrwFileHandler_doc: visualize doc files {{{1 |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 183 | fun! NetrwFileHandler_doc(doc) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 184 | " " call Dfunc("NetrwFileHandler_doc(doc<".a:doc.">)") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 185 | |
| 186 | if executable("oowriter") |
| 187 | exe "silent! !oowriter ".a:doc |
| 188 | redraw! |
| 189 | else |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 190 | " " call Dret("NetrwFileHandler_doc 0") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 191 | return 0 |
| 192 | endif |
| 193 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 194 | " " call Dret("NetrwFileHandler_doc 1") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 195 | return 1 |
| 196 | endfun |
| 197 | |
| 198 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 199 | " NetrwFileHandler_sxw: visualize sxw files {{{1 |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 200 | fun! NetrwFileHandler_sxw(sxw) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 201 | " " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 202 | |
| 203 | if executable("oowriter") |
| 204 | exe "silent! !oowriter ".a:sxw |
| 205 | redraw! |
| 206 | else |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 207 | " " call Dret("NetrwFileHandler_sxw 0") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 208 | return 0 |
| 209 | endif |
| 210 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 211 | " " call Dret("NetrwFileHandler_sxw 1") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 212 | return 1 |
| 213 | endfun |
| 214 | |
| 215 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 216 | " NetrwFileHandler_xls: visualize xls files {{{1 |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 217 | fun! NetrwFileHandler_xls(xls) |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 218 | " " call Dfunc("NetrwFileHandler_xls(xls<".a:xls.">)") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 219 | |
| 220 | if executable("oocalc") |
| 221 | exe "silent! !oocalc ".a:xls |
| 222 | redraw! |
| 223 | else |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 224 | " " call Dret("NetrwFileHandler_xls 0") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 225 | return 0 |
| 226 | endif |
| 227 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 228 | " " call Dret("NetrwFileHandler_xls 1") |
Bram Moolenaar | 269ec65 | 2004-07-29 08:43:53 +0000 | [diff] [blame] | 229 | return 1 |
| 230 | endfun |
| 231 | |
| 232 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 233 | " NetrwFileHandler_ps: handles PostScript files {{{1 |
| 234 | fun! 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 Moolenaar | c0197e2 | 2004-09-13 20:26:32 +0000 | [diff] [blame] | 248 | else |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 249 | " call Dret("NetrwFileHandler_ps 0") |
| 250 | return 0 |
| 251 | endif |
| 252 | |
| 253 | " call Dret("NetrwFileHandler_ps 1") |
| 254 | return 1 |
| 255 | endfun |
| 256 | |
| 257 | " --------------------------------------------------------------------- |
Bram Moolenaar | c0197e2 | 2004-09-13 20:26:32 +0000 | [diff] [blame] | 258 | " NetrwFileHandler_eps: handles encapsulated PostScript files {{{1 |
| 259 | fun! 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 |
| 277 | endfun |
| 278 | |
| 279 | " --------------------------------------------------------------------- |
| 280 | " NetrwFileHandler_fig: handles xfig files {{{1 |
| 281 | fun! 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 |
| 293 | endfun |
| 294 | |
| 295 | " --------------------------------------------------------------------- |
| 296 | " NetrwFileHandler_obj: handles tgif's obj files {{{1 |
| 297 | fun! 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 |
| 309 | endfun |
| 310 | |
| 311 | |
| 312 | " --------------------------------------------------------------------- |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 313 | " vim: ts=4 fdm=marker |