From 72f7fae5eab492b9decc0270b2c9a80fba312ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20F=C3=BCrmetz?= Date: Sat, 3 Aug 2019 15:32:22 +0200 Subject: Add remote directory tracking --- README.md | 10 ++++++++++ vterm.el | 15 +++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4f84f1f..b7e7347 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'. -- cgit v1.0