2010-01-10 9 views

Respuesta

19

browse-url-of-file es una función Lisp compilada interactivamente en `browse-url.el '.

se ve obligada a <menu-bar> <HTML> <Load this Buffer in Browser>, C-C-C z v.

(browse-url-of-file &optional file)

Realizar una navegador Web para mostrar el archivo.
Muestra el archivo del búfer actual si el archivo es nulo o si se llama de forma interactiva. Convierta el nombre del archivo en una URL con la función browse-url-file-url. Pase la URL a un navegador usando la función browse-url y luego ejecute browse-url-of-file-hook.

+2

'browse-url-of-file no está vinculado en v23.4.1 – Cristian

+4

En sgml-mode está vinculado a Cc Cv por defecto – PuercoPop

+0

No entiendo cómo (a) esta es una respuesta (b) es la respuesta aceptada . ¿No tiene nada que ver con GVim o Emacs, pero aparentemente requiere la instalación de Lisp?!? – Stewart

2

¿Quiere decir que desea abrir el archivo que se está editando actualmente en un navegador web?

En Vim, utilice algo como :!firefox %.

Editar: Se podría, de hecho, utilizar nmap <silent> <C-M-X> :!firefox %<CR> para causar Vim actuar mucho como Notepad ++ (aunque esta correlación no le importa si se pulsa mayúsculas o no).

Tenga en cuenta que no todos los navegadores mostrarán el contenido del archivo cuando se les dé el nombre de archivo en la línea de comando; p.ej. Google Chrome abrirá un diálogo "guardar como" en su lugar, como si estuviera descargando el archivo en cuestión. Busque los documentos de su navegador si tiene dudas. Sin embargo, Firefox 'solo funcionará'.

+2

Si se refiere al nombre del archivo debajo del cursor, use en lugar de%. –

+0

@Laurence: ¡Correcto! Gracias por señalar esto. :-) –

+0

@janoChen: Bueno, definitivamente debería funcionar si tienes el ejecutable 'firefox' en tu camino. Esto no sería necesariamente el caso si estás en Windows; en ese caso, reemplace 'firefox' con algo como' C:/ruta/a/firefox.exe'. En general, necesitarás descubrir qué comando usar para abrir un archivo con tu navegador ** en la línea de comando ** (eso es 'nombre-del-archivo-firefox' en mi caja) y usar eso en lugar de 'firefox', con% (o , siguiendo la sugerencia de Laurence) en lugar del nombre del archivo. Avísame si esto no ayuda. –

3

en Emacs no creo que esto está integrada, Puedo estar equivocado, pero si no es aquí una función para hacerlo:

(defun open-in-browser() 
    (interactive) 
    (let ((filename (buffer-file-name))) 
    (browse-url (concat "file://" filename)))) 
+1

esto está definitivamente integrado, no es necesario que se encargue de su propio –

+3

Sí, 'browse-url-of-file 'en la respuesta de Minaev. – justinhj

+1

Por alguna razón, para mí esto abre el contenido del búfer en el editor predeterminado _html editor_ no predeterminado. Estoy usando 24.5 en OSX Capitan. ¿Alguna idea de por qué esto podría estar ocurriendo? Comprobé que el programa 'open' funciona bien desde la terminal. –

3

En gVim:

:!start cmd /c "C:\Users\pierre\AppData\Local\Google\Chrome\Application\chrome.exe" file:///"%:p""

Necesita el archivo: // URI para indicar que es del sistema de archivos, esto funcionará con todos los navegadores. %:p produce la ruta completa del archivo para el archivo actual. Las citas son necesarias.

Simplemente asocie eso a lo que elija. Es posible que deba hacer set shell=cmd.exe si ha configurado su shell para bash u otra cosa.

En emacs (justinhj citando):

(defun open-in-browser() 
    (interactive) 
    (let ((filename (buffer-file-name))) 
    (browse-url (concat "file://" filename)))) 

+2

El comando Vim es solo para Windows. – glts

2

Dependiendo de lo que quiere hacer con esto, usted podría considerar Emacs + MozRepl, que básicamente le permite enviar comandos JavaScript para Firefox a través de telnet. Lamentablemente, parece que no puedo escribir el elisp para que esto funcione, pero un truco relacionado para volver a cargar páginas web desde dentro de emacs se muestra en Sard en What's in your .emacs?. Más información sobre la integración de emacs y mozrepl desde el original source y también el here para obtener un truco interesante que actualiza la página en el navegador mientras escribe en el búfer de emacs - es muy agradable obtener comentarios instantáneos cuando se trabaja con html.

Creo que lo mismo funcionaría con vim, pero solo lo he usado en emacs.

3

Por alguna razón, mi EmacsW32 en WinXP install siguió enviando directivas de exploración-url para bombardear con "abrir el archivo: // solo, y que no funcionó tan bien * cortándolo en las rodillas, y. justin's original la modificación de la siguiente manera trabajó para mí:

(defun open-in-browser() 
"open buffer in browser, unless it is not a file. Then fail silently (ouch)." 
    (interactive) 
    (if (buffer-file-name) 
     (let ((filename (buffer-file-name))) 
     (shell-command (concat "start firefox.exe \"file://" filename "\""))))) 

necesita un poco de mejora, así como el reemplazo de su navegador favorito d ** n te, la codificación dura

* Creo que el problema era el sistema... -type check en browse-url-default-windows-browser, pero no es positivo.

1

Lo hago una función Elisp usando el comando de shell xdg-open.
Luego defino una clave en html-mode para llamar a la función.
Tienes que sentirte cómodo añadiendo cosas a tu archivo .emacs.

(defun open-html() 
    "Get the HTML file path & open it" 
    (interactive) 
    (let (html-file-path) 
    (setq html-file-path (buffer-file-name)) 
    (shell-command (format "xdg-open '%s'" html-file-path))) 
) 
Cuestiones relacionadas