X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/360ed9017c595f9e1bef8b7b15feb3ca04d95ad2..91905b6de42dd519770186436c6f9a6c92921677:/packages/multishell/README.md diff --git a/packages/multishell/README.md b/packages/multishell/README.md index 4f3bcda0b..08125f12f 100644 --- a/packages/multishell/README.md +++ b/packages/multishell/README.md @@ -3,63 +3,55 @@ multishell.el Facilitate use of multiple local and remote Emacs shell buffers. -I use the emacs shell a *lot*. On top of emacs' powerful shell and tramp +Multishell is available via Emacs package manager, in ELPA. Install "multishell" from the `M-x package-list-packages` listing. + +I use the emacs shell a *lot*, including separate shells for separate +project, and more shells for access to remote systems (which I do a lot, as +a systems administrator). On top of emacs' powerful shell and tramp facilities, use a `multishell` (customization-activated) key binding to: * Get to the input point from wherever you are in a shell buffer, -* ... or to one of your shell buffers if you're not currently in one. + ... or to any of your shell buffers, from anywhere inside emacs. + * Use universal arguments to launch and choose among alternate shell buffers, -* ... and select which is default. + ... and change which is the current default. + +* Easily restart disconnected shells, or shells from prior sessions + ... the latter from Emacs builtin savehist minibuf history persistence + * Append a path to a new shell name to launch a shell in that directory, -* ... and use a path with Emacs tramp syntax to launch a remote shell. + ... and use a path with Emacs tramp syntax to launch a remote shell - + for example: - For example: + * `#root/sudo:root@localhost:/etc` for a buffer named "#root" with a + root shell starting in /etc. - * `/ssh:example.net:/` for a shell buffer in / on - example.net; the buffer will be named "*example.net*". + * `/ssh:example.net:/` for a shell buffer in / on example.net. + The buffer will be named "*example.net*". * `#ex/ssh:example.net|sudo:root@example.net:/etc` for a root shell starting in /etc on example.net named "*#ex*". -(NOTE that there is a frequent problem with specifying a remote homedir -using tramp syntax, eg `/ssh:example.net:` or `/ssh:example.net:~`. That -sometimes fails on an obscure bug - particularly for remote+sudo with -homedir syntax. Until fixed, you may need to start remote+sudo shells with -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.) - -Customize-group `multishell` to select and activate a keybinding and set -various behaviors. Customize-group `savehist` to preserve buffer -names/paths across emacs sessions. - -See the `multishell-pop-to-shell` docstring for details. - -Change Log ----------- -* 2016-01-16 1.0.5 Ken Manheimer: - - History now includes paths, when designated - - Actively track current directory in history entries that have a path. - Custom control: multishell-history-entry-tracks-current-directory - - Offer to remove shell's history entry when buffer is killed - (For now, the only UI way to remove history entries.) - - Fix - prevent duplicate entries for same name but different paths - - Fix - recognize and respect tramp path syntax to start in home dir - - But tramp bug, remote+sudo hops to a home dir can fail, get wedged. - - Simplify history var name, migrate existing history if any from old name -* 2016-01-04 Ken Manheimer - Released to ELPA -* 2016-01-02 Ken Manheimer - working on this in public, but not yet released. - - TODO ----------- -* Isolate tramp sporadic failure to connect to remote+sudo+homedir syntax - (eg, /ssh:xyz.com|sudo:root@xyz.com: or /ssh:xyz.com|sudo:root@xyz.com:~) -* Find suitable, internally consistent ways to sort tidy completions, eg: - - first list completions for active shells, then present but inactive, - then historical - - some way for user to toggle between presenting just buffer names vs - full buffer/path - - without cutting user off from easy editing of path -* Find proper method for setting field boundary at beginning of tramp path - in the minibuffer, in order to see whether the field boundary magically - enables tramp completion of the path. -* Assess whether option to delete history entry on kill-buffer is - sufficient. + * 'interior/ssh:gateway.corp.com|ssh:interior.corp.com:' to go via + gateway.corp.com to 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 from the shell will seamlessly be in + the auspices of the target account, and relative to the current + directory, on the host where the shell is running. + +See the `multishell-pop-to-shell` docstring (in +[multishell.el](multishell.el)) for details, and +[getting-to-a-shell.md](getting-to-a-shell.md) for the nitty-gritty +decision tree that determines where different hits of the keybinding go. + +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. + +See the [multishell.el](multishell.el) file commentary for a change log and +Todo list.