diff --git a/modules/term/vterm/autoload.el b/modules/term/vterm/autoload.el index d059ae8d3..8932b8c68 100644 --- a/modules/term/vterm/autoload.el +++ b/modules/term/vterm/autoload.el @@ -34,7 +34,7 @@ If prefix ARG is non-nil, recreate vterm buffer in the current project's root." (with-current-buffer buffer (unless (eq major-mode 'vterm-mode) (vterm-mode)) - (+vterm-open-remote-maybe)) + (+vterm--change-directory-if-remote)) (pop-to-buffer buffer))))) ;;;###autoload @@ -57,7 +57,24 @@ If prefix ARG is non-nil, cd into `default-directory' instead of project root." display-buffer-alist) (setenv "PROOT" project-root) (vterm) - (+vterm-open-remote-maybe))) + (+vterm--change-directory-if-remote))) + +(defun +vterm--change-directory-if-remote () + "When `default-directory` is remote, use the corresponding +method to prepare vterm at the corresponding remote directory." + (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))))) (defvar +vterm--insert-point nil) diff --git a/modules/term/vterm/config.el b/modules/term/vterm/config.el index 48c78d262..e21b7a60a 100644 --- a/modules/term/vterm/config.el +++ b/modules/term/vterm/config.el @@ -19,23 +19,6 @@ ;; Prevent premature horizontal scrolling hscroll-margin 0) - (defun +vterm-open-remote-maybe () - "When `default-directory` is remote, use the corresponding -method to prepare vterm at the corresponding remote directory." - (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))))) - ;; Restore the point's location when leaving and re-entering insert mode. (when (featurep! :editor evil) (add-hook! 'vterm-mode-hook