需要帮助正则表达式匹配缓冲区名称并切换到它

Need help regex matching a buffer name and switching to it

我在一个系统 (x86) 上编写代码,然后通过 ssh 进入另一个 (ARM) 来编译我的代码。我使用 tramp 从 emacs 中进行 ssh。射弹命令 (projectile-project-root) 提供此信息:

/home/userX/projectY

sshing进入远程系统后在同一个项目下的缓冲区名称是:

/ssh:userX@sxy-ss-02:/home/userX/projectY

什么是 lisp 代码:

  1. 调用(projectile-project-root)后找出项目名称
  2. 在具有远程登录且以项目名称结尾的缓冲区上匹配
  3. 切换到那个缓冲区。

基本上,在 /ssh:....../projectY

上匹配(从打开的缓冲区列表)

未经测试 - 将此添加到您的初始文件中:

 (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,这在我的例子中是未定义的,但您可能想为其选择不同的键绑定。