对于在系统中打开很多终端,或者在emacs中打开很多终端(比如vterm等),如何快速准确切换?

最近自己需要经常在Emacs打开很多的终端,具体来说就是vterm,同时进行很多个任务。还有打开的终端时间长了就忘记了。不知道大家有没有比较好的办法来查找已经打开的终端?最好能根据打开终端的目录,以及正在执行的命令,或者最近的一个命令来查找想要查找的终端。大家有没有什么比较好的办法。

对我来说有一个用得爽的 ibuffer 替代 就够了

自动根据正在执行的命令来命名不靠谱。我是手动给 vterm 的 buffer 命名,然后按 buffer 名切换。

如果是独立终端的话可以试下平铺窗口管理器适不适合你胃口,通过 workspace/group 对窗口作了一层归类,每个工作组的目的比较明确,就比较好找。

当然 vterm 也可以每个会话用一个 frame 结合平铺窗口管理器来使用。

可以结合rg和终端内容过滤来做

通过搜索终端内容,来找终端最靠谱

这个我大概看了下,对于buffer的分类是不错。我感觉ibuffer用着也可以。现在一个问题,这个软件貌似对vterm也没有特殊标记显示,都是显示vterm vterm(1) vterm(2)等,这样还是不方便后期搜素。你比如你打开了十个或者而是个终端,这样就不好查找了。

1 个赞

使用 centaur-tabs 或awesome-tab 把vterm分到一个组, 这样所有的vterm buffer 就是iTerm终端一样有了tab页的功能。

然后配合 vterm-toggle 使用。

我没有用过 vterm 但是我在 eshell 的实用中,感觉我偷来的这个代码片段, 和楼主描述的需求很类似。

  1. 打开 eshell 后,跟目录是当前 buffer 文件的父文件夹
  2. 输入 eshell 的名字, 通常我是按照“想执行什么操作”来命名

之后就会切换到别的 buffer 很长一段时间。

找回的时候,使用的相同命令,eshell 的名字会自动提示,基本可以准确跳到 那个 eshell 中。

参考博客: Named Eshell Buffers | Arte Ebrahimi

感谢,对我还是很有启发的。我感觉当终端打开的非常多的时候,还是buffer重命名,在加上当前终端执行命令,还有当前终端显示所在的目录这些信息,进行搜索比较合理。