diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-05-05 15:04:43 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-05-05 15:06:26 +0200 |
commit | 6dbbdff281775eb82133fd13edc2ff6b63a97a58 (patch) | |
tree | 04afb1155baa3d80569e1504705cfa9ef2f1245e | |
parent | 71de48494e9024243d4c8b8847c50c0b5c0ac16f (diff) | |
download | emacs-6dbbdff281775eb82133fd13edc2ff6b63a97a58.tar.gz |
Advertise OSC directory tracking more
* doc/emacs/misc.texi (Interactive Shell): Document OSC directory
tracking more.
* lisp/shell.el (shell-dirtrack-mode): Link to the OSC directory
tracking function.
-rw-r--r-- | doc/emacs/misc.texi | 13 | ||||
-rw-r--r-- | lisp/shell.el | 4 |
2 files changed, 16 insertions, 1 deletions
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index a0d79711f10..63eb00b2357 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -896,6 +896,19 @@ also rename the @file{*shell*} buffer using @kbd{M-x rename-uniquely}, then create a new @file{*shell*} buffer using plain @kbd{M-x shell}. Subshells in different buffers run independently and in parallel. + Emacs attempts to keep track of what the current directory is by +looking at the commands you enter, looking for @samp{cd} commands and +the like. This is an error-prone solution, since there are many ways +to change the current directory, so Emacs also looks for special +@acronym{OSC} (Operating System Commands} escape codes that are +designed to convey this information in a more reliable fashion. You +should arrange for your shell to print the appropriate escape sequence +at each prompt, for instance with the following command: + +@example +printf "\e]7;file://%s%s\e\\" "$HOSTNAME" "$PWD" +@end example + @vindex explicit-shell-file-name @cindex environment variables for subshells @cindex @env{ESHELL} environment variable diff --git a/lisp/shell.el b/lisp/shell.el index 627c48e35fb..47887433d9f 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -1033,7 +1033,9 @@ Environment variables are expanded, see function `substitute-in-file-name'." "Toggle directory tracking in this shell buffer (Shell Dirtrack mode). The `dirtrack' package provides an alternative implementation of -this feature; see the function `dirtrack-mode'." +this feature; see the function `dirtrack-mode'. Also see +`comint-osc-directory-tracker' for an escape-sequence based +solution." :lighter nil (setq list-buffers-directory (if shell-dirtrack-mode default-directory)) (if shell-dirtrack-mode |