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

C-h f mouse-wheel-mode

你得有多菜

好久没折腾,忘了这个操作了:joy:
不过没 require 'mwheel 这个应该算是bug了吧

这个是emacs内置的包

因为我是纯终端的emacs,所以启动时不会自动require mwheel,因此那个 mouse-wheel-mode 就是void了

试用了两三个星期 awesome-tab,分享一些感想

  1. 使用之前:以前使用 vim,一直想找个类似 tabbar 插件,尝试过 tabbar-mode,感觉太丑了。说它丑是因为它和任意一个主题搭配起来都很难看。
  2. 第一天使用:发现 aweseme-tab 时,非常激动,大神背书。开箱即用,自己简单定制了一下 tab 的颜色,非常满意。
  3. 到今天:发现这个东西虽然很好,但是我在这几个星期,自己似乎没用过几次。

为什么呢?

我简单的思考了下:我开发一个项目(一般是 Python 项目或者 React 项目)时,一般会打开 10 来个文件。

  1. 这时,awesome-tab 会显示 10 来个 tab,我从一个 buffer 切换到另外一个 buffer 的成本就比较高,平均可能得按 5,6 次。
  2. 另外,显示 tab 较多时,tab 栏宽度也不是很够

而 vim 的 tabbar 不会显示所有的 buffer,所以用 vim 的时候,我会强依赖 tab + neotree 来选择文件;在使用 Emacs 时,我更多的会使用 projectile 来选择文件。


说上面这些就是和大家分享一下使用体验,也期待大家来说说自己的使用方式。

要配合helm来用

awesome-tab 我个人的理解:

  1. 在大多数可视范围, 比如只在当前project切换标签, 虽然手指按的次数多, 但是脑负担最小, 在写程序的时候, 脑袋主要是记住各种复杂的逻辑网和状态, 让手指下意识的去切换标签比切换一下脑袋的去想buffer的名字更划算,因为脑袋的状态依然还是记着复杂的逻辑
  2. 如果看不到的标签, 不论是ibuffer, helm/ivy 还是 awesome-tab 都无法快速切换, 只能搜索, 所以这时候我建议用 helm/ivy/ibuffer 来替换 awesome-tab 更为高效

我没有强迫症, 所以我两种模式都用, 我觉得awesome-tab搭配helm最舒服.

1 个赞

属于同一个tab的情况下 有没有办法让新打开的buffer 在当前buffer之后而非放在整个tab的末尾

github提issue吧,这里太忙就忘记了

我一直用alt+1-5切换经常编辑的tab,相邻的tab就向前向后的快捷键切。浏览器也是,你把常用的tab pin住,用alt+num快速切过去。

如果像vim一样每个tab有标号, 就能充分发挥tab可被看到的优点, 可以通过数字切换到特定tab, 大脑负担也比较低, 还可以直接切到目标buffer.

也不一定非要是数字, 可以是 "asdfhjkl123"这样可配置最好

1 个赞

这个可以有, 强

我自己是把文件名也纳入逻辑网里面, 文件名一般比较直观, 看见文件名就能想到里面实现了什么函数或者类.

用标签的话, 首先(1)要先用眼睛定位标签位置, 然后看到这个标签名字(文件名?), 还要在(2)大脑里(根据文件名)搜索该文件是不是有想要看或者编辑的内容.

步骤(1)很容易打断思路, 感觉很不连贯. 所以很多年前用过tabbar, 感觉不方便就不再用了, 后来自定义了一个切换buffer界面, 类似ido-mode的界面, 每个buffer名字前面有个数字编号(0-9), 可以用数字键一键快速切换最近10个buffer, 但是还是感觉不连贯, 也放弃了.

最后还是感觉输入文件名比较自然和连贯, 因为文件名或者类名已经在你的脑海里了, 不用过多思考, 眼睛也不用大面积扫描, 只用看着最靠前的两三个文件名就行了.

另外, 我用的是ido-mode(修改版), 因为它占用空间(面积)小, 眼睛不用大面积扫描, 眼睛不累, 像helm或者ivy界面太大了, 一般在其他场合使用. 我一般是同时打开200个文件左右. 更多文件可能需要靠jump-to-symbol功能了.

我用的是传统的 tabbar.el, 感觉也没那么丑.

我觉得包装 tabbar.el 为一个新的插件非常好的, 但是为啥要引入 projectile 作为依赖呢? 那玩意儿的确好, 我知道, 我也试过的, 作者也是 Ruby 社区和 Conjure 社区的大牛, 我从一开始 用 Emacs, 就在用他写的 zenburn 主题了, 但是对于老的用户, projectile 提供的大部分功能, 大家自己 早就配好了吧?

我觉得如果可以独立出来, 最好不过了.

结合projectile,标签分组才好用,要不是大多数项目混在一起,文件多了,切换着麻烦

嗯, 有空时, 一定体会下 projectile 这个神器, 我现在很多地方用的很原始 …

今天新写了一个补丁 https://github.com/manateelazycat/awesome-tab/commit/1cc31c39ae7e845fba44fc2a9eb5d0b657b57374

现在是在当前标签的右边打开新标签了.

1 个赞

现在比较好用了

感觉又一个不好的地方:我打开多个 frame,每一个frame可能打开不一样的文件,但是使用这个插件这两个 frame的文件情况就完全一样了。如何使得这两个 frame打开多个文件互相不影响。

我不用 frame , 所以估计短时间内很难去改进这一点.

我以后都只想让自己开心, 如果别人期望改进的功能刚好也是我喜欢的, 我会很快改进, 如果我不用的功能, 可能很难有动力去改进(甚至可能永远都不会改进), 希望更多的时间取悦自己, 多陪家人.

当然, 如果遇到能力强的hacker, 欢迎提PR, 只要有用的PR, 即使我不用, 我也很乐意合并.

1 个赞