Posts Tagged ‘Vim’

(on Technorati , Del.icio.us)

Emacs and Org-mode

Well this is odd. I’ve returned to a text editor I was introduced to in university, but wasn’t really taken with until just recently. The editor is Emacs and the reason is org-mode. Apparently, my story is not all that uncommon and org-mode (with evil mode) has even converted many Vim users.

Emacs has been around since 1976. (Nineteen-seventy-six! And it’s still actively developed! That’s insane!) Org-mode is an Emacs extension (major-mode) that has been in development since 2003 and included in Emacs core since 2006. Org-mode is basically an everything-mode; it allows for really intuitive outlines and section management, source code blocks, inline evaluation of those blocks and literal programming, comprehensive exporting, intra- and inter-document hyperlinking, tables/spreadsheets, presentations, ….the list goes on, and on, and on. And on.

The Boston Emacs Meetup has quite a few good Emacs videos with live demonstrations, and I really enjoyed this one, by Harry Schwartz:

(YouTube: Getting Started With Org Mode)

As I continue to migrate all-the-things over to Emacs and Org-mode, it made me think about why I didn’t put more time into learning Emacs before.

When I was introduced to Emacs in university (somewhere around 2002 or 2003), org-mode was not included in Emacs and relatively young. At that time, Java was being promoted heavily in education, and for programming Java, it makes the most sense to use a Java IDE such as Eclipse or NetBeans which make the verbose language far more tolerable. So that’s generally what I did. But for my C or C++ programming, and general text file editing, I usually chose Emacs over Vi(m) due to it being more similar to what I was used to – but that’s it. I could move about in Emacs without leaving home-row, and I could make a few basic changes in VIM, save, and quit without panicking1. I could have been using Notepad++ and would have been just as happy. I was not taking advantage of either Emacs or Vim.

I never learned about org-mode until roughly 2 years ago (somewhere between June and August, 2016). Since then, I’ve gradually migrated as-much-as-I-fucking-can to these wonderful plain text files. I manage my work projects and todo lists. My agenda. My emacs config file. My blog(s); this post (via org2blog). I write documentation that can be exported into a variety of formats. And I keep learning new things; both for Emacs and for org-mode. Just recently, the org-mode time tracking finally clicked for me. I now schedule my days better and try to track where my time goes. This is extremely useful in evaluating what’s eating up my time, and estimating how long tasks will take so I can plan better.

2018-08-12_emacs.png

The draw of org-mode has also made me appreciate Emacs, of course. I connect to Jupyter notebooks via ein and work on them with conveniences not offered in the browser interface2. I’ve heavily customized my environment, picked up a bit of elisp, and I’ve started tweeking my own theme. I recently moved from primarily using Linux to primarily using Windows, which has presented a few challenges with Emacs’ setup, but it’s helped me develop a consistent environment between work and home.

Both Emacs and org-mode are powerful but take a significant time investment to configure and use effectively. Spacemacs, a distribution of Emacs that comes heavily pre-configured and tries to combine the best of Emacs and Vim, offers a simple way to see what an advanced setup could look like. It’s not how I started, and some consider it too bloated, but it’s very well put together and certainly worth looking at.

Anyway, I’ll probably be reviving this blog with the odd org-mode or Emacs post, as that is what I’m playing with, these days. But in addition to the video above, a good intro would be Carsten Dominik (org-mode’s creator) presentation at Google:

YouTube: Emacs Org-mode – a system for note-taking and project planning

Footnotes:

1

I have a great appreciation for Vim’s modal editing and language. Tempted to use Evil Mode, but I have enough things on my plate, at the moment. 🙂

2

I want to investigate moving my Jupyter notebook products to org-mode files under Git, only exporting them to notebooks, when needed… but that’s probably a separate post.