需要帮助正则表达式匹配缓冲区名称并切换到它
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 代码:
- 调用(projectile-project-root)后找出项目名称
- 在具有远程登录且以项目名称结尾的缓冲区上匹配
- 切换到那个缓冲区。
基本上,在 /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
,这在我的例子中是未定义的,但您可能想为其选择不同的键绑定。
我在一个系统 (x86) 上编写代码,然后通过 ssh 进入另一个 (ARM) 来编译我的代码。我使用 tramp 从 emacs 中进行 ssh。射弹命令 (projectile-project-root) 提供此信息:
/home/userX/projectY
sshing进入远程系统后在同一个项目下的缓冲区名称是:
/ssh:userX@sxy-ss-02:/home/userX/projectY
什么是 lisp 代码:
- 调用(projectile-project-root)后找出项目名称
- 在具有远程登录且以项目名称结尾的缓冲区上匹配
- 切换到那个缓冲区。
基本上,在 /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
,这在我的例子中是未定义的,但您可能想为其选择不同的键绑定。