An emacs minor mode to easily switch between shell buffers (like with alt+tab)
Emacs Lisp Makefile Gherkin
Latest commit 28a7f75 Oct 29, 2016 @DamienCassou Remove most warnings
Permalink
Failed to load latest commit information.
features
script
test
.ackrc Modernize package structure using skeletor.el Feb 3, 2014
.gitignore
.travis.yml
AUTHORS Update copyright date Feb 3, 2014
CONTRIBUTING.md
COPYING Add necessary AUTHORS and COPYING files Jul 13, 2012
Cask
Makefile Looks like the order of loaded files is important Dec 11, 2014
README.md
requirements.txt
rswitcher.el Remove most warnings Oct 29, 2016
shell-switcher-pkg.el
shell-switcher.el

README.md

Emacs shell-switcher

Build Status

shell-switcher provides fast switching between shell buffers.

shell-switcher screencast A shell-switcher screencast

Installation

With Emacs' packaging system

Make sure you have marmalade repository ready to use and type M-x package-install shell-switcher.

Manually

Download shell-switcher from github and add it to your load-path. Then, add the following to your init file:

(require 'shell-switcher)

Configuration

To activate shell-switcher, you have to set the variable shell-switcher-mode to t, either through customize-variable or with:

(setq shell-switcher-mode t)

You have to customize shell-switcher-new-shell-function if eshell is not your shell of choice. For example, if you wanted to use Powershell:

(defun make-powershell ()
  "Create a new `powershell'."
  (powershell (generate-new-buffer-name "*PowerShell*")))
(setq-default shell-switcher-new-shell-function 'make-powershell)

Usage

The standard key bindings are:

  • C-' opens the first 2 buffers (one after the other) and switch between them
  • Repeating ' continues switching after an initial C-'
  • C-M-' forces the creation of a new shell
  • C-x 4 ' is similar to C-' but within another window.

You can change them by adapting and adding the following to your configuration file:

(define-key shell-switcher-mode-map (kbd "C-'")
            'shell-switcher-switch-buffer)
(define-key shell-switcher-mode-map (kbd "C-x 4 '")
            'shell-switcher-switch-buffer-other-window)
(define-key shell-switcher-mode-map (kbd "C-M-'")
            'shell-switcher-new-shell)

If you tend to create shells without using shell-switcher but still would like to easily switch between them, write the following (to be adapted if eshell is not your preferred shell):

(add-hook 'eshell-mode-hook 'shell-switcher-manually-register-shell)