更简洁的标签栏设计

我觉得如果 prev/next 的话,应该完全按照显示的来移动。

现在是这样的

我发现这个字符做 tab 之间的分隔很不错。

(format "%c" #x10f55)

没有宽度,是一条上下没有空隙的线。

欢迎发补丁,一起完善

我最终走上了自己搞的路线 :drooling_face:

我发现我的需求并不是想要一个全局的 tab, 而是每个 buffer 独立,buffer 之间互斥的 tab 列表。

还在研究中,也不知道自己想的对不对。

2 个赞

理论上是可以这样做的,主要是要想清楚,每个buffer独立切换列表背后的思想是什么?

求教:只有一个buffer的时候,能不能设置不显示tab呢?

可以提个issue到github上,最近有点忙

您忙吧。没事。

sort-tab-select-prev-tab 只在第一个和最后一个 tab 跳转, sort-tab-select-next-tab 是没问题的,不知道有没有人碰到

而且这个变成了两排,不过还不确定复现的步骤

emacs -Q 先排查下配置

今天新写了一个补丁,用 last-command 方案替代原来的 sort-tab-inhibit-sort 的方法,保证 sort-tab 命令执行的时候不排序标签。

(string-prefix-p "sort-tab-" (prin1-to-string last-command))

前几天写代码发现偶尔会触发不必要的排序,建议大家更新到最新版。

1 个赞

最新Sort-Tab有所更新,改进了几个方面:

  1. 更可靠的排序策略,避免一些命令造成无谓的标签排序
  2. 通过搜索切换隐藏标签后,在顶部显示隐藏标签的buffer name

建议大家更新一下,以更好的体验 sort-tab

1 个赞

sort-tab.el原来的算法是,每个标签空闲一秒就增加1的排序值,排序值高的排左边,排序值低的放右边。 这个算法的麻烦在于,相邻两个标签如果排序值接近的时候,来回切换这两个标签会导致相互调换顺序非常频繁,不是很舒服。

今天改进了一下排序算法,引入了一个新的选项 sort-tab-sort-weights , 这个选项主要目的是排序的时候除以 sort-tab-sort-weights 这个权重,只有相互两个标签的排序差值超过 sort-tab-sort-weights 才更换标签顺序。

这样改进以后,sort-tab.el的排序体验更加无感细腻。

sort-tab爽的是不区分模式,按照使用频率排序标签,但是有点不爽的是标签太多以后,关闭标签很麻烦。

比如最近研究LSP, 大量在看pyright的代码, 同时也打开了很多 *.py, *.el 的文件, 还包括浏览器页面和文件管理器页面, 研究到一定阶段以后,想关闭所有标签或者所有打开的文件管理器页面,这时候就非常烦躁,标签太多了要一个一个的关闭。

今天增加了 sort-tab-close-mode-tabs 这个命令, 扫描所有显示的标签, 让你可以选择一个模式以后快速关闭所有匹配的标签。

这是啥字体?多大的字号?

kitty terminal: font_family Sarasa Mono SC Regular font_size 16.0

有时会出现空行,不知道什么原因。

把tab所在的buffer关掉,再重新执行sort-tab-turn-on就恢复正常了。