DEV Community

Slick3gz
Slick3gz

Posted on

Anyone still using Emacs?

I’ve been through a few code editors & IDEs. Been using VSCode on and off for the last couple years. A few others I have used over the years include DEV-C++, Eclipse, Atom, Code Blocks, Notepad++, Visual Studio, and some others I can’t remember 🤔. Lately I have developed a renewed interest in Emacs. I tried it before but didn’t really invest any serious time in learning how to use it. For some reason I woke up yesterday morning and decided to hop on the Emacs 🚂. I know people choose up sides and are very dedicated to their code editors or IDEs. Just really wondering how many devs use Emacs consistently in their workflow?

Latest comments (70)

Collapse
 
jeremyf profile image
Jeremy Friesen

I switched from Atom to Emacs in 2020. I even tried VS Code and Vim before giving Emacs a go. At this stage, I'm "Emacs for Life".

Collapse
 
dwgillies profile image
Donald Gillies • Edited

Emacs was basically the first editor that would balance (blink matching) parentheses by default. I started using it when it was recommended for an introductory undergraduate course in LISP at MIT. You either used Emacs or you flunked the course. I suspect it still has the most productive programming engine of any editor, and the most custom-file modes. Emacs is like Apple computers. People may earn their livings programming other computers but they program Macs (and e-Macs) because it's FUN.

I use gnumacs reprogrammed to be Gosling's Emacs (James Gosling wrote the first emacs for UNIX in ~1986). I have a mode file called "gosmacs.el" which uses most of the same key bindings as Gosling's emacs which is a 1970's / early 1980's emacs. Stallman keeps pissing people off by changing the keybindings but I'm not subject to his flavor-of-the-month whims in this regard.

Collapse
 
mexisme profile image
Will • Edited

Over the years, have tried so many: BBEdit, TextPad, Sublime, Vim, Atom, IDEA, Eclipse, etc, but have spent most time on Emacs due it's complete configurability.

I moved to VSCode for a few years after Emacs config. started becoming a bit too onerous. It this was a very, very good experience overall even though it was noticeably less-mature, especially some extensions.

I moved back to Emacs (via Spacemacs) after getting tired of fighting simplistic config in extensions, and missing supreme packages like Magit and Tramp-mode — while Git Lens and Remote Dev extensions are very good, they're still years behind.
Spacemacs completely changes the entire config experience, and Evil mode (i.e. Vim) is surprisingly helpful for certain kinds of editing tasks.

Being able to edit in a terminal can also be unexpectedly helpful.

I can easily believe VSCode will catch up in time, however!

Collapse
 
slick3gz_ profile image
Slick3gz

Over the past month I’ve been using ssh to connect to an Arch Linux box I’ve set up. Vim has been my goto editor for this. I haven’t even messed with my .vimrc and have been reasonably productive. The switch from VSCODE w/ vim bindings to regular vim took a little adjustment but I think I’m starting to hit my stride. It remains simple enough to use that I can focus on what I’m trying to learn without having to deal with all the extra bells & whistles.

Collapse
 
slick3gz_ profile image
Slick3gz

I do like the Vim editing features and I find myself looking for Vim key bindings in most programs. I mostly use VSCode right now because I’m trying to level up my JS skills. I tried using Xcode last night while playing with C but I missed the Vim key bindings. My Emacs usage has fell off quite a bit. If I get into C development I may have to give it another try.

Collapse
 
slick3gz_ profile image
Slick3gz

Just an update from me on my use of Emacs. A year later I haven’t used Emacs much. I’ve been using VSCode with Vim bindings. I started looking at Vim around the same time I was toying with Emacs. I just went with Vim because it seemed more to my liking. I think VSCode is pretty popular but I think the Vim bindings make editing a little easier. Just my personal journey over the last year with editors.

Collapse
 
the_happy_hacker profile image
Ian Pan

I've been using Emacs for the past 2 years. I've bundled my experiences to create a lightweight Emacs distro with better defaults to help beginners, have a look if you're interested: github.com/ianpan870102/.emacs.d

Collapse
 
ricardoamaro profile image
Ricardo Amaro • Edited

I've shared a set of configurations for Emacs start here: github.com/ricardoamaro/.emacs.d

Enjoy!

Collapse
 
mydavoodeh profile image
M. Yas. Davoodeh

Dev? No thanks, I'm just a student xD. But it's just like a week since I've installed it. I've hopped from IntelliJ fam (PhpStorm which I love so much) and the reason was bcoz it's free and it's SO lightweight. My main machine has no trouble with IntelliJ fam IDEs but my RBP? well, it takes 2 minutes for it to JUST boot up xD.

Much to my astonishment how it is still warm in the Emacs world in compare to apps like Atom and Vim. As of yet it still has great support and the community is like heaven. Everybody supports noobs and it's customizable as hell. I just hooked right in like after the first hour.

BTW I use Doom-Emacs which greatly boosts the workflow and believe me even weeks of customizations cannot keep up the pace with that.

Collapse
 
stradicat profile image
Dennisn't 🎻

I began programming last year, and jumped into Spacemacs for 2 reasons:

  • My low-resource laptop for web development has only 4Gb RAM (can't afford an upgrade right now)
  • Configuring in elisp sets me in a programming mindset

Just hook up every mode possible to the appropriate lsp server, and you've "VSCode-ized" Emacs.

I'm currently using it for Javascript / NodeJS / React, C / C++, Go, Python.
Low footprint in old machines that one can repurpose for development work, for a few bucks. (got a T410s ThinkPad for $140)

Collapse
 
migueldaviddvi1 profile image
Miguel David Dávila Palomino

I love emacs. I know it is hard to convince your colleagues to use it. Here in Peru, I have never found a single person who loves it, although I must say I am a psychologist so my group of people tend to use ugly programs such as SPSS to run statistics. However anytime I can, I use emacs with the ESS package and shows how amazing is the data science programming world.

Collapse
 
ilemming profile image
M-x tips • Edited

There is a few types of developers:

  • Those who have mastered Emacs and have become enormously productive with it and to some degree developed Stockholm syndrome type of relationship and would stay with Emacs even if it could hurt them (e.g.: work doesn't permit use of Emacs, they refuse to stay on that job)

  • Those who have read about it, seen a few of Youtube videos, etc. and refuse to try it because they think it's archaic and clunky and they simply don't understand why some people are crazy about it (like people of the first category)

  • Those who tried it for a bit, didn't have patience to learn it and moved back to whatever is shiny and popular for the next two years. They often brag about the experience: "Oh yeah, I've used Emacs. It's not for me"

I think it would be fair to say that the second category always had the biggest crowd. Yes, Emacs is not for everyone. It ain't simple blue pill/red pill kind of a thing. It requires a serious commitment. It may take months to develop skills that would make you positively more productive than ever before. And even then it does not guarantee an enlightenment to every single user. But those who give it a true heartfelt try usually come to realization that truly, nothing can beat Emacs. Whatever shiny cookie-cutter feature gets added to other editors/IDEs - sooner or later it gets replicated in Emacs. Just be patient and persistent - who knows, maybe it would be you who implements that shiny thing for Emacs.

Collapse
 
vatrat profile image
vatrat

Spacemacs here. I used neovim for a while, vim before that. I really don't like Visual Studio, I can almost feel a cubicle materializing and closing in on me. You'd think I'd like it, since I tend heavily toward the kitchen sink approach to dev environments. The crucial difference is that literally, and I cannot stress this enough, LITERALLY EVERYTHING in emacs is able to be changed. The internal structure of vim is C. The internal structure of VS is... I don't want to know. The internal structure of emacs, above a certain point, is emacs-lisp. If you don't already know, this means you can change emacs while you use it, as well as lots of other nice things like being able to "hook" into a function to make code run whenever it runs, without changing the original function at all. So, you can change and tap into the functioning of every little thing. Don't like the way this particular minuscule item works, something so small you'd have a hard time getting a developer to care? Easy, change it in less than a minute. I use evil-mode in general because I prefer vim's editing style, and Spacemacs in particular because I'm not that familiar with emacs, and the way it's set up works very well for me. In particular, helm was an incredible shock coming from vim, where I had to set up and remember every little leader key combination myself. I switched to spacemacs right around the time I was running out of space for leader key combinations on the keyboard, and looking for a way to have multiple leader keys (I didn't find one).

Now, outside of this, why emacs in particular? You can do pretty much anything and have it feel natural, like it was made to do this. Do something the first time, figure it out, optimize it so it's easy. It grows around you until you can focus on the task at hand. This style of growth, coupled with the incredible wealth of packages available for emacs, means it can do pretty much anything any IDE can. I timed a friend who uses VS on a particular task related to compilation and git integration as a test, and I was able to do it faster. In general, so much of working with normal IDEs feels so forced and structured. This menu is hard to use, has a bug, or doesn't really fit what you're doing (ex. a file prompt makes you do files one at a time)? Fuck you, that's the answer. With emacs, if there's something you can do, then you can change and automate that something for ease of use or use in a larger task to be automated.

In terms of UI, one of the best developments from emacs is the idea of major and minor modes. This allows your development environment to be adaptable and change immediately, having things like context-based settings, keybindings, behaviors, and features.

I don't see myself moving from emacs until we move to a more direct way of interfacing with computers, like direct telepathy, and even then I'd probably try to migrate emacs to that environment. It really is, as it has been called, the "editor of a lifetime". As well as an editor and IDE, I currently use it for my todo-lists (org-mode), notes, interface to google translate, calculator (I could write a whole thing like this on emacs-calc), remote environment, occasionally terminal, and more.

Collapse
 
michaelangelozzi profile image
run_the_race • Edited

Actually not " LITERALLY EVERYTHING in emacs is able to be changed". The first thing I tried to change (How I exit normal mode in Vim) I was told is not possible... emacs.stackexchange.com/questions/...

Collapse
 
vatrat profile image
vatrat • Edited

I had to remake an account for this, but I got this as an email. I understand that this is something you want to do, but it's important to note that this isn't a feature of vim, as was answered on stackexchange. You COULD write a function that emulated the behavior you're seeking, but it'd be a bit of a pain for a new user, and it'd most likely get in the way of other things. Mostly, though, why do you want to do this? What's the advantage of holding alt and pressing a key rather than pressing escape and then the key?

Edit: also important here, are you doing this in gui or terminal emacs?

Thread Thread
 
michaelangelozzi profile image
run_the_race

Using the Gui emacs. The reason is because the change from insert mode to insert mode is virtually seamless. After typing and say I wish to go down a line, press ALT-j and carry on. Or to type a command ALT+: One doesnt have a dead step of this key press is to change modes. Its about doing something, then doing another thing. I find it very fast and efficient. Judging by the lack of response to the question shows that it is not easy for even an experienced user. I to figure it out with maybe advice'ing a function but got no where.

Thread Thread
 
dalanicolai profile image
Daniel Nicolai

I did not know about this feature in Vim. But I have set up somehing similar in Emacs. It is just a matter of adding the keybindings. For example I use C-j/h to move the cursor left/right in insert mode (which I could as well have configured as M-j/h. And I could very easily add C-j/k to use it for scrolling from insert mode, but I have these mapped to switching buffers, see here). If you would like to map all keys in insert mode at once, then you probably should copy the normal-mode map into some meta key prefix map or something. This indeed requires some more reading (or experience). But if you get to know Emacs well, than you will see how easy it becomes.

Maybe this single thing is easier in vim, because vim is configured like that by default. But generally my experience is that Emacs is much easier, and more configurable than Vim, which is also the reason why I switched from vim to Spacemacs.

Collapse
 
slick3gz_ profile image
Slick3gz

Sounds like you really enjoy the Emacs experience. I also like the ability to customize the editor and just about anything else. I’m still getting used to everything, but slowly starting to figure things out.

Collapse
 
vatrat profile image
vatrat • Edited

Be sure not to spend too much time at once in making everything perfect, try to use it to do actual work and fix any problems that crop up, then do extensive customization later. It's easy to see the editor as an end rather than the means to an end.

Thread Thread
 
stradicat profile image
Dennisn't 🎻

As a Spacemacs user, I fully agree.

Collapse
 
darkslategrey profile image
Grégory Faruch

Started with emacs in 1996. Since two years I use spacemacs with vi key bindings. Very very powerfull. The only downside I see is the need of heavy computers. Big mem / cpu

Collapse
 
set808 profile image
Spencer Taylor

I went to Holberton School and we are only allowed to code in Emacs or Vim exclusively

Collapse
 
slick3gz_ profile image
Slick3gz

Was watching an Emacs Meetup talk on thoughtbot’s Youtube. Had a professor from Penn say that he told his student that he didn’t care if they picked Vim or Emacs... but they had to pick one or the other 😂

Collapse
 
set808 profile image
Spencer Taylor

It's honestly a big benefit starting with one of those over say VS Code. When you can only work from the command line, the speed with which you are able to complete tasks doesn't even compare to using a GUI text editor. I do a lot of front end work now so VS code is a better fit for my workflow now, but I have a real appreciation for Emacs.

Collapse
 
shanbhardwaj profile image
shanbhardwaj

All day, Everyday!

Collapse
 
niorad profile image
Antonio Radovcic

I used it for some months, inspired by Handmade Hero.
Spent some time customising it myself, also used Evil-Mode.
I think Magit and Org-Mode are still the best tools in their field, and it's worth to run Emacs solely for them.
I switched to VSCode eventually. It became too much of a hassle to use modern front-end-tooling in Emacs, and VSCode has most of it out of the box.
Plus I love nice visual interfaces.

Did you try "Zone Out" yet?

Collapse
 
slick3gz_ profile image
Slick3gz

Haven’t tried “Zone Out” yet. Just getting started learning org-mode and magit. Magit seems really nice from the get go. I can already see why some people like it so much. Org seems to have a lot to offer as well. The ability to execute code in my org files already seems like a win.

What modern tooling are you using that you feel doesn’t really mesh with Emacs?

Collapse
 
niorad profile image
Antonio Radovcic

I think it was Prettier back then. Also I had some troubles getting modern JS-Syntax to display correctly. I'm sure all of that is fixable and probably fixed by now, I just haven't had the time to tinker around with the config.