PyCharm (and other JetBrains products) has wonderful feature — "contexts".

You can configure task server (e.g Github Issue Tracker, Redmine, Trello, etc or use built-in one). When you switch task this feature saved open tabs with files, branches, tasks and everything related to current task and than you can easily turn back to this "context".

Is there anything similar for Emacs (I'm about context plugin)?


Dunno exactly what constitutes a "project" in your context, but have a look at desktop bookmarks, with Bookmark+.

An Emacs desktop records (and subsequently restores) the kinds of thing you mention: frames, windows, buffers (open files etc.), variable values,... With only vanilla Emacs, people tend to use only a single desktop, and they use it only to save the final state of an Emacs session and restore then that state when the next session starts.

But with Bookmark+, you can easily switch among any number of desktops, just by "jumping" to desktop bookmarks.

Command bmkp-set-desktop-bookmark (bound by default to K on the bookmark keymap, which is by default on prefix key C-x p (so C-x p K), saves the current Emacs state in a desktop bookmark (or updates an existing such bookmark).

Command bmk-desktop-jump, bound by default to K on the bookmark jump keymap, which is by default on prefix key C-x j (so C-x j K), prompts you for a desktop bookmark name (with completion), and jumps to the one you choose, which means that it switches Emacs to that desktop.

Command bmkp-cycle-desktop (not bound by default) cycles through your desktop bookmarks.

  • Not exactly what I want, but looks like single solution for this task, so thanks. Aug 13 '16 at 12:13

Looks like I found what I was looking for: https://github.com/nex3/perspective-el

This package provides tagged workspaces in Emacs, similar to workspaces in windows managers such as Awesome and XMonad (and somewhat similar to multiple desktops in Gnome or Spaces in OS X).

perspective.el provides multiple workspaces (or "perspectives") for each Emacs frame. This makes it easy to work on many separate projects without getting lost in all the buffers.

Each perspective is composed of a window configuration and a set of buffers. Switching to a perspective activates its window configuration, and when in a perspective only its buffers are available by default.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.