
EWW: Emacs Web Wowser - tosh
https://www.gnu.org/software/emacs/manual/html_mono/eww.html
======
NelsonMinar
The article notes that this browser was originally written by Lars
Ingebrigtsen, probably best known for Gnus. Lars is still hacking away on
emacs regularly, you can see his blog posts about his work here:
[https://lars.ingebrigtsen.no/category/emacs/](https://lars.ingebrigtsen.no/category/emacs/)

------
VWWHFSfQ
Good to see some competition in the browser wars. Badly needed.

~~~
jsf01
A highly specialized browser for emacs from 2013 is hardly competition against
consumer browsers. I don’t think they’re directly comparable either.

~~~
iamnotarobotman
I guess eww is for those who are infatuated by their editors, rather than
getting things done with it, when the rest of the world just uses Chrome.

~~~
d0mine
Here's a practical use-case eww: reading technical articles (e.g., grom google
search) without a context switch to a different application: a single key
chord to start a typing a query (counsel-web-suggest), then choose the desired
link , then read it in eww — all without leaving emacs (while using the same
commands that work throughout emacs).

------
codygman
Related, xwidget browser in emacs with keyboard navigation, etc:

[https://github.com/BlueFlo0d/xwwp/tree/xwwp-ace-
dev](https://github.com/BlueFlo0d/xwwp/tree/xwwp-ace-dev)

~~~
ginko
I wanted to try that a while ago but didn't get it to work.

------
pmoriarty
I've been using emacs-w3m for a long time, but I haven't used eww. If someone
who's used both could compare the two, I'd be grateful.

~~~
defanor
\- Not sure if it's still the case in most recent versions, but apparently w3m
used to be snappier (I suspect there is some blocking still happening in eww,
or maybe it's just that it loads emacs/elisp more).

\- w3m just ignores colours, while eww applies the ones it recognizes, though
in newer versions it can be disabled (it seemed like a major misfeature to me,
but YMMV, and it's not that relevant anymore).

\- Being written in elisp, eww is more hackable and generally fits a bit
better into emacs.

Both render reasonable HTML subsets fine, can load images and handle forms.

~~~
TeMPOraL
> _it seemed like a major misfeature to me_

Webpage-provided colors may not play well with the color scheme you're using
(AFAIR, eww doesn't "reset" to black-on-white, but keeps your current color
theme for things not explicitly styled), and may cause problems on the
terminal (e.g. with low-contrast text getting rounded off to the color of its
background). So the ability to disable styling is useful.

~~~
defanor
Indeed, that's what I meant: the colourisation seemed like a misfeature to me,
while the newly added ability to disable colours resolved it. Probably didn't
state it quite clearly above.

------
nickdrozd
EWW is a little too austere for general browsing IMO, but it's more than
useful enough to make up for it in a few situations.

1\. Copying large sections of text. Say I'm reading a tutorial or something
with code blocks, and I want to run them. If I'm in a "real" browser, I have
to click and drag to copy the text to my editor, and clicking and dragging
sucks. Instead, I can open the page in EWW, then set the mark and search
(C-SPC and C-s) for a more pleasant copying experience. (I realize this sounds
petty, but it makes for a little less hassle in my life.)

2\. One-off scraping tasks. This is a powerful technique, and it's my go-to
example in a "but can your editor do this" discussion. For details, see
[https://nickdrozd.github.io/2018/10/17/web-
scraping.html](https://nickdrozd.github.io/2018/10/17/web-scraping.html)

~~~
liability
I use eww for reading long articles. It works well with read-aloud.el which I
also use with nov.el when reading epubs.

(Incidentally eww and nov.el both use shr.el for rendering HTML.)

------
johanvts
I use it every now and then, but I think its missing a few things to be really
great.

1\. Its slow. I don't know if it just "feels" slow due to lack of visuals or
if it is really slow. I suspect it loads a lot of things that never gets
rendered anyway.

2\. It needs some smarter focusing. Each page normally has a few screens of
garbled menus etc. to scroll past before getting to the content. Maybe
filtering out some html tags would be enough.

~~~
josteink
> It needs some smarter focusing. Each page normally has a few screens of
> garbled menus etc. to scroll past before getting to the content. Maybe
> filtering out some html tags would be enough.

There’s (of course) an Elisp command for this. I cant’t remember it’s name now
though.

~~~
Symbiote
It is literally the fourth thing mentioned in the linked documentation.

~~~
johanvts
Thank you! (Press 'R')

------
mark_l_watson
Ha. I was just playing around with EWW a few weeks ago.

In the old times, the 1980s, I would use Emacs to read email. So convenient
and fast. I should set that up again for the fun of it.

I am using Emacs less now because I use VSCode more often now just because it
is easier. The thing that keeps me using Emacs is how well it works with mosh
and tmux for doing development in fast remote servers. This is also getting
easier with VSCode.

~~~
throwaway_pdp09
I am using emacs with OmniSharp which... sort of works. It gives context-
sensitive help when it's in the mood. It allows me to stay in emacs a little
more )I don't like visual studio).

Point is, maybe have a look at OmniSharp.

~~~
na85
Are you on Linux? I found that on mac, omnisharp "just works" whereas on Linux
it would only offer completion if the file has previously been visited that
session.

I always meant to file a bug but never did.

~~~
throwaway_pdp09
Nope, windows. And if you update a file it sometimes doesn't update the info
that changed in the file (even if the file is in a buffer), which is
frustrating.

------
hpoe
So I've been learning Emacs for a bit now and was just thinking about trying
to figure out how to web browsing in emacs as a browser is the only other
program I need right now. Gotta give this a try see how it works.

~~~
ews
Make sure you also try Xwidget browsing, which has become my de factor browser
while at work [https://emacsnotes.wordpress.com/2018/08/18/why-a-minimal-
br...](https://emacsnotes.wordpress.com/2018/08/18/why-a-minimal-browser-when-
there-is-a-full-featured-one-introducingxwidget-webkit-a-state-of-the-art-
browser-for-your-modern-emacs/)

~~~
psibi
Is there any way to get Xwidget based browser apart from trying to compiling
Emacs (for a Linux environment) ?

Also, if it's only available via the compile yourself route - how long does
the compilation take in a 4-core Intel based system ?

~~~
auganov
Less than 30 minutes. Pretty simple to follow too.

------
mullikine
i really enjoy using eww browser for at least 30% of my browsing. it's very
hackable -- you can easily hook into its code to make handlers for different
urls, load differently, render differently per website, etc.. i usually open
up eww when i want to properly digest a website too, or create a bookmark or
link to a part of a website. eww is great!

~~~
mrspeaker
Recently I've been prioritizing sites that don't use require JavaScript, and
therefore have been using Eww a lot more (I'll still often escape out to
Firefox).

But I love that I can write lisp macros to scrape out data - it's like a
cooler GreaseMonkey... though I haven't found a good jQuery-like way to get at
elements... any ideas?

~~~
mullikine
firstly, it is possible to get the javascript-generated dom in eww:

[https://www.reddit.com/r/emacs/comments/heaoiu/weekly_tipstr...](https://www.reddit.com/r/emacs/comments/heaoiu/weekly_tipstricketc_thread/%20chrome%20dom%20dump)

as for looking into elements -- i would probably access the dom and put it
through xpath or something. sounds like a challenge

------
aasasd
I keep wondering if there's something for Emacs to open warc, maff, htz or
mhtml. For the purposes of archiving web pages.

------
mlang23
EWW is a godsent, very cool. Nice replacement for emacs-w3, which was very
slow to render.

------
abdullahkhalids
post a comment on HN using Eww. :-)

~~~
abdullahkhalids
I tried to post a comment here using Eww. But only the last line of the
comment was posted, as above. (this one is from Firefox)

------
rukuu001
I can’t think of a more perfect name

------
noufalibrahim
This is more like a novelty feature to showcase the "power" of elisp. I
haven't tried it but it's not really going to compare with normal browsers
like chrome and even FF. There might be some use cases for things like viewing
well structured HTML documentation or browsing a few sites but apart from
that, I'm not sure what the value is.

I'm a long time Emacs users and it's quite frustrating to see how hard it is
to use ecosystems of modern languages/frameworks like vue etc. I'm not that
familiar with the ecosystem so it might my fault but this is my impression. I
actually shifted to vscode to do this. If energy like this were spent there, I
think it'd help adoption and usage much more.

~~~
konjin

        Posting from Emacs
        ==================
    
        It works well enough to post in hacker news. You just need to
        enter all the text in another buffer first, add a line of blank
        spaces at the top, and then kill and yank into the text area. As
        far as I can tell you can copy the way that org-mode deals with
        src-blocks to automate it, but this works well enough for me for
        now.
    
        It even works in emacspeak, which is kind of amazing. I have a
        blind accessible webbrowser inside an editor without even trying.
    
        (define identity
          (lambda (x)
            x))
    
        Even the scheme and paredit-modes work. Essentially it lets you
        author plain text emails as HN comments.
    
        +--------------------------+-------------------------------+
        |Pros                      |Cons                           |
        +--------------------------+-------------------------------+
        |You can make things look  |You can waste a lot of time.   |
        |amazing.                  |                               |
        +--------------------------+-------------------------------+
        |You can use whatever text |You have to choose what format |
        |mode you think is best.   |you like best: org vs md vs    |
        |                          |rest.                          |
        +--------------------------+-------------------------------+

~~~
josteink
It’s also good for documentation and stuff like Stack overflow.

You don’t need JS for all web-content.

