MultiShell

    Organize interaction with multiple local and remote shell buffers in Emacs.

    multishell was previously called pop-to-shell . It is available through the emacs package system or via my git repository, https://github.com/kenmanheimer/EmacsMultishell.git.

    Here's a full description from the package entry:

    ;; Author: Ken Manheimer <ken.manheimer@gmail.com>
    ;; Version: 1.1.10
    ;; Created: 1999 -- first public availability
    ;; Keywords: processes
    ;; Package-Requires: ((cl-lib "0.5"))
    ;; URL: https://github.com/kenmanheimer/EmacsMultishell
    ;;
    ;;; Commentary:
    ;;
    ;; Easily use and navigate multiple shell buffers, including remote shells.
    ;; Fundamentally, multishell is the function `multishell-pop-to-shell' -
    ;; a la `pop-to-buffer' - plus a keybinding. Together, they enable you to:
    ;;
    ;; * Easily get to the input point from wherever you are in a shell buffer,
    ;;   or to any of your shell buffers, from anywhere inside emacs.
    ;;
    ;; * Use universal arguments and name completion to launch a new or choose
    ;;   among existing shell buffers, and change which is the current default.
    ;;
    ;; * Easily restart exited shells, or shells from emacs prior sessions.
    ;;
    ;; * Specify an initial path for the shell. By using Emacs tramp syntax you
    ;;   can launch a sudo and/or remote shell.
    ;;
    ;;   For example, specifying the following at the multishell buffer name
    ;;   prompt will:
    ;;
    ;;   * `#root/sudo:root@localhost:/etc` launch a shell in a buffer named
    ;;     "*#root*" with a root shell starting in /etc.
    ;;
    ;;   * `/ssh:example.net:` launch a shell buffer in your homedir on
    ;;     example.net.  The buffer will be named "*example.net*".
    ;;
    ;;   * `#ex/ssh:example.net|sudo:root@example.net:/etc` launch a root
    ;;     shell starting in /etc on example.net named "*#ex*".
    ;;
    ;;   * `interior/ssh:gateway.corp.com|ssh:interior.corp.com:` via
    ;;     gateway.corp.com launch a shell in your homedir on interior.corp.com.
    ;;     The buffer will be named "*interior*". You could append a sudo hop,
    ;;     and so on.
    ;;
    ;; * Thanks to tramp, file visits initiated in remote shell buffers will
    ;;   seamlessly be on the hosts where the shells are running, in the auspices
    ;;   of the account being used.
    ;;
    ;; * Manage your list of shells, current and past, as a collection.
    ;;
    ;; * Of course, emacs completion makes it easy to switch to an already
    ;;   existing shell buffer, or one in your history roster, by name.
    ;;
    ;; See the `multishell-pop-to-shell' docstring for details.
    ;;
    ;; Customize-group `multishell' to select and activate a keybinding and set
    ;; various behaviors. Customize-group `savehist' to preserve buffer
    ;; names/paths across emacs restarts.
    ;;
    ;; Please use
    ;; [the multishell repository](https://github.com/kenmanheimer/EmacsMultishell)
    ;; issue tracker to report problems, suggestions, etc, and see that
    ;; repository for a bit more documentation.