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

今天添加了一个非常方便的函数: Add new command `awesome-tab-kill-other-buffers-in-current-group' · manateelazycat/awesome-tab@d9add90 · GitHub

awesome-tab-kill-other-buffers-in-current-group

有时候我们经常打开很多文件参考, 参考以后, 只想保留当前 buffer , 删除当前组的后台标签, 用上面的命令就非常方便的干这种活了.

我想向楼主提个 feature request 不知可否?

因为 awesome-tab-mode 默认自动启用, 所以在 use-package 的 lazy load 功能下首次 invoke awesome-tab-mode 反而会 disable 掉 awesome-tab-mode。我在自己的配置里写了一个 toggle 来保证 awsome-tab-mode 的加载。

(use-package awesome-tab
  :commands (awesome-tab-mode)
  :init
  (progn
    (defun awesome-tab-mode-toggle ()
      (interactive)
      (if (bound-and-true-p awesome-tab-mode)
          (awesome-tab-mode -1)
        (awesome-tab-mode t)))))

请问楼主能不能加一个 variable awesome-tab-enable-on-init 从而即可保证自动启用,又可以让用户自行修改启动状态呢?

我没有看懂, 你用标签为什么要 lazy load? 而不是默认就加载, 如果加载 awesome-tab 默认又不加载, 什么时候加载?

如果你真的要延迟加载, 可以用:

(run-with-idle-timer
   1 nil
   #'(lambda ()
       (require 'awesome-tab)
       ))

我的意思是启用 awesome-tab-mode 的时机交由用户决定,而不是加载这个feature的时候就启用了, 也就是从用户角度相当于 (require 'awesome-tab') (awesome-tab-mode t) 这样的用法,或者是在 awesome-tab 的 library 这里 加个状态 (when awesome-tab-enable-on-init (awesome-tab-mode t)) 这样用户如果不想直接启用的话就在加载前在自己的配置里加上 (setq-default awesome-tab-enable-on-init nil)。当然我自己更偏好前一种做法。

1 个赞

启动加载,不显示啊,必须执行一次切换标签在显示

我写了一个minor mode,开启的时候才会require awesome tab。

今天用发现又有一些更新,多了minor-mode,标签切换函数也换了。

有没有考虑过只为特定的buffer 启用tabbar ,其他buffer 则不显示tabbar 我原本的需求是 只想为eshell 或term-mode 的启用tabbar,其他buffer 则不启用

打算尝试用eshell 完全替换换iTerm,但是发现没有tab页的eshell 很不好用 才有此一问

另外本意是想eshell-mode term-mode 作为一个tab分组来显示的

  (add-to-list 'eshell-visual-commands  "zsh")

在eshell里运行zsh之后会打开一个term-mode的buffer,所以想把它们作为一组来显示

这个需求可以简化为: 不属于任何分组的buffer,则不显示header-line

感觉这个主题还不错分享给大家,文件名区分的很清晰,当前选中的tab也很显眼

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(awesome-tab-selected ((t (:inherit awesome-tab-default :foreground "green3" :overline "yellow" :underline "yellow" :weight ultra-bold :width semi-expanded))))
 '(awesome-tab-separator ((t (:inherit awesome-tab-default :box (:line-width 2 :color "yellow" :style pressed-button) :height 0.1))))

现在就只支持, 写自己的分组函数就可以了, 非常简单:

因为众口难调, 特殊需求自己改吧.

执行(awesome-tab-mode t)的时候报这个错:

Debugger entered--Lisp error: (void-variable mouse-wheel-mode)
  (and mouse-wheel-mode awesome-tab-mode)
  (if (and mouse-wheel-mode awesome-tab-mode) 1 -1)
  (awesome-tab-mwheel-mode (if (and mouse-wheel-mode awesome-tab-mode) 1 -1))
  awesome-tab-mwheel-follow()
  run-hooks(awesome-tab-mode-hook awesome-tab-mode-on-hook)
  (let ((last-message (current-message))) (setq-default awesome-tab-mode (if (eq arg 'toggle) (not (default-value 'awesome-tab-mode)) (> (prefix-numeric-val$
  awesome-tab-mode(t)
  (progn (awesome-tab-mode t))
  eval((progn (awesome-tab-mode t)) t)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

设置 (setq awesome-tab-selected "gray") 不生效,还有其他人有这个问题么?

emacs version: 27.0.50

用 customize-group 来自定义

(require 'mwhell)

好的,谢谢大佬

发现,我的emacs里没有这个包。。

是不是叫 mwheel 的?

你要学会自己动手

google了下,出来的都是 mwheel ,感觉八成是这个了,晚点再试:grinning: