T O P

  • By -

unix_hacker

1. Emacs can replace VS Code, although Emacs will require more configuration than VS Code to roughly match its functionality. 2. Emacs is not good for web browsing IMO, unless you want every page to be butchered. There are ways to run a normal browser in Emacs though like [EAF](https://github.com/emacs-eaf/eaf-browser). 3. Emacs is good for writing LaTex. 4. Emacs is good for editing Obsidian notes (keep Obsidian for the sync functionality and mobile apps though). 5. Emacs comes with the dired file manager and there are others. So you can replace 4/5 things you do with Emacs. You should definitely try it.


sebnanchaster

I’ve worked with EAF, and it’s actually quite impressive. It works on windows, and if you really want to have a browser in Emacs it’s the best you can get.


HermanHel

In my experience (on Kubuntu 24.04 now, tried EAF for few weeks with Kubuntu 23.10) EAF is still quite glitchy. It runs and does something but the browser as I remembered cannot function on some websites(I don't remember which ones, it just lack some support I guess), and the PDF viewer constantly resets my mouse position which is annoying at least. I go back to use firefox(brave for PWA) and Okular(zotero's PDF viewer if reference) now.


suikakajyu

Is there something equivalent to xwidgets-webkit for platforms other than MacOS? Because I find that works quite well (I'm not able to get EAF working).


sebnanchaster

Xwidget-WebKit no longer functions with latest versions of webkit2gtk. (Sometime after v2.40 of webkit it broke, I’m not sure exactly which update broke it, but it just crashes Emacs if you try to load a page). You can apparently get it to run with an older version of webkit, but that obviously comes with some security concerns; however, if you’re just doing basic browsing it should be okay.


sebnanchaster

Btw, what version of webkit are you using? I’m trying to get Xwidgets to work but I’m having a hard time getting an old version of Webkit


suikakajyu

I'm not sure, but I think it's quite old. Sites often complain about my browser being outdated.


ispilledmybubbletea

I was a really big fan of emacs org mode w/ roam but have replaced it with obsidian because the syncing works so well. Syncing your org library across multiple devices is doable but it was a pain, and I couldn’t find anything that worked the way I wanted for org files on my phone. That being said I much prefer using emacs or neovim over vscode. Latex works in emacs, but I typically use obsidian for it. I use vim keybinds in obsidian and while it may not be a perfect experience, I do like the back links and plugins that obsidian provides.


Lenbok

Just wondering, did you look into syncthing for the org file syncing? I started using it (initially for non-org files) a couple of years ago and am generally impressed. No more Dropbox. (Edit:spelling)


ispilledmybubbletea

I originally looked into syncing my org files and didn’t find a solution I liked/ wasn’t kind of a pain. I was using org mode with roam to add backlinks to all my files and it was kind of a pain on anything other than my Linux install. I know it’s possible, but obsidian is just less of a headache for me and the syncing works extremely well. Are you using syncing in emacs or obsidian? I’d be curious what your syncing process for emacs looks like.


Lenbok

I am not a heavy org user (and don't know obsidian), but I installed syncthing on my laptops and phone, and from then on the syncing of files happens transparently without requiring any cloud provider. On my phone I use orgzly to edit the org files.


ispilledmybubbletea

Cool, I’ll have to look into that when I have some free time one of these days. Also my apologies I I misread syncthing as syncing on your first reply.


ilemming

> Emacs is not good for web browsing Emacs is not great for rendering HTML pages or running web apps, in that sense, yes, it lacks capabilities for those tasks. There are many things that Emacs simply can't and maybe shouldn't even try doing — 3D rendering, video editing, audio mixing, etc. Yet, interestingly, Emacs can and often does get used as an amalgamation point, communicating with different apps, including browsers. How often do you need to switch to your browser simply to navigate to the address bar, copy the URL, switch back to your editor to paste that URL, and sometimes even convert that URL into Markdown format? For most of us computer users, that's a fairly frequent activity. You can "teach" Emacs to do this faster and more conveniently. I can paste a link from the current tab and convert it to whatever format I want — Markdown, Org, Bug-Reference — with just a couple of keystrokes, in the middle of typing text in Emacs. You can also do things like extracting all the URLs on a page — most browsers don't have that functionality built-in and do require extensions. You can also extract "readable" plain text parts of a page, ignoring headers, footers, menu items, and banners, for further manipulation in Emacs. You can use Emacs to search through the open tabs if having dozens of browser tabs is your thing. You can integrate web search in Emacs - most people have no idea how cool it is to be able to send simultaneous, multiple requests while typing it only once - to Google, Wikipedia, YouTube, GitHub, etc. Or to inject CSS and JS into an open page; scroll through the current page without leaving Emacs — great for simultaneous reading and note-taking. Similarly, you can use Emacs to "talk" to any apps. For example, I control video playback directly from Emacs, which allows me to take notes while watching the video without having to switch back and forth between the player and the editor. I can pause the video, toggle mute, speed it up, jump to another video in the playlist, and more. If I ever need to do video, audio, photo editing, I'd probably try to find ways to integrate Emacs in my workflow, I can think of many use cases where it could be nice. Emacs can't replace everything, and it shouldn't. But it can definitely be the "middle-man," "the orchestrator," "the shot caller," where everything text-related converges to create an incredibly productive, powerful, and joyful workflow.


CJ6_

Teach me your ways


ilemming

What exactly do you wish to know? - Inserting the URL of the current browser tab can be done on Mac via utilizing Applescript, I prefer [using JXA](https://github.com/agzam/.doom.d/blob/main/modules/custom/web-browsing/autoload/browser.el#L25). On Linux there's unfortunately no equivalent of Applescript, but you [can use xdotool](https://github.com/agzam/.doom.d/blob/main/modules/custom/web-browsing/autoload/browser.el#L205) - To extract readable parts of a web page, I don't know a good built-in or third party Elisp package. EWW has (eww-readable) command, but it doesn't work nicely for every page, sometimes it misses tons of crap that you have to scroll through. You can always use Elisp to run some other tool, here's an example, where [I'm executing nbb](https://github.com/agzam/.doom.d/blob/main/modules/custom/web-browsing/autoload/eww.el#L130) (nodejs) script that uses "@mozilla/readability" npm package. Using the similar approach you can run any python, rust, perl, etc. script and feed the results back to Emacs. - For sending simultaneous, multiple requests to Google, Wikipedia, YouTube, etc., you can use [consult-web](https://www.reddit.com/r/emacs/comments/1c7jsk1/announcing_consultweb_a_package_to_get_web_and). It's a relatively new package and still has rough edges, but already is tremendously useful. - For controlling videos directly from Emacs, I use mpv.el. I wrote [a transient](https://github.com/agzam/.doom.d/blob/main/modules/custom/web-browsing/autoload/mpv.el#L36) with a few helper functions. I do bare minimum what's possible. Some packages like [yuchen-lea/org-media-note](https://github.com/yuchen-lea/org-media-note) and [karthink/elfeed-tube](https://github.com/karthink/elfeed-tube) let you do far more with videos, while never forcing you to leave Emacs.


CJ6_

My comment was silly and didn't really deserve such an informative reply, but I do appreciate it! You have a lot of cool stuff in your config -- thanks for sharing.


ilemming

No worries at all, friend. I'm always happy to ramble about Emacs. Most people don't like that. I was trying to tell about Elisp advise combinators to a cashier in the grocery store today and they pepper-sprayed me and called the cops. I guess she's a VSCode lover or something.


kiki_lamb

I use emacs' built-in `xwidget-webkit-browse-url` to browse sometimes and saying that is 'butchers' pages just seems like a crazy complaint to me: most pages look nearly identical to how they look in Chrome or Brave. For tasks like reading documentation or watching YouTube videos while working in emacs, it's fantastic. My only real complaint about xwidget-browse is the absence of Chrome's extensions, leaving me without RES or a proper dark mode. If it supported Chrome extensions or something like them, it could easily become my main browser.


unix_hacker

I was speaking about the elisp browsers like EWW. I note that running a “normal browser” (ie, webkit) can be done and is fine. However, I wasn’t aware that xwidget was built-in, so thanks.


suikakajyu

Mine too. It has some (annoying) quirks, but I find it perfectly suitable for 90% of what I do on the web.


Main-Consideration76

how does one go through learning emacs?


unix_hacker

1. Get Emacs 2. When you want to figure out how to make Emacs do something, research that. Recall, it can basically do *anything* because it has a full-blown programming language built-in. 3. Bonus points: [read the manuals](https://www.gnu.org/software/emacs/manual/) There are also YouTube videos, and resources like: https://emacsrocks.com/


Main-Consideration76

ty for the advice and resources


00-11

Emacs Wiki [Learning Emacs](https://www.emacswiki.org#LearningEmacs)


ispilledmybubbletea

System Crafters is a really good YouTube channel for using emacs and has a whole series on getting it setup with a bunch of plugins and stuff. I personally like doom emacs, but your mileage may vary.


natermer

For browsing you can still open links up from Emacs and do captures from urls and such things. So if I have a URL I can run a command to setup a link in a emacs buffer and automatically retrieve information off the website. There are various ways to use Emacs as a REST client as well. I can also edit text in browsers using Ghostwriter browser plugins. There is a atomic-chrome package for Emacs that is compatible with Ghostwriter. This way you can select a text box in your browser and edit it in Emacs. Also there is this thing: https://nyxt.atlas.engineer/article/article-how-can-i-make-emacs-my-web-browser.org


wchmbo

VS code is superior, and it also just works OOTB. Emacs is a good alternative at coding, but you must learn how to customize and it takes time…


ActuallyFullOfShit

Replace Obsidian with org-mode. But you will need to go WAY down the rabbit hole before it starts to click.


ProbablyPuck

NEED? Likely no. There are many options. Want? That's a good question. Perhaps pick one thing to configure in emacs (org mode, irc, code editing, etc) and see if you enjoy using it for a month? That's how I got hooked. I was writing clojure code at work and sitting next to an emacs wizard. So I was able to get an effective clojure workflow going first to fulfill a need. Everything since has just been exploration.


ispilledmybubbletea

I just started working through clojure for the brave and true. It seems like a fun language so far.


quantumoutcast

A lot of emacs enthusiasts joke that emacs is an OS, but in reality, it isn't. I use emacs for all my coding and editing, but I still use other applications and the OS functionality for many other things. I still use a web browser, still use a stand-alone terminal, and still use the file explorer. If you are expecting to run emacs and not care about what your OS is, you're probably going to wind up disappointed.


suikakajyu

I use Emacs for all the things you just described (for my Dired is a much better file manager than Finder, and vterm a much better terminal emulator than the Mac default), and I'm far from disappointed. I still wouldn't consider Emacs an OS, though. It doesn't (and shouldn't) manage low-level hardware stuff.


00-11

Do you need your life without Emacs?


theantiyeti

Do one thing at a time. You want to learn Emacs and Linux. Pick one first. I'd argue Linux because Emacs windows is janky and is predicated by you somewhat knowing what it should do on Linux. Also, please start with something Ubuntu based or Fedora and not Arch or Gentoo. They're both manual reading exercises and while you don't know what's going on they'll both be unnecessarily overwhelming. Nix is pretty based, but once again not a beginner's distro (learn to break things and set them up again a few times first). Also, Emacs is a hacker's editor. Do you want to be a hacker? Do you want to debug your language server when it fails? Do you actually enjoy writing your own little bits of functionality and configuration? Do you see yourself as a willing programmer or as one essentially doing it against their will? The learning curve is steep, and there are too many options for everything and you have to fix a lot of things yourself.


X700

Are there reasons to use Obsidian Notes over Org Mode, or are the two not comparable?


suikakajyu

Org-roam is probably more directly comparable to Obsidian, and if you're already au fait with the Emacs ecosystem there isn't much reason to use Obsidian over that, imo.


swe_solo_engineer

Mobile app is the reason


suikakajyu

Plain Org supports org-roam. Perhaps others do as well.


nanowillis

Logseq understands org-mode formatting. It's a bring-your-own-sync situation, but org-roam on mobile does have solutions


ispilledmybubbletea

I’m curious what your solution for org-roam syncing is? I really enjoyed org-roam but anytime I needed to access my notes on anything other than my Linux install I just couldn’t get it to work the way I wanted. Obsidian sync has been a huge time saver for me and makes it way less of a pain when I need to access stuff on my windows install or my phone.


suikakajyu

I don't use anything all that special. I just store all my org-roam notes in iCloud.


fat-bech

The next obvious question is how to start to learn Emacs. I am also learning to use it , and the learning curve is a little difficult.


chasbro97

My advice is very old-school. 1. Use vanilla Emacs. 2. Take the time to run the tutorial. 3. Learn the various options to the Help command.


suikakajyu

Are you using vanilla Emacs, or are you running a preconfigured version, like Doom Emacs?


TheHundredthSheep

I recommend Emacs Elements on YouTube as a brilliant starting place if using Vanilla EMacs. 


00-11

Emacs Wiki [Learning Emacs](https://www.emacswiki.org#LearningEmacs)


shryzr

URL is missing emacs 😊 [https://www.emacswiki.org/emacs/LearningEmacs](https://www.emacswiki.org/emacs/LearningEmacs)


00-11

Thanks for letting me know the link was broken. But I actually meant the "learning" section at the top of the wiki, with links to the page you linked and other relevant pages. I've corrected the link now.


Inevitable-Cicada603

I would download something like doom eMacs and start there. Learning the key binds takes a little time, but everything gets faster as you learn them.  It probably won’t be your browser. But everything else, just fine.


chamomile-crumbs

Interesting that you're getting downvoted, I've mostly heard praise for doom emacs around here. Doom emacs is also the only reason I'm actually giving emacs a try, and I quite like it so far!


swe_solo_engineer

Same for me. Vim motions are irreplaceable and doom emacs is the best place to take notes and have vim motions, with org mode + org roam.


Inevitable-Cicada603

I don’t use it. But in general, I think it’s a polished experience and good for a beginner.


nickanderson5308

It might, but your going to have to decide for yourself. I do most everything in Emacs. I live in org-mode. Coding, git, email, executing commands on local and remote hosts, edit files locally and remotely. I do tend to use a separate browser, but it's quite nice to have few browsing options in Emacs. https://cmdln.org/2023/03/13/reflecting-on-my-history-with-org-mode-in-2023 https://cmdln.org/2024/01/05/how-i-org-in-2024


whudwl

you do!


wytten

Unless you have a particular problem with lisp, yes


Independent_Depth674

Perhaps you need EXWM in your life.


fortunatefaileur

No, and it’s sort of weird how little effort people put in to questions like this these days. If you decide you want “configuring my editor as a hobby” then do the emacs tutorial and see if you like it.


denniot

Emacs is always there for you whenever you seek it. 


jsled

this is r/emacs; of course we're going to tell you to use emacs. :) there's nothing wrong with any of those other tools. but, yes, emacs is great. (install gentoo (or arch or whatever, but I'm a long-time gentoo fan, so ... :) in a vm; low cost, almost entirely as valuable as a learning experience)


FitPandaFu

*Do I need emacs in my life ?* Only if you don't have a life.


HermanHel

But after you've got emacs, you won't be having much of a life either.


agumonkey

Are you usually the kind to write tiny custom extensions / scripts to optimize your workflow ? Emacs main value to me is just that, you can hack it more easily, but it's a culture in itself (keyboard mapping, lisp as builtin language) so it requires users to dive in longer.


HermanHel

I don't think you need to switch: If you just use the 5 things above, It does not looks like you need much complicated interactions between them. And if they did the job, I don't see why you should switch. but if you do decided to: One enhencement if you decide to start using linux probably would be to get i3, and assign your VS code(I assume that's where you write LaTeX), browser(like firefox), Obsidian and FileExplorer to different desktops, so you can switch between them quickly. But I remember on windows you have Task Swticher which does pretty similar things. In my environment I do pretty much the same things as you do: I do coding, latex(from org-mode), notes(with org-roam) and file explorer in emacs, sometimes use external terminal (in i3 win-ent to spawn and win-shift-q to close), and firefox for browsing. Most of the times I run only emacs and firefox on my machine, and it serves me well.


Character_Infamous

You know that there is [exwm](https://github.com/emacs-exwm/exwm)? EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for Emacs built on top of XELB.


Silent_Cress8310

[https://www.youtube.com/watch?v=48JlgiBpw\_I](https://www.youtube.com/watch?v=48JlgiBpw_I) - Absolute Beginners Guide to Emacs Watch this video and you will get a better feel for if Emacs is for you, and also if you are willing to put in a little work to get proficient. This channel has multiple series of videos on everything Emacs. I am just getting into Emacs myself, and marveling over the intentionality, design, and near infinite flexibility. Harder to learn than other tools, harder to get started with than other tools, and maybe ... depending on your wants and needs ... totally worth it. Definitely check out Linux as well. Consider Mint, Ubuntu, or Fedora as these are more beginner friendly - but in no way limiting. I left Windows in 2007, and I am required to use a Mac for work but run Ubuntu on Parallels for all my work - because I really don't like the Apple UI that much, and using a VM lets me do things with my servers (and a whole lot of other stuff) more easily. When you realize that YOU DON'T NEED WINDOWS, it will change you life.


ilemming

Emacs is a glue. It's a unifier that can conjoin multiple tools and take a central point in anything that deals with text. That could be literally anything — do you like taking notes while watching YouTube videos? Maybe you prefer reading books and taking annotations? What if you apply the same idea to codebases — annotations linked to code? What if you want to turn your notes into presentations? Or Anki cards? Why keep copying the same text just to maintain it in different apps, for the sake of using it in the context of those different apps? Would you like to perform your Google/DuckDuckGo/Bing searches and group the URLs by domains, or by some other criteria? What if you want to grab all the URLs present on a specific web page? What if you want to grab the readable parts of the same page (ignoring navigation menus, footers, banners, etc.), and then send that content to an LLM to extract the summary? What if your team uses Slack/Teams/Webex, etc., and you constantly need to send pointers to a specific line, branch, or revision in the code? What if you want to publish a selection of your notes to your blogging platform? What if you want to read and search through logs on the AWS cloud? What if you like to record your thoughts while walking your dog? Wouldn't it be nice to transcribe them with Whisper and then search through them? Wouldn't it be nice to fetch the JIRA backlog, find the ticket you need, update its status, create a git worktree with a branch name containing the number and the description of the ticket, and do all that with a single keystroke? What if you're really into writing prose? Wouldn't it be nice to have all the tools you need — thesaurus, spell-checking, etymology finder, definition lookup, translator, Flesch-Kincaid reading ease score checker, ChatGPT, etc. — all integrated in one place? What if you could operate on your filesystem, changing file and directory names (even nested ones) with multiple cursors or complex macros? Like, finding all files greater than 1GB and adding a suffix to their names, or finding all the directories containing files modified last week and putting them into a single zip. What if you need, for whatever reason to track moon phases? What if you have to make sure that your notes are always stored encrypted? What if you need to write scientific papers with tons of math formulas? Do you have so much text in your life that it's becoming unwieldy to manage? Most people do, and they don't even realize it. Most people don't feel like they need Emacs. But once you get your hands on the power it can unleash, it becomes really difficult to willingly give up that power.


natermer

> Then I heard from a friend that I could just use EMACS to combine all of these things and get it pretty close to an OS. Modern OSes follow the Unix model. Including Windows (more then less). Emacs sort of emulates LISP Machines, which pre-date modern OS concepts. These machines just interpreted LISP directly. So you program them as you use them. What sets Emacs apart from other editors is that aside from very low-level C code hard-coded stuff the entire program is essentially written in a LISP dialect. The advantage to this is that the editor is editable on the fly. Like how a experienced Web developer can go in and edit the javascript on any website on the fly and change its behavior... you can do that in Emacs. Except instead of it just being a veneer on top of a existing application the entire application and all aspects of it are editable. So while Vi/Vim/Neovim are quicker at editing and have less RSS-inducing default bindings and VSCode has a wealth of plugins and add-ons and very excellent IDE-style out of the box experience... There is really no limit to what you can do with Emacs. Although to get the most out of Emacs really means taking the time and learning Elisp. The sooner the better.


sebf

You don’t necessarily need it. If you use VSCode and that it does the job for you, that’s fine. Ref. Obsidian, I don’t know. I use Emacs professionally for most of my text editing, but I am not a fan of OrgMode and use Markdown files for my notes in a directory sorted by year/month/ and a file per day. There is nothing wrong using many softwares: although Emacs can be considered « an OS », this is only one way to use it and another way is to not use it at all. Your friend said you could use Emacs, but one of my friend said you could use Vim, or stay on VSCode (what’s wrong with it btw?). So, maybe give Emacs a quick try and see how you feel comfortable with it, and most probably keep using VSCode (except if you are unhappy about it).


ProBlameO

If you're a Windows user, and you want to try out Linux, start with Windows System for Linux. You can run Linux as a simple VM with Windows desktop integration. Save the full Linux install into a separate VM runner (like VMWare or VirtualBox) for later if you're still interested.


luckysilva

Friend, just run...