Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
An emacs minor mode to easily switch between shell buffers (like with alt+tab)
Emacs Lisp Makefile Cucumber
Branch: master

Merge pull request #8 from miabrahams/master

Added an example configuration function
latest commit f2878f4680
@DamienCassou authored

README.md

Emacs shell-switcher

Build Status Coverage 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)
Something went wrong with that request. Please try again.