9 ms·
Watching the Emacs community, I’m always just blown away by the love and adoration it gets. It’s clear to me that there’s something magical in it, but I can’t s
by teucris 4y ago
Watching the Emacs community, I’m always just blown away by the love and adoration it gets. It’s clear to me that there’s something magical in it, but I can’t seem to tap that magic for myself. I’ve tried - really tried, including relearning lisp - to adopt Emacs roughly four times over my career; it never stuck. I understand the basic benefits, eg keyboard-optimized workflows, deep customization/malleability, etc. But despite my attempts, it just isn’t… accessible to me. What the heck am I missing? Should I just recognize that it’s just not for me?
- throwanem 4y agoThis is a tough question to try to answer! I guess I'll cheat by asking one of my own: Can you characterize what about Emacs has put you off? It took me a few tries too, back in the late noughties, before I finally found it "clicking" with me. I have a pretty good sense of what made that possible, but no idea if your experience is at all similar, so I hesitate to suggest anything in advance of getting a better sense of what I'm suggesting about.
- alexyz12 4y agoI think it's the single tool for many uses thing. It's somehow more satisfying for some chef's to use, love, and care for a single knife to do everything in the kitchen than to buy 100 different chopping products. Emacs is the same way for people who love to build their tool and use it for everything. If you don't feel that way you probably won't see the point which is fine.
- haolez 4y agoI was an avid user and it's amazing how it's able to port abstractions between its various modes. For example, you can use an auto complete plugin that replaces text with regexes to rename a batch of files. But nowadays I tend to prefer technologies that work reasonably well with a set of sane defaults. Emacs works really well when you are working on really hard problems and programming fringe things from scratch, but it pales in comparison to the productivity of simple no code tools that's been flourishing recently. That's the experience for the kind of work I've been doing recently, which are mostly CRUD apps to support a business. It might not be true in other domains.
- bergheim 4y agoWhat I tell my programming friends is that if you can see yourself molding your computer user-interface as sort of a hobby, then emacs is most definately for you. If you don't see that as a fun past-time activity, then I would not recommend emacs. For instance, (in my emacs email client) I just made a change where if I want to search the subject I am looking at, and it has a #XXX in it, then the subject search is just that number. Makes me able to quickly load up all emails related to that ticket. This makes me happy. Also: same keyboard interface to everything.
- psychphysic 4y ago> Also: same keyboard interface to everything. I still have to look up how to add hooks (decades into using Emacs as my primary editor). But using the same shortcuts in every readline prompt is just so comforting.
- St_Alfonzo 4y ago> [...] if you can see yourself molding your computer user-interface as sort of a hobby, then emacs is most definately for you. > If you don't see that as a fun past-time activity, then I would not recommend emacs. If you don't see that as a fun past-time activity and still want to use emacs, then I would recommend spacemacs.
- ParetoOptimal 4y agoAnd if you find yourself between the two extremes, perhaps https://github.com/SystemCrafters/crafted-emacs https://github.com/SystemCrafters/crafted-emacs
- bergheim 4y agoAs a guy that has used both spacemacs and doom emacs (which I would recommend over spacemacs), I disagree - you still will be mucking around with things. Emacs out-of-the-box 2022 leaves a lot to be desired, configurations makes it easier, but it is still not the vscode experience, even though it helps you a LOT on the way.
- ParetoOptimal 4y ago
- bombcar 4y agoEmacs is a lifestyle and it takes time to get into it. The jokes are pretty spot on - it's a wonderful operating system; it only needs a decent text editor. You'd probably have to "dedicate" yourself to it for a month or more (and having a "mentor" or support group that can answer questions and telling you there's an easier way to do it would help). It was MUCH more powerful (relative) when we didn't have much beyond a terminal emulator.
- bergheim 4y agoI don't know why you are being downvoted - I agree. I do just that. Last paragraph though I do not agree with at all.
- bombcar 4y agoBefore tools like VScode existed Emacs was infinitely beyond other options, now it’s just really really really far ahead.
- bergheim 4y agoI'll bite. How did vscode raise the bar from every other editor/ide ever?
- qorrect 4y agoI don't think that's what he is saying. He is saying that Emacs once ruled supreme because it was the only option. Now that IDE's have caught up, it's in the lead by only a little.
- bombcar 4y agoI'd say still by a lot, but yeah, IDEs have advanced in the last 20+ years (and one of the main advantages of something like VScode or IntelliJ is that it does a lot "out of the box" and it's pretty discoverable).
- 4y ago
- okprod 4y agoI find people who like working with plain text tend to love Emacs or similar editor ecosystems. I really enjoy having almost all my workflows in one place, and once you get a handle on some keybindings you can manipulate text so fast and so cleanly it can be satisfying. I also know people who love things like shared editing of tasks, reminders with color highlights, etc. and they tend to not like Emacs. PS: I don't listen to music or plain text browse the Web in Emacs but I know people who do :D
- deagle50 4y agoIt's like a Bloomberg Terminal for programmers.
- sph 4y agoThat is an excellent observation. There is something special about living inside the same, consistent environment. You can reach productivity peaks that are impossible to achieve with an heterogeneous collection of tools.
- laerus 4y agoI feel you and you are not the only one. For me it was the time sink every time I wanted emacs to do something different, it was fun for a while (3 years) but now I want to spend my time elsewhere. Also Elisp kinda sucks.
- kfajdsl 4y agoI do think that keyboard optimized workflows are not for everyone; you should use what works best for you! However, Emacs distributions like Doom Emacs or Spacemacs are definitely more approachable and featured OOTB than vanilla Emacs. For me, the benefit of Emacs is that it's a single environment I can do everything in. I also am the type to enjoy messing with my workflow. IMO most of that can be replicated with VS Code in a much more user friendly manner (VS Code remote editing blows TRAMP out of the water), with the caveat that multiple projects means multiple windows, it's difficult to have an entirely mouseless workflow, and in general it's less customizable than Emacs. I personally never bothered to learn Emacs keybindings and instead use Vim keybindings in every editor I touch; VS Code and Emacs both have excellent Vim plugins. Honorable mention: Neovim. It is lighter weight than either Emacs or VS Code but can still have pretty much all the bells and whistles. Definitely cool if you prefer to live in a terminal.
- sokoloff 4y ago> VS Code remote editing blows TRAMP out of the water I’ll have to try VSCode in this area, but Tramp seems pretty awesome to me so I’m trying to think how it could be blown out of the water.
- kfajdsl 4y agoIn the "just works" department mainly, especially in regards to other packages playing nice with tramp.
- ParetoOptimal 4y ago> VS Code remote editing blows TRAMP out of the water One place emacs has a huge advantage is it doesn't use hardly any resources in the docker container. The vscode remote server instance uses a constant 15%-30% however. In real world terms this means a compile that takes 1 minute for me takes 2 minutes for my coworkers that use vs code. There are many potential confounding factors that could affect the performance discrepancy of course, but I think it's still useful given I can't think of many other plaform differences and that it's consistent amongst my coworkers.
- sokoloff 4y agoI find the consistency and configurability great, but for me the killer features were being able to write elisp and kbd-macros to accomplish tasks that (most?) other editors can’t. Modern conveniences include magit (the best git [porcelain] I’ve ever used) and cider, but I’ve been using emacs for 30+ years now and feel like for all but the first 6 months, it’s been an increasing time-saver and powerful lever for me to use.
- jcpst 4y agoFor me it was org-mode. Emacs is basically my org mode interface.
- luxcem 4y agoI've used emacs for ~15 years now and never really get into org-mode, I have a directory of org files that I use for writing and keeping some kind of personal wiki but it's just a bunch of org files. I never successfully build a workflow around it. I see that I'm missing something but I don't know where to start. Org-roam seems interesting. Do you have any recommendation for how to use org-mode productively?
- taude 4y agoLike yourself, I don't do anything fancy. Just plain org files. However, I do use org-journal [1], though, so I can ctrl-c ctrl-j to add a new entry, and have it automatically wired up for rotating the file monthly. I use this for adding new items and having speedy access. But that's it. I don't use Agenda or any of that fancy stuff, so don't feel guilty that you're missing out. [1] https://www.emacswiki.org/emacs/OrgJournal https://www.emacswiki.org/emacs/OrgJournal
- jcpst 4y agoProbably going through Rainer König‘s org-mode tutorial series on youtube. I like that it’s all with vanilla org-mode. That way you can dig deeper into anything he’s doing in the org-mode docs or on worg. I don’t have a very rigid workflow with it. Typically one org file will be a project I’m working on. I use custom “TODO” tags to show the state of items. I also love the table functionality. It basically replaces spreadsheets for me and it lives with the rest of the text. https://m.youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs9PJlU0IIdE https://m.youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs... https://orgmode.org/worg/ https://orgmode.org/worg/
- ParetoOptimal 4y ago> Do you have any recommendation for how to use org-mode productively? I have a treat for you! Free video course: https://m.youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs9PJlU0IIdE https://m.youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs... Paid udemy course (improved?) version: https://www.udemy.com/course/getting-yourself-organized-with-org-mode/ https://www.udemy.com/course/getting-yourself-organized-with... Something different blending org-mode and org-roam: https://d12frosted.io/posts/2020-06-23-task-management-with-roam-vol1.html https://d12frosted.io/posts/2020-06-23-task-management-with-...
- esparrohack 4y agoEmacs was a great editor just like Nirvana was a great band. It’s influenced every other editor after it. People are always going to love it. But I think all the best ideas from that era have been taken. I like Vim but EMacs won the editor wars
- hiq 4y agoI guess you can make the same statements about vim, given that there's a vim mode in most popular IDEs.
- esparrohack 4y agoBut as an addon. No one stole modal editing and the quirky key bindings as a core feature. The real split was whether people wanted an editor to work like an IDE or not. Everyone did. Even Vim. I think it makes more sense they are there for those of us who know Vim but one day we’ll all die out
- sph 4y agovim is an editing system. Emacs is a platform centered around text.
- scombridae 4y agoI like vim but emacs won the editor wars It's hard to imagine a definition of "win" that goes from roughly 50% popularity to less than 5%.
- esparrohack 4y agoNo, because I said influence. You are thinking adoption. That actually boosts my point
- bergheim 4y ago> Emacs was a great editor just like Nirvana was a great band. It’s influenced every other editor after it. Eh.. Which every other editor would that be? There is a mode [0] you can enable just because of how different it is to every other popular editor ever. Still. 0: https://www.emacswiki.org/emacs/CuaMode https://www.emacswiki.org/emacs/CuaMode
- G3rn0ti 4y agoMaybe you just haven’t found a killer feature for you yet that blew you away. Personally, I also can’t give you THE one use case that sold me on Emacs. It’s more the integration of a diverse set of tools together with its robustness that really makes it shine. I have used vanilla Emacs for a long time with only a couple of packages installed (basically flyspell and web-mode) and everything worked for me although it was quite boring. That’s because I managed most of my dev workflow outside of Emacs. The JS dev server took care of reloading and transpiling, the linter ran as a test step and I used git on the command line for version management. These days I do a lot of backend work, most importantly REST APIs. So have to tweak server code, restart the server (not always written in JS), test out new end points. So I am using the built-in „compile mode“ running a bash script automatically deploying my code changes using ssh upon two key strokes (C-c C-r). Emacs returns syntax errors including file names and lines, so I can jump straight into the code to fix the issue. Once running I switch over to a „restclient.el“ session to try my code. With another two key strokes (C-c C-c) I execute a request (however complicated) and receive the JSON response in a temporary side buffer which I can filter using „jq“ with another key stroke thanks to restclient-jq.el. I can inspect runtime errors on the server by opening the remote log file using TRAMP mode (alternatively, I open a „term“ session and invoke „tail -f“). Once the code works I press „C-x g“ to switch over to „magit“ to stage or commit my changes. If I have to work on two or three things in parallel I use „perspective.el“ to maintain something akin to virtual desktops, so I don’t have to re-order my buffers all the time. I also do teaching on REST APIs which I do using „org-mode“ together with „org-babel“ and „org-tree-slide“ allowing to inline actual restclient.el sessions among text or graphical slides. I also use org-mode for technical documentation including executable code and for explorational SQL development. You see, in Emacs many packages just glue together seamlessly thanks to its brilliant API that stood the test of times. I didn’t start using all of this on a single day but Emacs sucked me into its eco system very slowly until I just couldn’t imagine using anything else anymore. It just takes time to get to know these things and getting comfortable with Emacs‘ configuration system.
- marai2 4y agoPlease do a YouTube video demo-ing the above workflow! It would be really valuable in showing how all of these integrations work together. I am a long time emacs user but I'm not aware of some of the modes you mentioned above and it would be awesome to see a video tutorial!
- BeetleB 4y agoIt would help if you explain more what "accessible" means. What about it was a problem or left you dissatisfied. BTW, the System Crafters Youtube channel has pretty good Emacs stuff - including for those with little experience. Although I've used Emacs for over a decade, I learned about fairly helpful packages via that channel. https://systemcrafters.cc/ https://systemcrafters.cc/
- tmalsburg2 4y agoYou say "it just isn't accessible to [you]". If I'd install vanilla Emacs today or one of those distros, I'd probably feel the same, i.e. that Emacs is not for me. However, what makes Emacs great is that I can make myself at home in Emacs and design everything the way that works best for me personally, even if that is perhaps highly idiosyncratic. So my advice would be: Install Emacs and if there is something that you don't like, don't ask what you're missing, but simply change it. One thing I hated about Emacs were the RSI-inducing keybindings. And this is how I became one of the first 5 users of evil-mode (which provides vim keybindings). Over the last 15 years my Emacs config has grown to 4k+ lines and that seems bizarre, but the result is an editor that works really well with my personal way of thinking. It almost feels like an extension of my body, which means that I use it without thinking about it. It gets out of my way cognitively and doesn't add extra friction to my work which is already complicated enough. That's worth a lot to me.
- teucris 4y agoSo for you, Emacs is more like a library or editor engine than an application? That makes sense and may explain why I didn’t connect with it, in that I’m used to adapting to my tools rather than building them. I need to change contexts frequently so I’ve made myself malleable rather than my tools.
- medstrom 4y agoThat's a great explanation, you have quite the way with words! I'd add that it isn't only about preferences. Obviously if it works equally well either way, you save time and energy by just adapting yourself to your tools and appliances and moving on with your life. But doing so sort of sets a ceiling on what you'll ever imagine any tool can do... This touches on what I'm getting at: https://djrobstep.com/posts/programs-are-a-prison https://djrobstep.com/posts/programs-are-a-prison
- plaguehammer 4y ago> It’s clear to me that there’s something magical in it, but I can’t seem to tap that magic for myself. I love Emacs for some of its really nice features that I just cannot find anywhere else (and no Elisp knowledge is required). I'm not one for tech monocultures and try to diversify my tooling as much as I can, but Emacs is seriously good when it comes to so many things: - Magit in Emacs is arguably the best Git interface in the planet. You can run simple operations and complex workflows with just a few keypresses. - Note-taking with org-roam (https://www.orgroam.com/ https://www.orgroam.com/). This is the best Free note-taking system that I know of — it's like Roam Research, where you can have your own zettlekasten with backlinks etc. and it scales really well with a very large number of notes (it uses a SQLite database in the background). Notes, articles with images, I use this for so many things every day. - Encrypted notes. Emacs handles encryption elegantly out of the box. You can encrypt entire documents transparently (by adding a .gpg extension, for instance) using symmetric or asymmetric encryption, and Emacs will get your keys from gpg all automatically. You can also encrypt small sections inside a larger document. - Spreadsheets. I do all my personal spreadsheets in Emacs' Org Mode. It never ceases to amaze me how text formats can be so powerful. Works even on my oldest computer running Emacs from a decade ago. - Emacs Calculator. This is like a mini-WolframAlpha inside Emacs. I can solve equations, perform operations on dates, convert units, track returns on investments, simple and compound interest, the list goes on. And it integrates really well with the rest of Emacs as well. - Org Mode. This is possibly the best designed markup language. I take all my notes in this. You can have inline images, spreadsheets, code blocks with inline execution etc. Its support for literate programming is really awesome: it's like Jupyter Notebooks but for any language. (Emacs' Markdown support is really awesome and powerful, as well, with its previews and table handling etc) - Gorgeous typography. I run Emacs as a GUI app at all times, and it renders all my typography (proportional or monospaced) gorgeously which makes it a delight to look at and use (Ideal Sans + Verlag for notes (org, markdown, reST etc), Cascadia Code for coding with programming ligatures enabled). This is all in the raw text, not just in the preview like other editors. - Powerful macro support. A few other miscellaneous things that come to mind: - Powerful window management. I can split panes vertically, horizontally, and undo and redo my window layout, all out of the box. This makes working with multiple files a breeze, especially when you have to look at some of them at the same time, and/or move to different layouts on the fly. - Navigation and text-editing at a higher level of abstraction. With Emacs, I can navigate not just in the normal ways (by lines, characters, words etc.), but in various other context-dependent ways: e.g. Emacs understands sentences, functions etc. and I can navigate, delete, select, and manipulate text at a much higher level, allowing me to work with Emacs in ways that traditional editors cannot match. - Calendar. I use this for various things, like quickly finding out when sunset is. It can also tell you phases of the moon etc. if you need that, all out of the box. - Email using mu4e. Emacs can work as a beautiful mail client. I used to use this several years ago with mbsync (isync). It's surprising how offline email can let you search through all your emails literally instantly. And there's so much more depending on what you're looking for :) Emacs is like this retro piece of software that is paradoxically highly modern at the same time and actually better than the status quo. (It's snowing outside now. Let me go ahead and run M-x fireplace in my Emacs ;)