]> code.delx.au - gnu-emacs-elpa/blob - packages/multishell/README.md
multishell - Merge edge-case but significant fixes
[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 I use the emacs shell a *lot*. On top of emacs' powerful shell and tramp
7 facilities, use a `multishell` (customization-activated) key binding to:
8
9 * Get to the input point from wherever you are in a shell buffer,
10 * ... or to one of your shell buffers if you're not currently in one.
11 * Use universal arguments to launch and choose among alternate shell buffers,
12 * ... and select which is default.
13 * Append a path to a new shell name to launch a shell in that directory,
14 * ... and use a path with Emacs tramp syntax to launch a remote shell.
15
16 For example:
17
18 * `/ssh:example.net:/` for a shell buffer in / on
19 example.net; the buffer will be named "*example.net*".
20
21 * `#ex/ssh:example.net|sudo:root@example.net:/etc` for a root shell
22 starting in /etc on example.net named "*#ex*".
23
24 (NOTE that there is a frequent problem with specifying a remote homedir
25 using tramp syntax, eg `/ssh:example.net:` or `/ssh:example.net:~`. That
26 sometimes fails on an obscure bug - particularly for remote+sudo with
27 homedir syntax. Until fixed, you may need to start remote+sudo shells with
28 an explicit path, then cd ~. With `multishell`s dir-tracking persistent history, you'll be able to use completion to start that shell in the right place, in your subsequent sessions.)
29
30 Customize-group `multishell` to select and activate a keybinding and set
31 various behaviors. Customize-group `savehist` to preserve buffer
32 names/paths across emacs sessions.
33
34 See the `multishell-pop-to-shell` docstring for details.
35
36 Change Log
37 ----------
38 * 2016-01-16 1.0.5 Ken Manheimer:
39 - History now includes paths, when designated
40 - Actively track current directory in history entries that have a path.
41 Custom control: multishell-history-entry-tracks-current-directory
42 - Offer to remove shell's history entry when buffer is killed
43 (For now, the only UI way to remove history entries.)
44 - Fix - prevent duplicate entries for same name but different paths
45 - Fix - recognize and respect tramp path syntax to start in home dir
46 - But tramp bug, remote+sudo hops to a home dir can fail, get wedged.
47 - Simplify history var name, migrate existing history if any from old name
48 * 2016-01-04 Ken Manheimer - Released to ELPA
49 * 2016-01-02 Ken Manheimer - working on this in public, but not yet released.
50
51 TODO
52 ----------
53 * Isolate tramp sporadic failure to connect to remote+sudo+homedir syntax
54 (eg, /ssh:xyz.com|sudo:root@xyz.com: or /ssh:xyz.com|sudo:root@xyz.com:~)
55 * Find suitable, internally consistent ways to sort tidy completions, eg:
56 - first list completions for active shells, then present but inactive,
57 then historical
58 - some way for user to toggle between presenting just buffer names vs
59 full buffer/path
60 - without cutting user off from easy editing of path
61 * Find proper method for setting field boundary at beginning of tramp path
62 in the minibuffer, in order to see whether the field boundary magically
63 enables tramp completion of the path.
64 * Assess whether option to delete history entry on kill-buffer is
65 sufficient.