]> git.eshelyaron.com Git - emacs.git/commitdiff
Advertise OSC directory tracking more
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 5 May 2022 13:04:43 +0000 (15:04 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 5 May 2022 13:06:26 +0000 (15:06 +0200)
* doc/emacs/misc.texi (Interactive Shell): Document OSC directory
tracking more.
* lisp/shell.el (shell-dirtrack-mode): Link to the OSC directory
tracking function.

doc/emacs/misc.texi
lisp/shell.el

index a0d79711f10de9b1bf9d7c10554e5bc15956f5c7..63eb00b2357f6127a08dfd30d0fd5c9ca8c11f82 100644 (file)
@@ -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
index 627c48e35fbaec9c642c70a94faee47b94ed89d9..47887433d9f149b2b6e48fb738d9c6107cb8ee47 100644 (file)
@@ -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