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/
This one competes with the other text-based ones out there, and I'd almost call it a "HTML viewer" instead of "web browser" due to the limited features it has --- it's basically HTML-only with no CSS support, so far more limited than even Dillo or NetSurf; but works well for viewing documentation and other primarily text-based and "content-focused" sites.
On the other hand, it is nice when the competition brings something completely different to the table. It serves the needs of people who would never have those needs served by consumer oriented browsers.
While this may not be competition in the "winner takes all" sense, eww is does have to consider what those consumer browsers are offering in the context of its domain of application. If it doesn't, it will lose those users and it's reason for being.
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).
- 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.
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.
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.
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.)
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.
> 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.
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.
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).
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.
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.
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.
It works well for documentation and general reading, especially if you press `R` to engage readability mode, that attemps to strip out all but the main body of text.
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!
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?
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.
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. |
+--------------------------+-------------------------------+
I found tide-mode with RJSX to be mostly equivalent to VSCode (It uses the same language server as vscode, so feature-wise, it’s very close).
I had a really weird experience here: I liked VSCode, and almost switched to VSCode for JS and emacs for everything else. On a whim, I found tide-mode and tried it out. I thought “this works pretty well, but it seems slower than VSCode, and more flaky”. Then, I switched back to VSCode for a while and I realized that it had almost all the same issues I had in emacs (I forget what they are, it’s been a while). So, I left VSCode and have been using emacs happily do JS for the last couple years.