Endless Parentheses

Concise ramblings on Emacs productivity.

Fine-tuning subtree visibility in org-mode

Org is one of those packages that you can use for a lifetime and still not know all of its features. One of the first things you learn is how to use the #+STARTUP header to define the initial visibility of headlines when you first open an org-mode file. But did you know you can also use that on a per headline basis? [...]

How I blog: One year of posts in a single org file

When this blog was conceived, I decided that I wanted it to be entirely contained in a single org file, and that this would also be my Emacs init file. On the blog’s very first post I explained how to implement the latter, an init file that also serves other purposes. Today, Endless Parentheses turns 1 year old, and it’s time to explain the former, how to turn a file into a blog. [...]

Create Github PRs from Emacs with Magit (again)

I don’t usually dedicate an entire post to something I’ve already done in a previous one, but this nugget is so useful it deserves the attention. Remember how you can create Github PRs straight from Magit? Magit 2.1.0 is barely two weeks away, and it brings so many (awesome) changes that our little snippet is going to break. [...]

Better compile command

Having to confirm-before-save buffers every time you call compile is nearly as outrageous as having no key bound to compile in the first place. This snippet takes care of both and, as a bonus, makes the compilation window follow a predetermined size and ensures that point will follow the output. [...]

New in Emacs 25.1: Archive priorities and downgrading packages

This is the feature I’ve been wanting to show off the most. Anyone who’s configured Emacs to use more than one package archive knows this problem. The package menu displays countless redundant entries, as it must list a package once for each archive that offers it. Even worse, if you install a package from one archive, the package menu will gladly upgrade it to a newer version on another archive, clueless to the fact that it may be giving you unstable code. [...]

New in Emacs 25.1: Filtering by status and archive

For several reasons, the Package Menu’s f key has always flown a bit under the radar for me. Though the package-menu-filter command is great in principle, in practice its usefulness falls a little short for several reasons. [...]

New in Emacs 25.1: Asynchronous Package Menu

It was six months ago, to the day, when I alluded to the fact that Emacs’ package menu needed to go async. The time it took to do a simple list-packages bothered me the most, closely followed by having to go play Minesweeper every time I did a package upgrade. The latter was partially addressed when I added asynchronous package transactions to Paradox, but the former took a bit more work. In Emacs 25.1, at last, the package menu is going async. [...]

New in Emacs 25.1: User-selected packages

In Thurday's post on dependency management, I briefly mentioned that package.el now keeps track of which packages the user explicitly requested, and which were pulled in as dependencies. But there’s a bit more to this feature, so it deserves some time in the spolight. [...]

New in Emacs 25.1: Better dependency management

Package.el has gotten a series of improvements after the release of 24.4. Since I’ve found that people like to read about upcoming features, I’m starting a new series exclusively about our favorite package manager. Today, we talk dependencies. [...]

Proof general configuration for the Coq Software Foundations tutorial

Proof-general is a powerful client for the Coq proof assistant, and Software Foundations is great interactive tutorial for the language. As I was following the tutorial, I felt the need to speed things up a little bit. Today’s post is just some configuration code I wrote for that effect. [...]

Ispell and Apostrophes

If you’ve been following our journey of typography, you must now have pretty apostrophes all over your org documents. But if that’s the case, you probably also noticed a drawback. Ispell doesn’t like them very much. Now how are we supposed to use our amazing auto-correct? [...]

Upgrading ace-jump for ace-window

It was a few years ago that I learned about ace-jump-mode in one of Magnar’s Emacs Rocks episodes. Over this time, slowly but surely, this one simple command has completely taken over my workflow. It was only last week that I realised how ingrained it is on my muscle memory. As I shared this thought on twitter, @_abo_abo’s ace-window was mentioned in the conversation and I decided to give it a try. [...]

Comment boxes

This tip comes from colleague of mine. Ben has a mailing group at work where he sends weekly Emacs tips. They’re always short and useful, but today’s tip was quite the gem for me. Emacs has a comment-box command. [...]

Debug your Emacs init file with the Bug-Hunter

“With great power comes great responsibility,” and Emacs is a prime example of that. The versatility of having an editor that’s a lisp interpreter is truly empowering, but it can also backfire on you in the most unexpected ways. If you’ve ever ran into a foggy incompatibility issue between two unrelated packages, that manifested itself by turning on your mother’s coffee machine every other weekday, then you know how difficult this can be to track down. [...]

Better backspace during isearch

I’ve never been too pleased with the default behaviour of Backspace during isearch. If the last key you hit was C-s, then it does the same as C-r (albeit with less repetition), and if your match failed several characters ago, you need to hit it that many times to get back on track. Fortunately, asmeurer took the time to phrase this problem I barely realised I had. [...]