mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-06 12:19:37 +00:00
Fix remote-host directory tracking for shells in `term' buffers
* lisp/term.el (term-handle-ansi-terminal-messages): Use an explicit tramp method when constructing the tramp path for a non-local host, as this is now mandatory. "-" is a pseudo-method for the user's `tramp-default-method'. (Bug#31355) Specify the remote username explicitly in all cases, as `tramp-default-user' and `tramp-default-user-alist' could cause the previous logic to fail. Minor related improvements to the commentary.
This commit is contained in:
parent
16e8541b74
commit
03697e648c
1 changed files with 16 additions and 15 deletions
31
lisp/term.el
31
lisp/term.el
|
@ -233,31 +233,33 @@
|
||||||
;;
|
;;
|
||||||
;; Notice: for directory/host/user tracking you need to have something
|
;; Notice: for directory/host/user tracking you need to have something
|
||||||
;; like this in your shell startup script (this is for a POSIXish shell
|
;; like this in your shell startup script (this is for a POSIXish shell
|
||||||
;; like Bash but should be quite easy to port to other shells)
|
;; like Bash but should be quite easy to port to other shells).
|
||||||
|
;;
|
||||||
|
;; For troubleshooting in Bash, you can check the definition of the
|
||||||
|
;; custom functions with the "type" command. e.g. "type cd". If you
|
||||||
|
;; do not see the expected definition from the config below, then the
|
||||||
|
;; directory tracking will not work.
|
||||||
;;
|
;;
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
;;
|
;;
|
||||||
;; # Set HOSTNAME if not already set.
|
;; # Set HOSTNAME if not already set.
|
||||||
;; : ${HOSTNAME=$(uname -n)}
|
;; : ${HOSTNAME=$(uname -n)}
|
||||||
;;
|
;;
|
||||||
;; # su does not change this but I'd like it to
|
;; # su does not change this but I'd like it to
|
||||||
;;
|
|
||||||
;; USER=$(whoami)
|
;; USER=$(whoami)
|
||||||
;;
|
;;
|
||||||
;; # ...
|
;; # ...
|
||||||
;;
|
;;
|
||||||
;; case $TERM in
|
;; case $TERM in
|
||||||
;; eterm*)
|
;; eterm*)
|
||||||
;;
|
;;
|
||||||
;; printf '%s\n' \
|
;; printf '%s\n' \
|
||||||
;; -------------------------------------------------------------- \
|
;; -------------------------------------------------------------- \
|
||||||
;; "Hello $user" \
|
;; "Hello $USER" \
|
||||||
;; "Today is $(date)" \
|
;; "Today is $(date)" \
|
||||||
;; "We are on $HOSTNAME running $(uname) under Emacs term mode" \
|
;; "We are on $HOSTNAME running $(uname) under Emacs term mode" \
|
||||||
;; --------------------------------------------------------------
|
;; --------------------------------------------------------------
|
||||||
;;
|
;;
|
||||||
;; export EDITOR=emacsclient
|
|
||||||
;;
|
|
||||||
;; # The \033 stands for ESC.
|
;; # The \033 stands for ESC.
|
||||||
;; # There is a space between "AnSiT?" and $whatever.
|
;; # There is a space between "AnSiT?" and $whatever.
|
||||||
;;
|
;;
|
||||||
|
@ -269,10 +271,11 @@
|
||||||
;; printf '\033AnSiTh %s\n' "$HOSTNAME"
|
;; printf '\033AnSiTh %s\n' "$HOSTNAME"
|
||||||
;; printf '\033AnSiTu %s\n' "$USER"
|
;; printf '\033AnSiTu %s\n' "$USER"
|
||||||
;;
|
;;
|
||||||
;; eval $(dircolors $HOME/.emacs_dircolors)
|
;; # Use custom dircolors in term buffers.
|
||||||
|
;; # eval $(dircolors $HOME/.emacs_dircolors)
|
||||||
;; esac
|
;; esac
|
||||||
;;
|
;;
|
||||||
;; # ...
|
;; # ...
|
||||||
;;
|
;;
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -2750,12 +2753,10 @@ See `term-prompt-regexp'."
|
||||||
(setq default-directory
|
(setq default-directory
|
||||||
(file-name-as-directory
|
(file-name-as-directory
|
||||||
(if (and (string= term-ansi-at-host (system-name))
|
(if (and (string= term-ansi-at-host (system-name))
|
||||||
(string= term-ansi-at-user (user-real-login-name)))
|
(string= term-ansi-at-user (user-real-login-name)))
|
||||||
(expand-file-name term-ansi-at-dir)
|
(expand-file-name term-ansi-at-dir)
|
||||||
(if (string= term-ansi-at-user (user-real-login-name))
|
(concat "/-:" term-ansi-at-user "@" term-ansi-at-host ":"
|
||||||
(concat "/" term-ansi-at-host ":" term-ansi-at-dir)
|
term-ansi-at-dir))))
|
||||||
(concat "/" term-ansi-at-user "@" term-ansi-at-host ":"
|
|
||||||
term-ansi-at-dir)))))
|
|
||||||
|
|
||||||
;; I'm not sure this is necessary,
|
;; I'm not sure this is necessary,
|
||||||
;; but it's best to be on the safe side.
|
;; but it's best to be on the safe side.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue