11 ms·
I once wrote a long comment on Hacker News about how I wasted 2 years on trying to learn emacs. I wish I could go back and stop anyone from ever reading it in c
by _mlxl 6y ago
I once wrote a long comment on Hacker News about how I wasted 2 years on trying to learn emacs. I wish I could go back and stop anyone from ever reading it in case I put someone off from trying it.
I was in a weird place at the time and scapegoated emacs for my lack of productivity. Don't get me wrong it is possible to spend a lot of time fiddling with your config files for emacs.
I picked emacs up again after I quit my last job (quitting made me almost immediately a happier person). I decided to only use packages that would help me to write code, and EVIL mode. So lsp-mode (and the associated lsp-servers), flycheck for syntax highlighting, DAP for debugging & breakpointing code, magit for git and Projectile for project management.
I read the documentation thoroughly for each plugin to actually see what it was doing, and many times jumped directly into the source code of the plugin to see how it was moving under the hood. I started using org-mode to document my journey into each plugin and grew really fond of the ability to collapse points under headers and freely move the headers about in the file with a few keystrokes.
I loved that I could create my own IDE using emacs-lisp. I have a completely minimal interface with just the mode-line and the pane of text. No gaudy menus, no enormous always present side panel, no top bar. Just me and the text. When I start the program it loads an empty window. There are no distractions in emacs, and no incentive to ever add them. And if Stallman ever decided to sell out, I have a fork of the code at its current version which I could use forever.
I jump between backend and front end code in emacs and due to the hooks and mode setup, it always knows the right things to turn on to make it easier to work on that specific chunk of text.
Emacs is an alien technology. It has so much power I didn't know what to do with it at the start and that scared me. I dedicated a bit of my life to it, and now I am confident knowing that if I pick up a new language in the future I will be writing it in emacs.
- burntoutfire 6y agoI wish someone did a thorough comparison of emacs with the newer extensible editors, such as Sublime. Is there something substantial that Sublime users are missing?
- AJRF 6y agoI'll give two examples to showcase features other editors are missing - ownership over the editor, and the extent to which you can build on top of existing primitives. 1. Can you change where the command palette shows up in Sublime? In emacs (M-x is our Command Palette) I can not show it, I can show it as a full width pane that takes up 50% of the screen, or I could recreate the Sublime Text look and feel (top of the screen X width, Y height). This looks like a toy example but I'm trying to show that there is not a single part of emacs I don't have control over. 2. Okay how would you do the following in sublime; Your company is getting into credit checking. As such you now are beholden to certain rules and regulations around the safety of your code, and now your product owners want an update every time CreditCheck.java is modified by someone. They want to be notified in a Slack channel and also by email. They don't care if the top 30 lines are changed, but anything after that is important. In emacs, I would make a hook for CreditCheck.java that any time I saved the file, it would run through the changes, check if there is a diff from line 31 onwards, and if so send a slack notification and send-mail the diff to the product owners. I would just open my settings.org file and add the emacs-lisp to do this and I wouldn't even need to restart to avail of it - I could just load-file and have it working. All within emacs. You could do this via a tangle of shell commands sure - but emacs lets you do it emacs-lisp with ease. Programming in the real world is full of stupid like processes like this, and emacs makes it easy to accommodate them. (Not saying that you should accommodate them, but the real world can be messy)
- sverhagen 6y agoI think that most companies would not find it adequate for the compliance regulations to be implemented "client-side". Mine would certainly answer your question: "how would you do the following in Sublime" with: "not at all", or: "please don't". As for your former point of configurability; all power to you; I think that there is a spectrum where many folks choose to be more on the end of the spectrum where there is paved roads of using an editor that looks a certain way through the consensus of its users. Instead of picking between a super-configurable editor and one that isn't, I think many users choose between two less so configurable editors (I imagine IntelliJ and VS Code are good examples) for the one that just suits them better than the other.
- ubermonkey 6y agoI think that's a completely fair question. If you're not on desktop Linux, and you don't have years of experience using emacs, I'm not sure there's a great reason to switch to it from Sublime (or any other extensible editor) just on the merits. I tried emacs many, many times over the years, and always ended up going back to something more modern because I liked them better -- BBEdit, TextMate, Sublime, etc. (I'm leaving aside the FOSS arguments here, which are reasonable and fair; I just mean workflow/feature reasons.) All that said, I did end up converting to emacs eventually, about 5 years ago. Why? OrgMode. I couldn't find anything else that did what I really wanted in terms of note-taking and to-do tracking, and what I wanted seemed to me to be pretty simple: I wanted to be able to write in plain text, keep notes in multiple files, use outlining, and have some kind elaborate searching tool that would filter through them and show me the lines I'd marked as to-do. Interleaving the notes with the todos was mandatory for me -- I need context. Obviously, I could write something simple to do this, but OrgMode is built around this idea from the getgo and works BEAUTIFULLY. And to the best of my knowledge no such equivalent exists for Sublime, or any other extensible editor.
- tomjen3 6y agoToday I needed to be able to insert the current date in emacs and I found the lisp code to do so online, hacked it to give the output I liked and then added it to emacs - the program I used to edit the code with? The same running version of emacs that I loaded and tested the code with. I don't know any other editor that can do that.