From 50bf06a57ae3b89a42b2e86a0a80fcdf827a511d Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Sat, 9 May 2020 00:23:56 -0500 Subject: [PATCH] Allow +vterm/toggle to open remotely When `default-directory` is remote, prepare the toggled vterm at remote location. --- modules/term/vterm/autoload.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/term/vterm/autoload.el b/modules/term/vterm/autoload.el index 92666272c..4e4d66609 100644 --- a/modules/term/vterm/autoload.el +++ b/modules/term/vterm/autoload.el @@ -33,7 +33,20 @@ If prefix ARG is non-nil, recreate vterm buffer in the current project's root." (let ((buffer (get-buffer-create buffer-name))) (with-current-buffer buffer (unless (eq major-mode 'vterm-mode) - (vterm-mode))) + (vterm-mode)) + (when (and (featurep 'tramp) + (tramp-tramp-file-p default-directory)) + (message "default-directory is %s" default-directory) + (with-parsed-tramp-file-name default-directory path + (let ((method (cadr (assoc `tramp-login-program + (assoc path-method tramp-methods))))) + (vterm-send-string + (concat method " " + (when path-user (concat path-user "@")) path-host)) + (vterm-send-return) + (vterm-send-string + (concat "cd " path-localname)) + (vterm-send-return))))) (pop-to-buffer buffer))))) ;;;###autoload