我在一个系统(x86(上编写代码,然后用ssh到另一个系统(ARM(来编译我的代码。我使用 tramp 从 emacs 中 ssh。弹丸命令(弹丸项目根(提供以下信息:
/home/userX/projectY
进入远程系统并在同一项目下后的缓冲区名称为:
/ssh:userX@sxy-ss-02:/home/userX/projectY
什么是 lisp 代码,它将:
- 调用后找出项目名称(弹丸项目根(
- 在具有远程登录并以项目名称结尾的缓冲区上进行匹配
- 切换到该缓冲区。
基本上,匹配(来自打开的缓冲区列表(在/ssh:....../projectY 上
未经测试 - 将其添加到您的 init 文件中:
(setq remote-user "userX")
(setq remote-host "sxy-ss-02")
(defun switch-buffer-to-remote-project ()
(interactive)
(let ((tramp-name (format "/ssh:%s@%s:%s" remote-user remote-host (projectile-project-root))))
(find-file tramp-name)))
(global-set-key (kbd "C-c C-Z") #'switch-buffer-to-remote-project)
它将命令绑定到C-c C-z
在我的情况下未定义,但您可能希望为其选择不同的键绑定。