Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Not exactly tabs, not exactly bookmarks
Emacs Lisp
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

The only rings I care about are onion rings

M-x package-install rings

The problem with C-x b is that most buffers don’t matter and you need to spend some attention to filter them out.

Keeping things in different tabs isn’t also an ergonomic solution, because you’ll need a different set of tabs for each activity you do inside Emacs, like editing code, editing server stuff, chatting on IRC, etc.

I used to solve this problem by having different virtual desktops for different activities, but this doesn’t work so smoothly on MacOS, so I created this package to provide a similar workflow.

Suggested keybindings

Here’s what I have in my init.el:

(global-set-key (kbd "<f2>")   (rings-generate-cycler 2))
(global-set-key (kbd "C-<f2>") (rings-generate-setter 2))
(global-set-key (kbd "<f3>")   (rings-generate-cycler 3))
(global-set-key (kbd "C-<f3>") (rings-generate-setter 3))
(global-set-key (kbd "<f4>")   (rings-generate-cycler 4))
(global-set-key (kbd "C-<f4>") (rings-generate-setter 4))

How does this work?

Suppose you want to chat at Freenode’s awesome ##latin channel and at the same time not be too far from the latin dictionary provided by SaaXy. With the keybindings above, you can add both buffers to a ring by pressing C-<f2> inside each of them. Now, to cycle between them, just press <F2>

More common is having to edit multiple objects, each of which has a model and a view. You could add Object A’s buffers to a ring, Object B’s to another ring, all views to a third ring and all models to a fourth. Your imagination is the only limit!

You can also ignore this ring thing and use the package just for bookmarks. This is useful when you are editing many files from a directory, and need a way to quickly return to it. I often use it with dired, adding a key directory to the <f4> ring, to make it available in a single keystroke.

Something went wrong with that request. Please try again.