大家用emacs的时候用tabbar吗?

用vim的时候经常会用tab, 不知道大家会用吗?还是只是buffer就够用了?

几乎没用过,因为 Emacs 的 Tab 插件做的不怎么样。

如果想要用 Tab 又在用开源桌面环境可以选一个有 Tab 功能的窗口管理器。

1 个赞

你说的是 tab bar 吗?曾经用过 tabbar.el,用了一天后卸载,原因是emacs 中 buffer 是更自然的方式,tabbar 不对隐藏 buffer 做区分简直是噩梦,在别的编辑器可能是 Buff,在 emacs 中简直是 bullshit。

是啊,其实我用vim的时候感觉buffer和tab有点冲突,两个的功能都类似。但是buffer如果能像tabbar那样显示就好了

Emacs 目前还没有比较完善的 tab 功能,这里有做一些比较/分析:

1 个赞

你适应了 emacs 的话,你会发现 tabbar 并没有效率优势。

几个关键词作为切入点: persp, projectile, layout management,当然你如果用 spacemacs,一切都为你配置好了,开箱即用。

另外,关于 layout 管理,本论坛有大量这方面的帖子可供参考。

1 个赞

elscreen 这个插件应该比较符合需求。

试用了一下 elscreen,跟 evil-tabs 差不多。其对于 buffer 和 tab 的定位还是有点模糊,我个人比较习惯的是,tab 跟 buffer 的关系是 1vs1 强关联(就像 tabbar),例如在两个 tab 打开不同的文件,并且当前停留在 file1(tab1):

+--------------------------------+
| file1 | file2  |               |
|       \------------------------|   
|                                |
|                                |
|                                |
|                                |
+--------------------------------+

执行 switch-to-buffer 之后,希望切换至 file2(tab2):

+--------------------------------+
| file1 | file2 |                |
|-------/       \----------------|
|                                |
|                                |
|                                |
|                                |
+--------------------------------+

实际情况是,并没有跳至 file2(tab2),而是原地把 tab1 指向了 file2:

+--------------------------------+
| file2 | file2  |               |
|       \------------------------|
|                                |
|                                |
|                                |
|                                |
+--------------------------------+

如果不能“钉”住 buffer,tab 的意义也不大了。

我都是直接看buffer-list,因为在spacemacs里面可以helm自动补全,感觉tab完全无用.

每个buffer一个tab, 感觉纯为了鼠标设计的.

最好像terminal一样, 每个tab里可以开很多的split的buffer, 也就是每个tab里面有很多个buffer格子

这样还算符合点需求

2 个赞

很久前使用vim的时候,tabbar大概两三个月才会用到一次,大多数时候都是下意识的呼出buffer或者多分割几个窗口,所以在用emacs也根本没有捯饬tab的心思。 综上,个人觉得tabbar是一个很鸡肋的功能,至少对于在终端中使用更多的我来说是这样。

我觉得buffer在Emacs世界里面已经具备奠基者优势了,大家一旦适应了buffer的操作体验,tabbar就非常鸡肋:功能是重叠的,操作和业务逻辑却不太一样。反正我是无法适应tabbar了,除非在Vim里面(笑)。在一些新的编辑器,比如Atom里面,tab是一个基本的设计,所以在Atom的世界里,tab具有奠基者优势,Atom社区自然会大力推崇tab,正如Emacs社区里大家更喜欢buffer。我觉得如果特别喜欢tab的使用的体验的话,建议完全不用buffer,然后自己造个小轮子,把逻辑完全修正成Vim的tab或者Atom的tab,这样能得到最好的用户体验。

我刚从Vim转到Emacs用过Tab bar。但是Emacs的buffer更高效,特别是和helm-mode或者Ivy-mode合用 (再加上用ibuffer打开buffer list),相比之下,再加上tab bar就很鸡肋了,除了装饰没什么用处。

也不是完全没用,当你只想动一个指头按鼠标的时候,tabbar 就可以搬出来用了。

想用 tabbar,参考 AquaEmacs。 Emacs 里用 buffer 是更高效的方式。

ido-modeC-x b 足矣。

1 个赞

这里只给习惯用tab的同学做个参考

(defun dotspacemacs/user-config ()
   (define-key evil-normal-state-map "bn" 'tabbar-forward-tab)
   (define-key evil-normal-state-map "bp" 'tabbar-backward-tab)       
   (defun my-tabbar-buffer-groups ()
       (list (cond ((string-match "\\(\*[^\*]*\*\\|TAGS\\|magit.*:\\)" (buffer-name)) "emacs")
                   ((eq major-mode 'dired-mode) "emacs")
                   (t "user"))))
   (setq tabbar-buffer-groups-function 'my-tabbar-buffer-groups)
)

(custom-set-variables
 '(tabbar-buffer-home-button (quote (("") "")))
 '(tabbar-scroll-left-button (quote (("") "")))
 '(tabbar-scroll-right-button (quote (("") "")))
 '(tabbar-separator (quote (1.5))))
 '(tabbar-default ((t (:background "brightblack" :foreground "black" :height 0.9))))
 '(tabbar-selected ((t (:inherit tabbar-default :background "black" :foreground "color-252" :weight bold))))
 '(tabbar-selected-modified ((t (:foreground "green"))))
 '(tabbar-unselected ((t (:background "brightblack" :foreground "black")))))

用过elscreen和懒猫的awesome-tab一段时间,后来都删了。感觉只用switch buffer简洁够用了。多了tabber反而分散了注意力

懒猫的awesome-tab 你试试看 我觉得还不错

请问这种图是怎么画的?