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



我在一个系统(x86(上编写代码,然后用ssh到另一个系统(ARM(来编译我的代码。我使用 tramp 从 emacs 中 ssh。弹丸命令(弹丸项目根(提供以下信息:

/home/userX/projectY

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

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

什么是 lisp 代码,它将:

  1. 调用后找出项目名称(弹丸项目根(
  2. 在具有远程登录并以项目名称结尾的缓冲区上进行匹配
  3. 切换到该缓冲区。

基本上,匹配(来自打开的缓冲区列表(在/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在我的情况下未定义,但您可能希望为其选择不同的键绑定。

最新更新