help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: html browser preview help


From: ken
Subject: Re: html browser preview help
Date: Thu, 03 Sep 2009 09:48:53 -0400
User-agent: Thunderbird 2.0.0.0 (X11/20070326)

I've been doing this for a long time in html-helper-mode so, yes, it can
be done.  I created my own function though... actually two of them: one
to open the current (html) buffer in a new tab (for displaying the html
file the first time) and another function to open that same current
buffer in the same tab (for displaying the html file subsequent times).

You don't say which browser you want to do this with and, of course, the
emacs function is going to need to know this (unless you use an
environmental variable to designate it, in which case you'll need to
determine what that is).  In addition, you'll need to know which version
of that browser (whichever it is) you have.  I've been using firefox for
quite a time and often, when I upgrade it, the command for loading a url
into an existing tab or into a new tab changes; of course this means I
have to alter my emacs/html-helper-mode function.

In short, the first thing to do is to find out what the commands work
from your shell to open a new- or a current-tab (or window, if that's
what you prefer) in your browser and give it a url.  Then, after you've
successfully done these from the cli, then plug these into an emacs
function.  The cli input which works for me to open a file in a new tab is:

/usr/bin/firefox -new-tab [url]

Other commands work also.  Much depends on what your firefox defaults
are.  One configuration I have is to "open new urls in a new tab"; this
(for some silly reason) prevents me from opening a url in the current
firefox tab.  It didn't always do this; earlier Firefox versions had an
option to open a url in a current tab.  The lesson from this is that
what cli command you use is going to depend upon, not just which browser
you use, but also which *version* of that browser as well as what
preferences you've set for that browser/version.

You also didn't say which OS you're using and that can of course play a
role in which command you'll plug into your emacs function.

Anyway, once you figure out what command(s) do(es) what you want, plug
it into:

;;Works for opening a file in a new firefox tab
(defun browse-file-url-firefox-new-tab (url &optional new-window)
  "Open the current file, the file associated with the current buffer,
 in a new Firefox tab."
  (interactive "i")
  (unless
      (string= ""
               (shell-command-to-string
                (concat "firefox -a firefox -remote 'openURL(file://" 
buffer-file-name
", new-tab)'")))
    (message "Opening in Firefox new tab: " buffer-file-name)))
(setq browse-url-browser-function 'browse-file-url-firefox-new-tab)

Just change the "(concat ..." line to reflect the cli command which
works for you.

Since firefox (nonsensically) did away with a command-line option for
opening a url in a current tab, I now have to change focus to firefox
and reload the tab to show any editing I've done (in emacs) since
previously displaying it in firefox.

(If anyone here has the ear of a firefox developer, tell them to gives
us back the "-current-tab" option.)

hth,
ken


-- 
War is a failure of the imagination.
        --William Blake



On 09/03/2009 06:47 AM rpd wrote:
> Hi
> Just encountered this problem previewing html editing in emacs.
> When I edit html (I have html-helper-mode file loaded) I want to preview it
> in my browser but cannot yet do so. If I use the 'html' menu item (load this
> buffer in browser) or C-c C-z v I just get browser opening at my homepage &
> not showing the html edit preview I want.
> 
> Does anyone know why this is & can help me get my html emacs edit to preview
> in my browser?
> 
> Again I am most grateful for helpful replies (Emacs is good isn't it?! -I
> just wish I could do what I want with it-but I will do it! LOL), many thanks




reply via email to

[Prev in Thread] Current Thread [Next in Thread]