emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 9cb1841 4/5: Merge commit recent multshell changes.


From: ken manheimer
Subject: [elpa] master 9cb1841 4/5: Merge commit recent multshell changes.
Date: Tue, 19 Jan 2016 19:59:02 +0000

branch: master
commit 9cb1841ec809f25193fa007d4e7a16eaad756336
Merge: 236f345 d128c7d
Author: Ken Manheimer <address@hidden>
Commit: Ken Manheimer <address@hidden>

    Merge commit recent multshell changes.
---
 packages/multishell/multishell.el |   64 +++++++++++++++++++++---------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/packages/multishell/multishell.el 
b/packages/multishell/multishell.el
index e23813d..1d10b94 100644
--- a/packages/multishell/multishell.el
+++ b/packages/multishell/multishell.el
@@ -15,39 +15,47 @@
 ;; a la `pop-to-buffer' - plus a keybinding. Together, they enable you 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 elsewhere inside emacs.
+;;
 ;; * Use universal arguments to launch and choose among alternate shell 
buffers,
-;; * ... and select which is default.
-;; * 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 change which is the current default.
+;;
+;; * Easily restart disconnected shells, or shells from prior sessions
+;; * ... the latter from Emacs builtin savehist minibuf history persistence
 ;;
-;;   For example:
+;; * 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 -
+;;   for example:
 ;;
-;;   * `/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:address@hidden:/etc` for a root shell
 ;;     starting in /etc on example.net named "*#ex*".
 ;;
-;; (NOTE - there's a sporadic problem when opening a shell pointed at a
-;; remote homedir, eg `/ssh:example.net:` or `/ssh:example.net:~`. It
-;; sometimes fails, particularly for remotes with empty fs path syntax. Until
-;; fixed, you may need to start remote shells with an explicit path, then
-;; cd ~. If you set up `multishell`s persistent dir-tracking history,
-;; you'll be able to use completion to start that shell in the right place,
-;; in your subsequent sessions.)
+;;   * '\#intrn/ssh:corp.com|ssh:intern.corp.com|sudo:address@hidden:/etc'
+;;     to go via corp.com to intern.corp.com, sudood to root, in /etc. Whee! 
(-:
+;;     The buffer will be named "*#intrn*".
 ;;
+;; * File visits will all be under the auspices of the account, and relative to
+;;   the current directory, on the remote host.
+;; 
 ;; 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 sessions.
 ;;
-;; See the `multishell-pop-to-shell' docstring for details.
-;;
-;; Please use [the repository](https://github.com/kenmanheimer/EmacsMultishell)
+;; Please use
+;; [the multishell repository](https://github.com/kenmanheimer/EmacsMultishell)
 ;; issue tracker to report problems, suggestions, etc.
 ;;
+;; (NOTE - tramp sometimes has a problem opening a remote shell pointed at
+;; a homedir, eg `/ssh:example.net:` or `/ssh:example.net:~`. When it
+;; fails, it won't work for the rest of the session. Non-homedir remote
+;; access isn't disrupted. Until this is fixed, you may need to start
+;; remote shells with an explicit path, then cd ~.)
+;;
 ;; Change Log:
 ;;
 ;; * 2016-01-16 1.0.5 Ken Manheimer:
@@ -171,24 +179,23 @@ emacs sessions."
 (defvar multishell-primary-name "*shell*"
   "Shell name to use for un-modified multishell-pop-to-shell buffer target.")
 
-;; There is usually only one entry per name, but disruptions happen.
+;; Multiple entries happen because completion also adds name to history.
 (defun multishell-register-name-to-path (name path)
   "Add or replace entry associating NAME with PATH in `multishell-history'.
 
-If NAME already had a PATH and new PATH is empty, retain old one.
+If NAME already had a PATH and new PATH is empty, retain the prior one.
 
 Promote added/changed entry to the front of the list."
   ;; Add or promote to the front, tracking path changes in the process.
   (let* ((entries (multishell-history-entries name))
-         (becomes (concat name path))
-         oldpath)
+         (path (or path "")))
     (dolist (entry entries)
-      (when (or (not path) (string= path ""))
+      (when (string= path "")
         ;; Retain explicit established path.
-        (setq path (cadr (multishell-split-entry-name-and-tramp entry))
-              becomes (concat name path)))
+        (setq path (cadr (multishell-split-entry-name-and-tramp entry))))
       (setq multishell-history (delete entry multishell-history)))
-    (setq multishell-history (push becomes multishell-history))))
+    (setq multishell-history (push (concat name path)
+                                   multishell-history))))
 
 (defun multishell-history-entries (name)
   "Return `multishell-history' entry that starts with NAME, or nil if none."
@@ -268,6 +275,9 @@ For example:
   \"*example.net*\". 
 * '\#ex/ssh:example.net|sudo:address@hidden:/etc' for a root
   shell in /etc on example.net named \"*#ex*\".
+* '\#in/ssh:corp.com|ssh:internal.corp.com|sudo:address@hidden:/etc'
+  for a root shell name \"*in*\" in /etc on internal.corp.com, via host 
+  corp.com.
 
 \(NOTE that there is a problem with specifying a remote homedir using
 tramp syntax, eg '/ssh:example.net:'. That sometimes fails on an obscure
@@ -281,9 +291,9 @@ history but will not take effect for an already-running 
shell.
 To remove a shell buffer's history entry, kill the buffer and
 affirm removal of the entry when prompted.
 
-===== Activate savehist to persisting your shell buffer names and paths:
+===== Activate savehist to retain shell buffer names and paths across Emacs 
sessions:
 
-To have emacs maintain your history of shell buffer names and paths, 
+To have emacs maintain your history of shell buffer names and paths,
 customize the savehist group to activate savehist."
 
   (interactive "P")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]