]> code.delx.au - gnu-emacs-elpa/blob - packages/multishell/README.md
Merge commit '0cda39255827f283e7578cd469ae42daad9556a2' from js2-mode
[gnu-emacs-elpa] / packages / multishell / README.md
1 multishell.el
2 =============
3
4 Facilitate use of multiple local and remote Emacs shell buffers.
5
6 Multishell is available via Emacs package manager, [in ELPA](https://elpa.gnu.org/packages/multishell.html). Install "multishell" from the `M-x package-list-packages` listing.
7
8 I use the emacs shell a *lot*, including separate shells for separate
9 project, and more shells for access to remote systems (which I do a lot, as
10 a systems administrator). On top of emacs' powerful shell and tramp
11 facilities, use a `multishell` (customization-activated) key binding to:
12
13 * Get to the input point from wherever you are in a shell buffer,
14 ... or to any of your shell buffers, from anywhere inside emacs.
15
16 * Use universal arguments to launch and choose among alternate shell buffers,
17 ... and change which is the current default.
18
19 * Easily restart disconnected shells, or shells from prior sessions
20 ... the latter from Emacs builtin savehist minibuf history persistence
21
22 * Append a path to a new shell name to launch a shell in that directory,
23 ... and use a path with Emacs tramp syntax to launch a remote shell -
24 for example:
25
26 * `#root/sudo:root@localhost:/etc` for a buffer named "#root" with a
27 root shell starting in /etc.
28
29 * `/ssh:example.net:/` for a shell buffer in / on example.net.
30 The buffer will be named "*example.net*".
31
32 * `#ex/ssh:example.net|sudo:root@example.net:/etc` for a root shell
33 starting in /etc on example.net named "*#ex*".
34
35 * `interior/ssh:gateway.corp.com|ssh:interior.corp.com:` to go via
36 gateway.corp.com to your homedir on interior.corp.com. The buffer
37 will be named "*interior*". You could append a sudo hop, and so on.
38
39 * Thanks to tramp, file visits from the shell will seamlessly be on the
40 host where the shell is running, in the auspices of the target account.
41
42 See the `multishell-pop-to-shell` docstring (in
43 [multishell.el](multishell.el)) for details, and
44 [getting-to-a-shell.md](getting-to-a-shell.md) for the nitty-gritty
45 decision tree that determines where the keybinding according to the various
46 conditions.
47
48 Customize-group `multishell' to select and activate a keybinding and set
49 various behaviors. Customize-group `savehist' to preserve buffer
50 names/paths across emacs restarts.
51
52 Please use
53 [the multishell repository](https://github.com/kenmanheimer/EmacsMultishell)
54 issue tracker to report problems, suggestions, etc.
55
56 See the [multishell.el](multishell.el) file commentary for a change log and
57 Todo list.