aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md10
-rw-r--r--vterm.el15
2 files changed, 23 insertions, 2 deletions
diff --git a/README.md b/README.md
index 64ea808..00107b4 100644
--- a/README.md
+++ b/README.md
@@ -114,6 +114,16 @@ cd() {
}
```
+## Remote directory tracking
+
+Put this in your *remote* .zshrc:
+
+```zsh
+function chpwd() {
+ print -Pn "\e]51;$(whoami)@$(hostname):$(pwd)\e\\"
+}
+```
+
## Related packages
- [vterm-toggle](https://github.com/jixiuf/vterm-toggle): Toggles between a vterm and the current buffer
diff --git a/vterm.el b/vterm.el
index b09abcc..eb30382 100644
--- a/vterm.el
+++ b/vterm.el
@@ -531,8 +531,19 @@ Feeds the size change to the virtual terminal."
(defun vterm--set-directory (path)
"Set `default-directory' to PATH."
- (when (file-directory-p path)
- (setq default-directory path)))
+ (if (string-match "^\\(.*?\\)@\\(.*?\\):\\(.*?\\)$" path)
+ (progn
+ (let ((user (match-string 1 path))
+ (host (match-string 2 path))
+ (dir (match-string 3 path)))
+ (if (and (string-equal user user-login-name)
+ (string-equal host (system-name)))
+ (progn
+ (when (file-directory-p dir)
+ (setq default-directory dir)))
+ (setq default-directory (concat "/-:" path)))))
+ (when (file-directory-p path)
+ (setq default-directory path))))
(defun vterm--get-color(index)
"Get color by index from `vterm-color-palette'.