The return of ‘Do You Even Lisp?’

I didn’t expect to drop off the face of the planet for nearly two
months.

But I decided to go off and learn lisp “in my spare time”—which took
a while. And then I decided that the best way to do that was to write
a minor mode for blogging to complement org-mode. And then I decided
that to give myself incentive, I wouldn’t do any blogging until I had
it working.

It took a little longer than I had hoped—in part because I think I
was overly ambitious; I was going to learn a new language well enough
to write an extension in it, and make it as functionally-pure as I
could, and make sure that it’s well tested….etc., etc. I wasn’t
just going to hack something out.

So it took a while. And there are still rough edges that I will
continue to file off. But if you can see this post, you know it’s
working.

Weekly Wrap-Up #3

So this is the two-days-late Weekly Wrap-Up #3. I spent the last two days doing my first real batch of elisp hacking of any significance, so I don’t feel too bad about missing the normal rhythm of things.

My big winner for this week is C-M-@ (mark-sexp), which made several moments in elisp hacking bearable—there’s inevitably a moment in any lisp code where the right parens start to pile up, and good luck with trying to figure out what to mark by hand.

I’m still not habituated to using TRAMP for editing files using sudo or ssh, which is unfortunate since I do that a lot. And the mark ring stuff still eludes me.

I think this week I’m going to take on registers and rectangles, and perhaps start building up a cheat-sheet I can use to keep the things I’ve discovered a little more present.

Weekly Wrap-up #2

This week saw me get very behind on writing these posts—I had a lot of other commitments, and I didn’t work hard enough to make the time.

I did find myeslf using C-o in the minibuffer a few times, and I did use M-<num> a couple of times when using numeric prefixes, but I didn’t make any great progress in efficiency.

One thing I did do, that I’m not quite ready to talk about here, is work a lot on my Org-mode setup. Though there are things about Org-mode that I do not love—the biggest of which is that it’s free-form-ness often leaves me feeling like good structure is impossible to find—it’s an astonishingly useful tool once you begin to adapt to it. I’ve been doing more of that of late—my use of org2blog for this blog is part of this—and I hope to do even more, perhaps even getting into writing some elisp.

But for the moment, I’m just trying to get the easiest way to do things under my fingers as quickly as possible.

I think next week, the Weekly Wrap-up will include a table of all the keystrokes I talked about, so I can more easily remind myself of what I am intending to use as things go along.

Weekly Wrap-up #1

This blog is supposed to be about what I’m learning and how the process of refining my use of Emacs is going, so each week I’ll be looking at what I wrote about in the past week (or perhaps earlier) and assessing how much I’ve been able to change my habits or otherwise make use of my new knowledge.

So this first week has gone pretty well—using M-g M-g (goto-line) instead of M-x goto-line has come up a couple of times and I’ve remembered the new way of doing things, and similarly C-/ (undo) for undo. The change back to the prior handling of line-move-visual hasn’t come up as much as I expected—I have a much wider terminal these days, so it’s less of an issue—but I’m nonetheless glad to have made the change back.

The one thing I’ve not internalized, and that I’m not sure I’m likely to internalize, is using C-LEFT (left-word) and C-RIGHT (right-word) for by-word cursor motion. The benefits versus M-b (backward-word) and M-f (forward-word) just don’t seem to be there—it turns out that for me, keeping my hands on home row outweighs the awkwardness of doing it all with one hand.

I’ve actually done a lot of other stuff this week, too—I’ve started using org2blog for all of my blogging (and will write about it shortly), reorganized my init process, started using ido-ubiquitous, and a few other things. But, for this week, this is the end.

Welcome to ‘Do you even lisp?’

I was first exposed to the Emacs command set some time in 1990, while I was a sophomore in college; I owned an Atari ST, and stumbled across a port of Conroy’s uEmacs for TOS. It was a good little editor—capable and easy to use. In fact, as I was learning C at the time, I spent some time converting the source to ANSI C as an exercise.

I have used and even become pretty facile with a couple of other editors—I spent a lot of my last couple of years of college using Turbo Pascal, whose embedded editor used a command set derived from WordStar, and in my first job out of college I spent a lot of time writing Clipper code using Brief—but I’ve always had Emacs hovering in the background.

Then in 1994 I lucked into a job as a system administrator for a Unix system and even started using Linux as my primary desktop OS. The logical editor for me to start using was GNU Emacs, and I’ve never really looked back.

I use GNU Emacs a lot, every day—I read my email using Gnus, I track my to-do list and log my work time using Org-mode, I edit all my code and writing in Emacs—but in many ways, I feel like I’m still a raw beginner.

When I watch something like Magnar Sveen’s Emacs Rocks videos, I am constantly amazed at the fluidity with which he does things that would take me much longer because I’m not familiar with a lot of capabilities that he’s using. And the little snippets of elisp that he uses to simplify things in his What the .emacs.d!? posts blow me away with their ratio of bang for the buck.

In light of all this, I made a conscious decision to start actually studying GNU Emacs in 2013—and then I decided to chronicle my study, in the hopes that it might help others discover new things in GNU Emacs. When I remembered the Do you even Lift? meme, well, naming things is always the hardest but most important part.

So, the plan is for a post a day. The subjects will probably start out utterly mundane and basic—”Hey, did you know there’s a keystroke for that?” sort of stuff—but I hope that, over time, they may come to be more complex and sophisticated—less a chronicle of my own personal journey and more a contribution to the store of knowledge about ways to use Emacs most effectively.