Atom Editor (and my rambling Programming Tool History)
I’ve started on a bit of an exploratory journey into the realm of one of the popular "modern" text editors that I have heard so much about in various blogs that I follow.
In many circles this would start a massive religous flame war. I just wanted to see what some of the fuss was about and to see if atom can stand up to what I expect an editor to do.
My editor background is a bit circuitous. I started out using Emacs but my dang small hands made the chord keybindings a bit harder than they needed to be. Even mapping CTRL to Caps Lock (which I still do) I got frustrated with the Emacs workflow. And I gave it a really fair swack at it too. At one point I was using GNUS buffers for my work email, elinks buffers for documentation webpages and the forums at work, an irssi plugin for our XMPP server, as well as terminal buffers and heavy use of tramp for remote editing. Emacs was practically my WM for almost a year straight.
I can’t really talk about editors and workflows without mentioning terminals and window managers. At the time I was using Emacs I was also using Xmonad for 95% of my linux desktop usage, and I use linux 70-90% of the time (closer to 95% these days now that Steam runs well in Fedora).
Another important workflow for me is editing configs, viewing log files and other activities like that on various remote hosts at work. For me that really meant vi or vim was the main, fully featured editor that would be available to me everywhere. So after a time I leaned more and more on the tiling window manager and separate single use tools rather than Emacs to handle things for me. I switched to mutt and w3m. I use Vimperator or whatever the plugin is called for that other browser (I just can’t remember which is which) in my graphical browsers.
After time I learned and migrated over to Vim. I added a few basic plugins but I left most keybindings at the defaults even though I use a Dvorak layout.
At some point I chose to switch to Awesome WM from Xmonad because I understand lua better than Haskell. Shame on me, I know. I also started using Tmux at some point so that I can disconnect from and switch between various sessions. This is very useful on my remote VM at Work since I can have a single logical session across multiple logins over the course of a week. Very nice for working on a project without incurring the start time each work period.
Even more recently, back in May, I started using neovim. I was attracted to neovim because of the python libraries and the direction the community seems to be taking it. However, since I have a Mac now (shame on me again I guess) I was a bit unsatisfied with the GUI applications available for both macvim and neovim.
This leads me to today with Atom. Atom seems to be consistent across both Mac and Linux so far, and I plan to try it out on my Windows Work VM too to see if it will fit the bill.
Since I’ve only been using Atom for a few hours so far I have to admit that I’m not up to the same productivity that I have with Vim or Neovim right now. That said I’m very impressed so far and may eventually be convinced to switch to Atom altogether.
One thing I must stipulate. I’ve come to love the modal editing style of Vim and I absolutely require one of the Vim Mode plugins (Vim Mode vs Vim Mode Plus) for Atom to be comfortable.
I like that I can match many of the settings in the default settings dialogue to my vimrc and they’ve thought of the most important behavior settings that I need.
I also like the aesthetics so far. I’m color blind (just red-green) so I appreciate the high contrast of the One Dark themes. I’m an engineer not a designer and I use a tiling linux system where most of the time I stare at a dark terminal with text or at a full screen browser. Functionality to me is key, but hey, Atom is pretty too. :)
One of my favorite features of Atom is the package manager. Everything else is easy to use and straight forward but it’s mostly all expected for a real editor. The package manager is different. It really streamlines the process of configuring the editor to suite your needs. Need better support for folding, boom somebody has written a package for that. Need better support for a language or something, you are likely also covered. It’s fairly nice. The package manager can also be used from the terminal I see - apm - but I haven’t tried it out myself yet. If I stick with Atom for very long I will have to automate my configuration using "apm" in a shell script.
I think, I will have to leave this update at that so far. I need to play around with the editor a little more before I render a verdict on it. So far I like it, so far it suites most of my needs. Most importantly it is vim like enough that when I need to use vim on a remote host I’m not hampered by my muscle memory too much.