awesome-tab 1.0 发布, 开箱即用的Emacs标签插件

解决了, 更新最新版即可.

补丁在 Remove function awesome-tab-line-buttons since not buttons any more. · manateelazycat/awesome-tab@2262a6e · GitHub

原因是这几天都在去掉鼠标相关的代码, 去掉以后, 发现原来渲染按钮的函数 awesome-tab-line-buttons 可以去掉了, 去掉这个函数就好了.

我现在也回到buffer切换的操作,当tab太多,反倒不如操作buffer

用了几天,也关了

不用归不用,没必要到作者的帖子下面说一句吧…

我们阅读代码的时候, 经常会进行窗口上下滚动, 很多时候一个函数很长的时候, 函数名就会超出窗口顶部. 这时候我们很容易忘记窗口顶部这一段代码是隶属于哪个函数的? 一旦发生这种情况, 就需要回滚一下, 看一下是哪个函数名, 如果函数实现很长就会引起上下来回滚动窗口, 最终打断我们思考的思路.

今天这个补丁 Display sticky function name in tab. · manateelazycat/awesome-tab@c7936ba · GitHub 的作用是:

当函数名被顶出窗口外面时, 把函数名显示在当前标签上
这样就可以实时知道窗口顶部那段代码是隶属于哪个函数
避免编码思路被打断

这个补丁启发于社区大神贡献的补丁: Integration with semantic-stickfunc by levindu · Pull Request #27 · manateelazycat/awesome-tab · GitHub 但是我嫌这个补丁的实现太脏了, 重新用 which-func 模块实现了一遍, 避免使用 advice 这种脏的实现, 同时也解决了空间显示的设计, 不用受限制于标签栏的宽度.

6 个赞

我这边发现这个功能是这样的逻辑,我不确定是懒猫有自己的考虑还是我这边的问题 :joy:

  1. 在程序中标签栏显示的函数名是窗口顶部的那个函数,不是光标处的函数,顶部那个函数比较短只有几行,光标已经在别的函数那里了上面依旧显示顶部的那个函数(尝试过C程序和elisp程序)。
  2. 如果标签栏显示了一个函数的函数名,那么直到第二个函数第一行到了窗口顶部,标签栏的函数名才会变过来,哪怕这两个函数中间有一段空白,标签栏显示的依旧是前一个函数的函数名。

这个真不错,得试试

欢迎提交更好的交互思路

我是在想可不可以根据光标所处的位置来显示标签栏上的函数名,这样的话不管是一个超出窗口空间的函数还是一个简短的函数,标签栏上的函数名都可以更直观。不知道能不能实现,好不好实现 :joy:

光标处是很容易实现,但是你现在都有光标,你为什么看不到函数名呢?除非你是一个超长的函数

en…可能是我个人觉得根据光标的位置来做判断条件更符合这个逻辑,功能上来说也还是很实用的,非常感谢 :joy: :muscle:

不知道目前 awesome-tab 的实现中加入手动控制哪些 buffer 显示在 tab 列表的函数容不容易实现?我个人使用 tab 的情景是最近需要频繁切换的三四个 buffer,而不是像目前默认所有打开的 buffer。从我个人使用习惯来说,目前的方式我常常需要通过 helm 来切换 buffer。

比如默认 tab 列表是空的,可以用命令将当前 buffer 添加到 tab 列表,之后也可以再将 buffer 移出 tab 列表。

我不太懂 elisp,这个要求能用目前的 group rule 来实现么?

hide group 看一下文档很简单的。

好的,找时间看一下。多谢了。

有没有awesome-tab-first, awesome-tab-second, awesome-tab-third这种标签; 类似awesome-tab-select-beg-tab,可以直接绑定s-1快捷键?

社区大神又来优化性能了, 哈哈哈

1 个赞

这个补丁已经实现了索引定位的功能: Add new command `awesome-tab-select-visible-tab'. · manateelazycat/awesome-tab@1413db4 · GitHub

把 s-1, s-2, s-3 … s-9, s-0 这些按键都绑定到 awesome-tab-select-visible-tab 命令上.

awesome-tab-select-visible-tab 会自动提取按键后面的数字并切换到对应的标签上.

注意, awesome-tab-select-visible-tab 只是切换可视区域的标签, 不包括可视区域外的标签, s-0 表示最后一个标签.

2 个赞

索引定位如果可以像 avy 那样子,显示每个 tab 的编号,然后再按对应的按键切换过去就好了。 awesome-tab-select-visible-tab 还要用眼睛算一下要切换的 tab 是可视区域第几个。

使用 awesome-tab 出现如下信息报错, Error during redisplay: (eval (awesome-tab-line)) signaled (args-out-of-range 0 1) [3 times].

标签页没有任何显示, 只有一条灰色的. 如上图所示.原来是可以用的, 昨天把旧包的文件夹删除了, 重新安装后就变成这样了.

M-x toggle-debug-on-error 然后再用,看看哪里出了问题?