11 ms·
How I am deeply integrating Emacs
- scandox 1y ago> This is how world class athletes, musicians, artists, writers, and of course programmers take what is in their mind and translate it into reality. > It is the ultimate sharpening of the axe before chopping the tree[1] But if part of our axe sharpening is listening to music, reading email, catching up with your feeds and so on then perhaps we need to take a step back and ask if we're just invading our working thought-space with boondoggles. [1] "Give me six hours to chop down a tree and I will spend the first four sharpening the axe.” - apparently Abraham Lincoln.
- rusk 1y agoA good carpenter takes time to maintain and procure their tools. They still have a nice phone and might listen to music on their headphones while they’re working. A chef must keep their kitchen clean and well organised. Stocked with appropriate and some obscure tools. She must season her saucepan, sharpen her knives.
- giraffe_lady 1y agoMy first career was as a cook and I would always sit and sharpen my knives after the last service of the week. It was kind of a cool time to reflect on the previous cycle and mentally prepare for the next. There's really nothing comparable in programming and I say this as someone who has spent hundreds of hours yak shaving emacs.
- rusk 1y ago> I would always sit and sharpen my knives Tech debt
- chairmansteve 1y agoIn programming anything you do (eg yak shaving) takes up your whole mind. Sharpening knives leaves mental space for reflection.
- skydhash 1y agoWe do various tasks with computers. And it's not always in a linear fashion. What's important is reducing friction. The latter can manifest in various way, like having to battle with a GUI just to play some music, yet another GUI for email, and another one for your feeds. Emacs stuff can be pretty stable and you have the same interface for everything.
- sim04ful 1y agoThe more I learn about emacs the more I feel we took the wrong fork on road in terms of the desktop metaphor decades ago.
- nine_k 1y agoEmacs is great for people who are fine tinkering with their tools, and adjusting them to their needs and tastes. Emacs improves my quality of life quite a bit. A lot of people hate that, they want a tool that has all relevant to their tasks front and center, all irrelevant invisible or nonexistent, and zero options to tinker with. It should just work, and preferably never change. A middle ground are the browsers that just work out of the box, but can be heavily customized by extensions. MS Office is another example.
- omnicognate 1y ago> A lot of people hate that It seems a curious attitude for a developer, though. My curiosity about how things work and the joy I get when I make a computer do the specific thing I want it to do for me are the reasons I program for a living.
- fhd2 1y agoCompletely agree. At the same time, I'd wager a good chunk of developers isn't really in it for a love of computers and tinkering. Not a bad thing per se, just my observation.
- Karrot_Kream 1y agoLife is full of decision points. It is very understandable to use your decision budget on things that matter, like your projects or your job or your money, than things that don't like an editor config. Over my decades of emacs use I've had periods of crazy tinkering and conversely years of doing nothing.
- bodge5000 1y agoI fit into this category so I might be able to explain. I'd like to learn emacs and build my perfect config for my WM and so on, but on top of that theres a long list of other stuff I want to do and build and learn. My time is finite and with all the other demands of life, my energy even moreso, so naturally I have to make sacrifices.
- hsbauauvhabzb 1y agoI like eMacs but I feel the whole workflow is wrong. Buffers are a stacked tiled window manager inside your window manager. Your browser is a tabbed window manager, and many other applications are also window managers. I wish any sub buffer of any application was for all intents and purposes a dedicated window, so the WM can take care of the rest. Maybe it’s an adjustment that I could make in my workflow, but a global solution would have been nice. Too late now I guess though.
- douglee650 1y agoDoesn’t emacs slow down on really long files? I mean like 8,000 lines
- hsbauauvhabzb 1y agoNo, but that’s not really relevant, my point is more that all buffers should be windows across all applications. Emacs for me gets slow when syntax highlighting is on and I navigate to a very long line, text-mode does not have highlighting or the slowness. Most emacs slowness is caused by bad plugins, which if you report may be fixed by developers.
- precompute 1y agoNot these days. Native Compilation made emacs a faster and there have been a lot of other changes. In fundamental-mode, emacs can handle really large files. When opening files literally, it's even faster. I have this 104k line org-mode file and it's reasonably responsive. Reverting it takes a while, but the UI does not hang while the buffer is being formatted according to the mode. I use a mid tier laptop CPU (6C12T). Emacs is snappy. Compared to what it's like now, it was glacial in 2019.
- hsbauauvhabzb 1y agoI’ll bite, wtf is your org file?
- 1y ago
- omnicognate 1y agoRe EXWM and: > Emacs is single threaded, therefore if anything in the system hangs, the whole system hangs For development work I haven't found this to be an issue. Generally when coding I use very few X apps - pretty much just a web browser and maybe occasionally a PDF preview or docs browser. I don't think I've ever had a problem with the single-threaded behaviour blocking window management there. (And as an aside, while proper threading would be nice for things that actually should be concurrent - such as EXWM's duties as a window manager - I massively prefer emacs' synchronous processing of input over the JetBrains horror of pressing a key combination and then having to wait for some asynchronous UI behaviour to occur, with different outcomes depending on whether the next keypress occurs before or after the UI behaviour the first one triggered.) For other, more GUI-focused activities I just run a separate (wayland) session.
- hsbauauvhabzb 1y agoI don’t imagine I’d want to use my general emacs as my window manager, I imagine the sanest way would be to run two instances of emacs.
- seanw444 1y agoI absolutely love Emacs, but I can't understand why people want it to be their window manager, of all things. Emacs can be many things, but high performance it is not. And WMs definitely are a high performance area.
- hsbauauvhabzb 1y agoThey’re really not. Stability matters, but a wm has very little to do with actual rendering, it’s more placement, title bar and decorations, emacs as slow as it can be would be perfectly fine unless you have some crazy extensions on top, hence running two instances.
- seanw444 1y agoFair. Regardless, it just seems like an odd tool for the job.
- globular-toast 1y agoThe bit about enabling org capture from "outside" Emacs is really interesting. It's been so important for me to have a system that enables me to make notes, todos etc. with extremely low friction. At any time, without my hands leaving the keyboard, I can take a note that is either directly attached to what I'm currently working on, arbitrarily file it somewhere if I know where it should go, or just let it go into the general inbox (the other part of the system is actually getting to those things in the inbox at some point). Up until this point I have had to be "in" Emacs, though, which accounts for most of my time, but not all.
- shevy-java 1y agoThis may sound strange, but I actually think we need just ... one editor. Now, this is not a "we need to favour vim over emacs". I think this is a stupid war, the vim versus emacs war. What I mean is ... basically most editors do almost the same exact thing. They look at some buffer for a file and help the user modify this. There is a finite number of operations possible. Why do people keep on re-implementing basic things here? Why can it not be solved once and for all and then everyone uses that implementation? We really should have that; and then people can decide ON THEIR OWN what kind of editor they want to use. Many years ago I started with crimson editor as my main editor on windows. I have since then hopped to many other editors. My favourite one was oldschool bluefish in gtk2. I am not saying it was perfect, but I found it much easier to go on my poor brain than e. g. remembering all vim shortcuts. But, it would need xorg + gtk2, so if that is not available, then I can not edit things - that's bad. That was (and still is) also one reason why I use e. g. nano. But this in turn requires ncurses and I hate ncurses with a passion (nano is great though, I can recommend it for quick ad-hoc editing; for larger things it is not quite as good, but if you have to just change some value in a config file, nano is really great). Even then I used only like 20% of what bluefish offered (the newer bluefish releases are also nowhere near as good as the old releases, also because GTK really sucks nowadays). I'd like to cherry-pick on my editor and declare what I want it to be, without needing to implement everything on my own. Why can't we transition into this? Why do we need to reimplement everything almost from scratch? That just makes no sense to me. We live in the age where AI autogenerates code (which they heavily drew from stealing people's code). Why can't AI autogenerate the best, most perfect editor/IDE?
- Antibabelic 1y agoStep 1. The most perfect editor with all the features is created. We've done it. Everyone can tailor it perfectly to their workflow. Step 2. People complain that it's bloated, that they don't want 99% of the optional features in the editor, and that the codebase is a nightmare to maintain. Step 3. A thousand more editors are created.
- martinflack 1y agoBluefish has had a release in October 2025 and the development page talks about gtk-3. Are you sure you've kept up to date with it? If you like it, stick with it.
- voidUpdate 1y agoI keep hearing about emacs and how awesome it is, is there a good resource for a complete beginner who is familiar with programming but not necessarily editors like vim or emacs, just to get started?
- skydhash 1y agoThe book “Mastering Emacs” is nice. But both programs have tutorials builtin and extensive documentation. There’s also various youtube walkthrough videos for features.
- sonnig 1y agoI strongly recommend the book "Mastering Emacs" by Mickey P. You will need some patience as well, I recommend going slow and steady for a week at least using the book, with a vanilla/standard Emacs install. It took me about 2 weeks to get productive at first (this was in 2018), and now I use Emacs every day for a wide variety of tasks (programming and notes, mostly).
- ngc6677 1y agoA good way to get straight in, is to download `emacs`, open it, and follow the built in "Emacs Tutorial" (click the link on the first page that is shown). It brings a new user through the concepts of the editor, how to move around, do some of the most usual actions, and get familiar with its vocabulary. At first, it is also a good practice not to install any package, and use the built-in capabilities (`magit` and `org-mode` are now part of the default installation) for a while, the time to discover what comes with the "factory defaults". Also, for some inspirations, watching videos from `System Crafters, Howard Abrams, Emacs Rocks` to see how some people use it. It can take a while to get used to everything, or to install packages and customize it to what other editors comes with by default, but the reward is worth.
- MarsIronPI 1y agoAlso be sure to use "C-h k" (describe-key), "C-h f" (describe-function) and "C-h v" (describe-variable) liberally. Emacs' self-documenting nature makes it significantly easier to understand what certain actions do and how certain options work. > `magit` and `org-mode` are now part of the default installation) Org is, but magit is not.
- adlpz 1y agoA question for the heavy Emacs users: What's your take on opinionated distros like Doom Emacs or Spacemacs? I've been doing my daily journaling and task management on Emacs for while now, using Doom Emacs. Rationale was that it'd be mostly pre-configured to a sane standard and that, for actual text editing, I'm a long time vim enjoyer, so evil mode is great there. However I always feel that when I go beyond the safe borders of the preconfigured, leader-key-accessible realm, I'm quite lost. I don't have good intuitions on how to interact with more raw parts of the system. And I do want to venture further, so I'm feeling I need to get re-started with one of the recommended tutorials/books. Should I start fresh Emacs install instead? PS: I've coded in a bunch of lisps in the past and I have already done a bit of customization on top of Doom, so I sort of know my way around, but I'm just not comfortable I guess.
- Karrot_Kream 1y agoWhatever works for you works. If you want to use your editor for a goal, using the guardrails of Doom is fine. I use a vanilla setup as my base but I've been using emacs since before distributions. If you want to tinker or otherwise learn emacs more deeply, feel free to start from a vanilla config.
- Ferret7446 1y agoDon't use them. A personal config is highly personal, and a distro force someone else's preferences onto you. Even things like how exactly your config is organized. But ultimately it's all about tradeoffs and what works for you. You don't necessarily need to go beyond your distro, but if you want to or need to, then that's a good sign to try it
- tmtvl 1y agoMy petty opinion is that distributions which disable the menu bar are bad, distributions which use an edgelord dark theme are bad, and distributions which do both are terrible. Where Doom in particular is concerned I dislike the fact that it starts with Vi keybindings by default (I quite disfavour modal editing, there's a reason I switched away from Vim after 5 years) and that it changes the 's' binding so I can't even rely on my muscle memory. I've tried both Spacemacs and Doom (and others like Witchmacs and Bedrock) and now I'm just using my own 800 line init.el (which does include comments and whitespace so the actual LOC will be lower) and 110 line custom.el (if you set the custom file to a different file than your init then using customize to change settings won't mess things up if you manually edit your init). If you really like Doom you can try reading its code base, if it's just too much then maybe it would be better to try setting up your own configuration from scratch.
- Mackser 1y agoAre there any good videos showcasing a productive Emacs setup like this and how it's used for everyday tasks?
- darshanime 1y agonot exactly what you seek, but i like the emacs rocks clips: https://emacsrocks.com/ https://emacsrocks.com/
- internet_points 1y agothey're nice and short, but note that the latest one is 8 years old ;-) (though https://www.youtube.com/@emacsrocks https://www.youtube.com/@emacsrocks has newer stuff by the same person, seems like game dev in clojure and emacs)
- kevstev 1y agohttps://systemcrafters.net/emacs-from-scratch/ https://systemcrafters.net/emacs-from-scratch/ This was my aha! moment where I actually watched someone install and use packages and was like oooh yes, this is both nice and will actually be very helpful. And I have been using emacs since 1998! I find most package pages tell you a lot about the how, but very little about the why on you would want to use them.
- beanjuiceII 1y agoso why is he using nix then when there is emacs
- devinprater 1y agoI love Emacs. My first intro to it was on the Braille Plus Mobile Manager back in like 2008 or so. That was a beautiful device that ran Linux and was developed for the blind. There's been nothing exactly like it since. The BT Speak is a poor ematation that runs on a Raspberry Pi 4 and is sluggish because Linux accessibility is hard and not optomized for such low-power devices. Anyway, I began learning Emacs commands in the Emacs tutorial on that Braille Plus, , and they made sense to me. Unfortunately, Emacspeak only really works well on Linux and Mac, not Windows where all the blind people are. Speechd-el only works on Linux, since it uses Speech-dispatcher. I got Speechd-el talking on Termux for Android last night though, although it was rather laggy between key press and speech. Emacspeak development has paused, though, and Speechd-el seemingly hasn't been updated in half a year. Emacs itself has a lot going on for a normal screen reader to interpret which is why Emacs-specific speech interfaces are so useful. A few examples: * On Windows, with Windows Terminal and NVDA screen reader, arrow keys read where the cursor is, but C-n and C-p, C-f and C-b, all that, NVDA doesn't say anything. This is with the -nw command line option because the GUI is inaccessible. * Now, if I do M-x, it does say "minibuf help, M-x, Windows Powershell Terminal". From there, I can do list-package and RET and use arrow keys to go through packages, but N and P don't speak even though I know they move between packages. So it seems like the echo area works. * Programs like the calendar, though, really doesn't speak well with a screen reader. It just read the line, not the focused date. Using left and right jst say "1 2 3 4 5" etc. So custom interfaces don't work well. I shudder to think how it'd read Helm. Lol maybe I can get AI to make a good speech server for Emacspeak for Windows.
- pfortuny 1y agoI am amazed by you, and humbled too. Thanks for sharing your experience!
- hu3 1y agoAmazing. I really want to make my web apps as accessible as possible for the blind. Could you tell me what are the worst and best practices in this regard? Any article you recommend? And how could I test accessibility of my web apps, for the blind? Perhaps try to navigate it with screen reader and keyboard only?
- tinkelenberg 1y agoI’m exploring a similar implementation and am honestly torn between NixOS and a more monolithic experience like Debian or OpenBSD. As much as I love the idea of declarative builds, I’m struggling to justify the investment of learning and maintaining Nix for an individual setup. I’ve dabbled with it and mostly encountered footguns. Whatever makes a nice, clean slab is what I’m after.
- nikoomilana 1y agoI've greatly benefited from investing just a few hours then utilizing LLMs. I was very unfamiliar to a lot of the syntax from the nix language, so I spent most of my time getting an overview. It was less than 8 hours total. Another thing that helps a lot is to browse other people's codes on Github.
- YuukiRey 1y ago> I have seen what people are capable of doing when their tools get out of the way, and they are free to just create. This is how world class athletes, musicians, artists, writers, and of course programmers take what is in their mind and translate it into reality. I think this is a fallacy. If you approach the question of how these people achieve the things they do with a bias towards tooling then you'll come to the conclusion that it plays a big role in their success. In reality, many of these folks start with a very strong drive to achieve something and then the rest sort of follows. If you want to be a world class musician, start practicing an instrument. Ideally fall in love with music. The rigorous and meticulous practice routine comes later. In other words: you can have the world's best tooling that gets out of the way, but you're still as unmotivated to do anything as before. I think it's a cool idea and it sounds like a fun and creative endeavor. I don't want to talk it down. But I also wouldn't want folks to get the, in my opinion, misguided impression that "tooling -> success" is the correct order.
- j4102_ 1y agoAgreed. You can have all the best tools and you still aren't guaranteed "success"
- taeric 1y agoI'd go further. Some of the world's best tooling is only usable by the world's best users. Examples abound on this. The best drivers are in vehicles that I would almost certainly crash. Our best pilots are in planes that I literally don't understand the controls on. (That is true for the cars, too, oddly.) A really good guitar is easy to miss notes on. Precisely because good guitarists don't typically miss. Now, I think you could reword a little bit. The best performers know their tools very well. So well, that they often "just disappear" for them. This does require some level of quality in the tool. But requires a ton of effort from the performer, too.
- kcexn 1y agoAs you get better at something you become more opinionated at what you need your tools to do. You demand more specific and tailored things from your tools and so you start to lean towards things that are more adjustable. There is also the case that once your entire livelihood depends on something, consistency and muscle memory matter a lot. Lots of world-class athletes, drivers, and performers probably use tools that closely resemble the tools they learned and trained with their whole lives so they would probably seem kinda anachronistic to a newcomer.
- supersrdjan 1y agoThe most seamless capture-from-anywhere workflow I struck upon is to have a shortcut on my phone's home screen. When tapped, it takes my dictation, transcribes it, and saves it to an inbox.org file with an org-syntax timestamp, synced to my main computer. Basically the notes have the same format that org-mode uses to save notes placed in the logbook. But you can also make them as individual TODO headings or whatever. It's all plain text anyway. I try to empty the inbox.org every morning, I typically have 20-30 entries to go through. Some things matter and are revised and refiled appropriately. The rest gets dumped into a chronological log file for just in case. edit: btw, it would be cool if I also made a version that would append the content of the phone's clipboard to the transcription, so that I can also catch links and/or bits of text. Or maybe even multimedia, thought I am not sure how I would accomplish that.
- FredPret 1y agoAwesome - are you on an Android? I tried to do something similar on my iPhone, but couldn't get a reliable (or any) way to get an rsync script running. I ended up with pen and paper though, which is best for me all things considered.
- dunb 1y agoThis isn't rsync, but you can integrate a-Shell[0] with iOS Shortcuts. You would need to make the syncing happen in the script instead of in the background though. I use a Python script to create aliases for my email this way, so I don't have to turn on wildcard addressing to my inbox. [0] https://github.com/holzschu/a-shell https://github.com/holzschu/a-shell
- supersrdjan 1y agoIphone, yes. I keep the file on dropbox so that is what keeps it synced. Shortcut: https://www.icloud.com/shortcuts/a8a0076cc03f4e699d8ca34bd3dda1fd https://www.icloud.com/shortcuts/a8a0076cc03f4e699d8ca34bd3d...
- fire_forager 1y ago[dead]
- skeezyjefferson 1y agoemacs, great if you dont mind coding it all yourself, in which case you could have coded an application directly for what you need, instead of it being a plugin to a text editor. but I guess its cool to use, so theres that intangible piece of nubbins to hold onto at least
- jimbokun 1y agoIf the application you are writing is text based, Emacs is a great environment to write it in.
- vatsachak 1y agoWhy would I use emacs instead of Helix editor for any language other than Lean or Agda?
- Antibabelic 1y agoWhy would I use Helix editor instead of Emacs?
- rml 1y agoThis is a very good feature/workflow based intro As the years go by one realizes that even these “features” like Org, Dired, etc are just illusions in some sense. They’re just Elisp code someone else wrote and put a name on. You can take or leave them or write your own code that changes/advises/customizes them. It’s all up to you. You don’t need a blessed “plugin” architecture, some PM at IntelliJ’s permission etc At some point one realizes the “visual shell” nature of Emacs. Every single piece of text on screen can be programmed to “mean something” (see also: “recognizers” from human interface research) and have actions taken on it either by the editor itself, or external processes / scripts you call with a command. If it’s common enough, make a key binding. It’s your house, do what you want Depending on how you set up your environment, you may never have to look at text again that you do not have this level of power over. You are no longer at the mercy of “application developers” I’ve been using it since 2005. Guess how many of 2005’s popular editors even still exist My recommendation to anyone trying to actually learn is start with the full vanilla config, weird default keybindings, etc, go through the built in tutorials, and only add things to your config that you write and understand yourself. Understand it in its own terms. The plethora of packages, etc have “cool features” but impede learning by adding mountains of complex dependencies that are opaque to the beginner and cause confusion IMO
- pjmlp 1y agoI used it between 1995 and 2006 as replacement for not having proper IDEs on the UNIX systems I had to work on. With that requirement going away, I left Emacs behind.
- skydhash 1y agoI’m perfectly happy woth IDEs for some projects, especially at work. But I tinker with enough ecosystems and OS and sometimes you just don’t have any IDEs. On almost all systems, I can copy my init.el and have my tools replicated in a few minutes.
- mikeegg1 1y agoI used emacs(1) for a while as a development tool. When I went back to system administration, and before and after using emacs(1), I used vi(1).
- cmrdporcupine 1y agoRe: author's comments about exwm imho exwm is imho fundamentally flawed, especially when running emacs or doing emacs stuff inside it. You end up in a battle over keybindings, etc. I think a better model would be a window manager in a separate process that your emacs elisp processes can communicate with over IPC.
- kleiba 1y agoOT: long time Emacs user, but my new employer insists on everyone using PhpStorm. And don't get me wrong, that's really a great IDE. I still miss Emacs, though.
- miguel_martin 1y agoNot one mention of SSH or remote development. Life must be nice to do development on a single machine. Tramp on Emacs is not ideal.
- pama 1y agoYou start an emacs server on each machine you might use. Then ssh and emacsclient -nw. You need a decent terminal but life is simple.
- miguel_martin 1y agoWhen I used to use emacs to write code I did this, but it would be great if I could use tramp instead, unfortunately the latency is unbearable. Also, when compared to neovim, the latency for auto-completion (with LSP as a source) is also unbearably slow. Even with libgccjit enabled. Now I only stick with emacs for org mode. Maybe I'll try it again, but neovim is just faster.
- yanhangyhy 1y agoI think i finally pass this stage....not doing everything in Emacs..
- thomascountz 1y agoDoes anyone have a recommendation for a learning resource that approaches emacs as a computing environment in general, rather than as a text editor specifically? I think I may have had a lot of false starts learning emacs because I've been thinking of it too much like a replacement for vim, rather than a scriptable environment.
- TruffleLabs 1y agoLike the writers that are looking for the best {pen, keyboard, paper} before they start to write... and they continue to look for the best thing to make them great writers ...